Tool reference · 23 tools

Every tool, with its real answer.

Each response below came from the servers in the Complete Local 0.3.2 beta package we sell (runtime 0.3.5-beta.1, Team 0.2.0-beta.2), called over MCP stdio with Node 22.22.0 on 29 Oct 2026 01:55 UTC. The refusals are real too: an external action, a spend over the ceiling, a claim about the wrong target, an edited checkpoint, a changed release file and a write after close.

Re-run it yourself: download capture-tool-reference.mjs (no dependencies) and run node capture-tool-reference.mjs path/to/server.mjs. On the free Community server it calls the 7 tools that server has. It uses a throwaway state folder and sends nothing over the network. IDs, hashes and times will differ on your machine.

livingstack.status

Community (free) and Complete Local · Living Stack Capability Status · read-only

Read-only server capability and policy discovery. Use this first to inspect Living Stack boundaries and risk classes; use livingstack.session_status instead for the state of one existing session.

No inputs.

PASS Capabilities and default policy.

Arguments

{}

Response

{
  "schema": "living-stack-status.v1",
  "product": "Living Stack MCP",
  "edition": "full-single-agent",
  "tool_count": 15,
  "version": "0.3.5-beta.1",
  "mode": "standalone-local",
  "capabilities": [
    "scoped-context",
    "budget-authorization",
    "tamper-evident-outcomes",
    "evidence-bound-claims",
    "durable-checkpoints",
    "trace-reports",
    "workspace-signed-trace-exports",
    "manifest-byte-verification",
    "explicit-consent-signed-adoption-receipts"
  ],
  "policy": {
    "allowed_risks": [
      "read",
      "local_write"
    ],
    "maximum_session_budget_usd": 100,
    "maximum_retention_hours": 720
  },
  "allowed_release_roots": 1,
  "entitlements": {
    "mode": "off",
    "tier": "community",
    "verified": false,
    "subject_bound": false,
    "features": [],
    "expires_at": null,
    "token_error": null
  },
  "boundaries": [
    "no arbitrary shell",
    "no unrestricted filesystem",
    "no arbitrary network action tools",
    "the only publisher network tool requires explicit consent and sends a fixed minimal signed adoption schema",
    "no personal Codex or Claude runtime dependency",
    "local host permissions remain authoritative",
    "workspace signatures prove origin from one local installation, not publisher identity"
  ]
}

livingstack.session_start

Community (free) and Complete Local · Start a Scoped Runtime Session · changes local state

Create a new isolated session and persist its immutable scope, goal, retention, and hard budget ceiling. Call this once before any other session tool; repeat calls create separate sessions rather than resuming one.

InputTypeWhat it is
scope requiredstringBounded description of the work this session may cover.
goal requiredstringConcrete outcome the agent is pursuing.
budget_limit_usdnumber
default 0
Maximum cumulative metered cost for this session.
retention_hoursnumber
default 24
Session retention period.
PASS Open a scoped session with a $2 ceiling.

Arguments

{
  "scope": "Fix the rounding bug in src/invoice.mjs and run its tests",
  "goal": "Invoice totals round to cents; npm test passes",
  "budget_limit_usd": 2,
  "retention_hours": 24
}

Response

{
  "decision": "PASS",
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f",
  "scope_sha256": "6999d98c92b5ed44cd762b7e83353aa3592df2d842cdf8376becaffcec63a180",
  "expires_at": "2026-10-30T01:55:02.146Z",
  "budget": {
    "limit_usd": 2,
    "reserved_usd": 0,
    "used_usd": 0
  },
  "receipt_sha256": "e507c0e5c1499c3ff52e1f27402640e725eac93e5856a6cecff23b98cc0d0d4c"
}

livingstack.session_status

Community (free) and Complete Local · Inspect a Runtime Session · read-only

Read-only inspection of one session's scope hash, lifecycle, budget, pending authorizations, and ledger integrity. Use this to resume or monitor a known session; use livingstack.status for server-wide capabilities and policy.

InputTypeWhat it is
session_id requiredstringOpaque Living Stack session identifier.
PASS Inspect the session.

Arguments

{
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f"
}

Response

{
  "decision": "PASS",
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f",
  "status": "active",
  "scope_sha256": "6999d98c92b5ed44cd762b7e83353aa3592df2d842cdf8376becaffcec63a180",
  "created_at": "2026-10-29T01:55:02.146Z",
  "expires_at": "2026-10-30T01:55:02.146Z",
  "budget": {
    "limit_usd": 2,
    "reserved_usd": 0,
    "used_usd": 0
  },
  "pending_authorizations": 0,
  "ledger": {
    "ok": true,
    "errors": [],
    "rows": 11,
    "head_sha256": "1dbdc6d5cd1972c8894bb015a8c99c68a6c62c90acedd2f709153dc1555e1b79"
  }
}

livingstack.context_put

· Store Scoped Context · changes local state

Persist redacted, provenance-labeled historical context inside an open session and append an audit receipt. Use this for facts or source material; use livingstack.checkpoint_save for exact recoverable workflow state and livingstack.record_outcome for action results.

InputTypeWhat it is
session_id requiredstringOpaque Living Stack session identifier.
text requiredstringContext text. Credential-shaped values are redacted.
source requiredstringHuman-readable provenance label or URI.
tagsarray of stringOptional retrieval tags.
PASS Store a fact with its source.

Arguments

{
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f",
  "text": "Customer report: invoice INV-2207 showed 10.005 instead of 10.01. Reproduced with node test/invoice.test.mjs.",
  "source": "support ticket 2207",
  "tags": [
    "bug",
    "rounding"
  ]
}

Response

{
  "decision": "PASS",
  "context_id": "ctx_d3760fa8-d73e-4c59-8054-aa95f5aa495f",
  "text_sha256": "85a8b7d65ad5a5ea254b489915b5f78cf8f9edc6ec7759c665f221f61996d740",
  "receipt_sha256": "360b956ab20a1e30ea9fa9a2a54f81fed640091a7f5ac33d21e798edb77333e9"
}
FAIL invalid_or_rejected_request Refusal: a closed session takes no new writes.

Arguments

{
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f",
  "text": "late note",
  "source": "agent"
}

Response

{
  "decision": "FAIL",
  "reason": "invalid_or_rejected_request",
  "message": "session is closed"
}

livingstack.retrieve_context

· Retrieve Scoped Context · read-only

Read-only deterministic lexical search over context previously stored in one session, returning provenance and receipt hashes. Use this for fact lookup; use livingstack.checkpoint_load when exact saved workflow state must be recovered.

InputTypeWhat it is
session_id requiredstringOpaque Living Stack session identifier.
query requiredstringSearch terms.
limitnumber
default 5
Maximum results.
PASS Find it again by keyword.

Arguments

{
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f",
  "query": "rounding invoice",
  "limit": 5
}

Response

{
  "decision": "PASS",
  "query_sha256": "6f5d1977009a65714c1fa08c2830b0eeb4249cfcd1617fb054496b1617c4bc11",
  "results": [
    {
      "context_id": "ctx_d3760fa8-d73e-4c59-8054-aa95f5aa495f",
      "text": "Customer report: invoice INV-2207 showed 10.005 instead of 10.01. Reproduced with node test/invoice.test.mjs.",
      "source": "support ticket 2207",
      "tags": [
        "bug",
        "rounding"
      ],
      "score": 2,
      "recorded_at": "2026-10-29T01:55:02.153Z",
      "historical_until_reverified": true,
      "receipt_sha256": "360b956ab20a1e30ea9fa9a2a54f81fed640091a7f5ac33d21e798edb77333e9"
    }
  ],
  "ledger_head_sha256": "360b956ab20a1e30ea9fa9a2a54f81fed640091a7f5ac33d21e798edb77333e9"
}

livingstack.authorize_action

Community (free) and Complete Local · Authorize a Bounded Agent Action · changes local state

Evaluate one intended host action, append an authorization receipt, and reserve its estimated cost against the session budget. Call immediately before the host acts; Living Stack never executes the action, and the default policy denies external or destructive risk.

InputTypeWhat it is
session_id requiredstringOpaque Living Stack session identifier.
action_id requiredstringCaller-generated stable action identifier.
action_type requiredstringAction category such as filesystem.read or model.call.
risk"read" | "local_write" | "external" | "destructive"
default "read"
Risk class.
estimated_cost_usdnumber
default 0
Maximum amount reserved for this action.
targetstring
default ""
Optional target description. Only its SHA-256 is persisted.
PASS Ask before the host runs the tests.

Arguments

{
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f",
  "action_id": "run-tests-1",
  "action_type": "process.exec",
  "risk": "local_write",
  "estimated_cost_usd": 0,
  "target": "npm test in repo invoice-service"
}

Response

{
  "decision": "PASS",
  "allowed": true,
  "authorization_id": "auth_c236824c-1f2b-4251-aab0-3d926378fcd1",
  "remaining_budget_usd": 2,
  "receipt_sha256": "9b25b584ab4a785926c48012af052fa937217f562829fea97ab1376568027fe1"
}
FAIL risk_not_allowed:external Refusal: the default policy denies external actions.

Arguments

{
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f",
  "action_id": "push-prod-1",
  "action_type": "deploy.publish",
  "risk": "external",
  "target": "production"
}

Response

{
  "decision": "FAIL",
  "allowed": false,
  "reason": "risk_not_allowed:external",
  "receipt_sha256": "a73186d085467928aed7ed308b982d6fe5a252d4b58c66010e97454a76b32aec",
  "remaining_budget_usd": 2
}
FAIL budget_ceiling_exceeded Refusal: $5 does not fit the $2 ceiling.

Arguments

{
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f",
  "action_id": "big-spend-1",
  "action_type": "model.call",
  "risk": "read",
  "estimated_cost_usd": 5,
  "target": "summarize logs"
}

Response

{
  "decision": "FAIL",
  "allowed": false,
  "reason": "budget_ceiling_exceeded",
  "receipt_sha256": "d2349f8662bb6d6d32ce42c8ed97bf30adba9e3ce83ef23506ce1c9f40f02d77",
  "remaining_budget_usd": 2
}

livingstack.record_outcome

Community (free) and Complete Local · Record an Authorized Outcome · changes local state

Call after the host action to consume one unused livingstack.authorize_action receipt, inherit its target as the outcome subject, reconcile reserved cost, and append the observed result. Only typed evidence objects that bind one category to one safe reference can support later claims.

InputTypeWhat it is
session_id requiredstringOpaque Living Stack session identifier.
authorization_id requiredstringAuthorization returned by livingstack.authorize_action.
classification required"success" | "failure" | "mixed" | "unresolved"Observed result.
actual_cost_usdnumber
default 0
Observed cost, which cannot exceed the reservation.
evidencearray of { type, ref }Typed evidence links. Each item binds one evidence category to one receipt ID, hash, or other safe reference; only these pairs can support a claim.
evidence_typesarray of stringDeprecated unbound evidence labels retained only as trace metadata; they never satisfy claim gates.
evidence_refsarray of stringDeprecated unbound references retained only as trace metadata; they never satisfy claim gates.
summarystring
default ""
Short redacted outcome summary.
PASS Record what the host observed, with typed evidence.

Arguments

{
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f",
  "authorization_id": "auth_c236824c-1f2b-4251-aab0-3d926378fcd1",
  "classification": "success",
  "actual_cost_usd": 0,
  "evidence": [
    {
      "type": "verification",
      "ref": "npm-test-exit-0-run-41"
    }
  ],
  "summary": "12 tests passed, 0 failed"
}

Response

{
  "decision": "PASS",
  "outcome_id": "out_103cef7d-486d-40e9-b214-8f97d290ecaf",
  "subject_sha256": "73e6a74cee4d986dd9f659dc2be5bd89e124491160a4666e1d9555819b7e53c3",
  "classification": "success",
  "evidence_count": 1,
  "budget": {
    "limit_usd": 2,
    "reserved_usd": 0,
    "used_usd": 0
  },
  "receipt_sha256": "b63fa1d0f283a35180713f6942ad57d8fb148f4d35f65e1bd07f9ff58f0381d1"
}

livingstack.check_claim

Community (free) and Complete Local · Check a Claim Against Current Evidence · changes local state

Call before outcome language to append a claim_checked audit event and check only explicitly selected fresh successful outcomes whose authorization target hashes to the same subject. Unrelated, stale, failed, unknown, or unreferenced outcomes are rejected rather than pooled across the session.

InputTypeWhat it is
session_id requiredstringOpaque Living Stack session identifier.
claim_type"completion" | "integrity" | "working" | "deployment"
default "completion"
Claim class.
claim_text requiredstringThe exact proposed claim.
subject requiredstringExact artifact, deployment, workflow, or result identifier used as the target in the supporting action authorization.
outcome_ids requiredarray of stringExplicit outcome IDs returned by livingstack.record_outcome that are offered as support for this claim.
required_evidence_typesarray of stringAdditional evidence categories required by the caller.
max_age_secondsnumber
default 7200
Maximum evidence age.
PASS A claim about the same target the outcome covers.

Arguments

{
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f",
  "claim_type": "completion",
  "claim_text": "The tests pass in invoice-service.",
  "subject": "npm test in repo invoice-service",
  "outcome_ids": [
    "out_103cef7d-486d-40e9-b214-8f97d290ecaf"
  ],
  "required_evidence_types": [
    "verification"
  ]
}

Response

{
  "decision": "PASS",
  "allowed": true,
  "reason": "claim_supported",
  "claim_sha256": "03e3221fb79d348187fa92a7943dd60d13832b1af8f497b1d1fabab2f0890e9d",
  "subject_sha256": "73e6a74cee4d986dd9f659dc2be5bd89e124491160a4666e1d9555819b7e53c3",
  "selected_outcome_ids": [
    "out_103cef7d-486d-40e9-b214-8f97d290ecaf"
  ],
  "accepted_outcome_ids": [
    "out_103cef7d-486d-40e9-b214-8f97d290ecaf"
  ],
  "rejected_outcomes": [],
  "binding_missing": [],
  "required": [
    "verification"
  ],
  "provided": [
    "verification"
  ],
  "missing": [],
  "evidence_receipts": [
    "b63fa1d0f283a35180713f6942ad57d8fb148f4d35f65e1bd07f9ff58f0381d1"
  ],
  "receipt_sha256": "e5ee06a0fc9e670d3b79dc6efec8c0ce65d39774637bc5b48d8bb7c05cc372a3"
}
UNRESOLVED selected_outcome_rejected Refusal: the same outcome cannot support a claim about a different target.

Arguments

{
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f",
  "claim_type": "deployment",
  "claim_text": "The fix is deployed to production.",
  "subject": "production",
  "outcome_ids": [
    "out_103cef7d-486d-40e9-b214-8f97d290ecaf"
  ]
}

Response

{
  "decision": "UNRESOLVED",
  "allowed": false,
  "reason": "selected_outcome_rejected",
  "claim_sha256": "97fcb2a35d293d679315e62fd0ab48a9a5514ee03c4a7f4833cf8c3fa15a6751",
  "subject_sha256": "ab8e18ef4ebebeddc0b3152ce9c9006e14fc05242e3fc9ce32246ea6a9543074",
  "selected_outcome_ids": [
    "out_103cef7d-486d-40e9-b214-8f97d290ecaf"
  ],
  "accepted_outcome_ids": [],
  "rejected_outcomes": [
    {
      "outcome_id": "out_103cef7d-486d-40e9-b214-8f97d290ecaf",
      "reason": "subject_mismatch"
    }
  ],
  "binding_missing": [],
  "required": [
    "deployment",
    "external_readback"
  ],
  "provided": [],
  "missing": [
    "deployment",
    "external_readback"
  ],
  "evidence_receipts": [],
  "receipt_sha256": "a32020c59a59409e8d0ae893f041a88d76fe659dde2a52757ae9858e6fac4505"
}

livingstack.checkpoint_save

· Save a Durable Checkpoint · changes local state

Redact and persist an exact bounded workflow-state snapshot tied to the open session scope and current ledger lineage. Use before interruption or risky transitions; use livingstack.context_put for searchable historical context rather than recoverable state.

InputTypeWhat it is
session_id requiredstringOpaque Living Stack session identifier.
label requiredstringHuman-readable checkpoint label.
state requiredobjectBounded serializable state. Credential-shaped keys and values are redacted.
retention_hoursnumber
default 24
Checkpoint retention.
PASS Save the exact next step before stopping.

Arguments

{
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f",
  "label": "after tests, before release notes",
  "state": {
    "next_step": "Write the CHANGELOG line for the rounding fix",
    "done": [
      "reproduced",
      "fixed",
      "tests pass"
    ],
    "open_files": [
      "src/invoice.mjs"
    ]
  }
}

Response

{
  "decision": "PASS",
  "checkpoint_id": "cp_0c43ad37-3928-49b2-b7d5-850f175c7483",
  "state_sha256": "6459e702010363d0bf4b678bce3fa9c917af2d69250e3fd14bad8992c19961c2",
  "expires_at": "2026-10-30T01:55:02.185Z",
  "receipt_sha256": "ce3acacb5a94322b4564ba0e466313d436a14981691a833c45d6620670fd6bf5"
}
PASS A second checkpoint, which the next step edits on disk.

Arguments

{
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f",
  "label": "copy to tamper with",
  "state": {
    "next_step": "Write the CHANGELOG line for the rounding fix"
  }
}

Response

{
  "decision": "PASS",
  "checkpoint_id": "cp_30080d52-16ea-4bee-941c-fc692501f84f",
  "state_sha256": "21162ca24d0b9bb1a2d65781d00e72ae5ffbe82d008b524076584b7405fa0716",
  "expires_at": "2026-10-30T01:55:02.192Z",
  "receipt_sha256": "1dbdc6d5cd1972c8894bb015a8c99c68a6c62c90acedd2f709153dc1555e1b79"
}

livingstack.checkpoint_load

· Load a Verified Checkpoint · changes local state

Verify and return the exact saved state, then append a checkpoint_loaded audit event; it does not overwrite active session state. Use after restart or interruption with an ID from livingstack.checkpoint_save; use livingstack.retrieve_context for lexical fact lookup.

InputTypeWhat it is
session_id requiredstringOpaque Living Stack session identifier.
checkpoint_id requiredstringCheckpoint returned by livingstack.checkpoint_save.
PASS Load it after a restart.

Arguments

{
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f",
  "checkpoint_id": "cp_0c43ad37-3928-49b2-b7d5-850f175c7483"
}

Response

{
  "decision": "PASS",
  "checkpoint_id": "cp_0c43ad37-3928-49b2-b7d5-850f175c7483",
  "read_only": false,
  "label": "after tests, before release notes",
  "state": {
    "next_step": "Write the CHANGELOG line for the rounding fix",
    "done": [
      "reproduced",
      "fixed",
      "tests pass"
    ],
    "open_files": [
      "src/invoice.mjs"
    ]
  },
  "state_sha256": "6459e702010363d0bf4b678bce3fa9c917af2d69250e3fd14bad8992c19961c2",
  "receipt_sha256": "adc1ec560b9030fc3babbecfaaf8ce667ba44de3fd99d7438a4f3e1fa2ce67c5"
}
FAIL state_hash_mismatch Refusal: the saved next step was edited on disk after saving.

Arguments

{
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f",
  "checkpoint_id": "cp_30080d52-16ea-4bee-941c-fc692501f84f"
}

Response

{
  "decision": "FAIL",
  "errors": [
    "state_hash_mismatch"
  ],
  "checkpoint_id": "cp_30080d52-16ea-4bee-941c-fc692501f84f"
}

livingstack.trace_report

· Generate a Redacted Trace Report · read-only

Read-only verification and summary of one session's event chain, outcomes, budget, and lifecycle without raw private payloads. Use for a compact local audit; use livingstack.trace_export when portable signed OTLP/JSON is required.

InputTypeWhat it is
session_id requiredstringOpaque Living Stack session identifier.
PASS Unsigned audit summary of the event chain.

Arguments

{
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f"
}

Response

{
  "decision": "PASS",
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f",
  "scope_sha256": "6999d98c92b5ed44cd762b7e83353aa3592df2d842cdf8376becaffcec63a180",
  "status": "active",
  "integrity": {
    "ok": true,
    "errors": [],
    "rows": 11,
    "head_sha256": "1dbdc6d5cd1972c8894bb015a8c99c68a6c62c90acedd2f709153dc1555e1b79"
  },
  "event_kinds": {
    "session_started": 1,
    "context_added": 1,
    "action_authorized": 1,
    "authorization_denied": "[REDACTED]",
    "outcome_recorded": 1,
    "claim_checked": 2,
    "checkpoint_saved": 2,
    "checkpoint_loaded": 1
  },
  "outcome_classifications": {
    "success": 1
  },
  "budget": {
    "limit_usd": 2,
    "reserved_usd": 0,
    "used_usd": 0
  },
  "created_at": "2026-10-29T01:55:02.146Z",
  "expires_at": "2026-10-30T01:55:02.146Z"
}

livingstack.trace_export

· Export Redacted OTLP JSON Traces · changes local state

Verify one session ledger, return metadata-only OTLP/JSON, and sign the exact export with the installation's Ed25519 identity. The first call may create that local identity; raw context, goals, targets, summaries, and checkpoint state are excluded. Use livingstack.trace_report for an unsigned compact audit.

InputTypeWhat it is
session_id requiredstringOpaque Living Stack session identifier.
PASS Signed OTLP/JSON export (spans shortened below).

Arguments

{
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f"
}

Response

{
  "decision": "PASS",
  "format": "otlp-json-traces.v1",
  "redaction": "metadata-only",
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f",
  "integrity": {
    "ok": true,
    "errors": [],
    "rows": 11,
    "head_sha256": "1dbdc6d5cd1972c8894bb015a8c99c68a6c62c90acedd2f709153dc1555e1b79"
  },
  "resourceSpans": [
    {
      "resource": {
        "attributes": [
          {
            "key": "service.name",
            "value": {
              "stringValue": "living-stack-mcp"
            }
          },
          {
            "key": "service.version",
            "value": {
              "stringValue": "0.3.5-beta.1"
            }
          },
          {
            "key": "deployment.environment.name",
            "value": {
              "stringValue": "local"
            }
          }
        ]
      },
      "scopeSpans": [
        {
          "scope": {
            "name": "living-stack-mcp",
            "version": "0.3.5-beta.1"
          },
          "spans": [
            {
              "traceId": "183e1dcf691246429655c51099fce869",
              "spanId": "e507c0e5c1499c3f",
              "name": "livingstack.session_started",
              "kind": 1,
              "startTimeUnixNano": "1793238902149000000",
              "endTimeUnixNano": "1793238902149000000",
              "attributes": [
                {
                  "key": "livingstack.sequence",
                  "value": {
                    "intValue": "1"
                  }
                },
                {
                  "key": "livingstack.receipt.sha256",
                  "value": {
                    "stringValue": "e507c0e5c1499c3ff52e1f27402640e725eac93e5856a6cecff23b98cc0d0d4c"
                  }
                },
                {
                  "key": "livingstack.scope.sha256",
                  "value": {
                    "stringValue": "6999d98c92b5ed44cd762b7e83353aa3592df2d842cdf8376becaffcec63a180"
                  }
                }
              ],
              "status": {
                "code": 1
              }
            },
            "… 10 more spans"
          ]
        }
      ]
    }
  ],
  "receipt_sha256": "adf191b1aa126f43c2e08030fec7eca73d192849c8e9194ab6b321616dcbe5aa",
  "signature": {
    "algorithm": "Ed25519",
    "key_id": "lswk_70bdba376895540a0fe4a1548985cc42",
    "origin_scope": "local-workspace-installation",
    "public_key_sha256": "70bdba376895540a0fe4a1548985cc426f258e16a122207a239309408bb84e67",
    "public_key_spki_base64": "MCowBQYDK2VwAyEA/nf1hXdJHBMdbAwf66imM9P4meQnJ9Nf0hKEpU/FV10=",
    "payload_sha256": "a6b3940669ebe2f5da01f2798a9931072bbe1602f5789a9b723b7194cb4802ae",
    "value_base64url": "NOJvPwHqgj4dxn2OkYKUTWlswRIhz_lq0Hoh1L3TdhJ14ix5kj66prZW9cJ8O4Erfr1RQxpbTKg7F_zbBSSbAg"
  }
}

livingstack.verify_release

· Verify Release Bytes Against a Manifest · read-only

Read-only hashing of every file declared by a JSON release manifest under a host-configured allowed root. Use this for artifact-byte integrity, not action outcomes or deployment claims; out-of-root paths return UNRESOLVED.

InputTypeWhat it is
manifest_path requiredstringAbsolute path to a manifest inside LIVING_STACK_ALLOWED_ROOTS.
PASS Hash every file a manifest lists.

Arguments

{
  "manifest_path": "<tmp>/release/manifest.json"
}

Response

{
  "decision": "PASS",
  "manifest_sha256": "75179d40221a60d7ca3c26bcfb4badf625518d65df2f594726edd47c18ecccb8",
  "scope": "",
  "files": [
    {
      "path": "app.txt",
      "status": "PASS",
      "expected_sha256": "d6a35d87c61d60ee0d564d684ac31384f5bcd843f77e3378be781fc0d03fd861",
      "actual_sha256": "d6a35d87c61d60ee0d564d684ac31384f5bcd843f77e3378be781fc0d03fd861"
    }
  ]
}
FAIL Refusal: one byte changed after the manifest was written.

Arguments

{
  "manifest_path": "<tmp>/release/manifest.json"
}

Response

{
  "decision": "FAIL",
  "manifest_sha256": "75179d40221a60d7ca3c26bcfb4badf625518d65df2f594726edd47c18ecccb8",
  "scope": "",
  "files": [
    {
      "path": "app.txt",
      "status": "FAIL",
      "expected_sha256": "d6a35d87c61d60ee0d564d684ac31384f5bcd843f77e3378be781fc0d03fd861",
      "actual_sha256": "5371ecb903282937059ab49e29789850aa3a629f2f259c16df5c6ef864a72728"
    }
  ]
}
UNRESOLVED manifest_path_not_in_configured_allowed_root Refusal: manifest outside the allowed root.

Arguments

{
  "manifest_path": "<tmp>/elsewhere.json"
}

Response

{
  "decision": "UNRESOLVED",
  "reason": "manifest_path_not_in_configured_allowed_root"
}

livingstack.submit_adoption_receipt

· Submit an Opt-In First-Run Receipt · changes local state · can use the network, only with consent

Use this only after explicit user consent to transmit one minimal signed adoption milestone to the fixed Living Stack publisher endpoint. It sends version, milestone, coarse host, installation public-key hash, timestamp, and signature; it never sends workspace, task, personal, IP, user-agent, or arbitrary metadata fields.

InputTypeWhat it is
consent requiredbooleanMust be exactly true after the user approves the disclosed fields.
host"codex" | "claude" | "cursor" | "vscode" | "gemini" | "cline" | "other" | "unknown"
default "unknown"
Coarse MCP host category.
milestone"first_run" | "first_session_closed" | "release_verified"
default "first_run"
Adoption milestone.
UNRESOLVED explicit_consent_required Without consent nothing is sent. (We did not run the consent=true call.)

Arguments

{
  "consent": false
}

Response

{
  "decision": "UNRESOLVED",
  "reason": "explicit_consent_required",
  "transmitted": false,
  "disclosure": "No receipt was sent. Set consent=true only after the user approves the listed fields."
}

livingstack.session_close

Community (free) and Complete Local · Close a Runtime Session · changes local state

Persist a terminal closed state and preserve the session's tamper-evident history; later mutation calls are rejected while reads and trace export remain available. Use after final outcomes are recorded, not as a substitute for a checkpoint.

InputTypeWhat it is
session_id requiredstringOpaque Living Stack session identifier.
reasonstring
default "completed"
Closure reason.
PASS Close the session.

Arguments

{
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f",
  "reason": "completed"
}

Response

{
  "decision": "PASS",
  "session_id": "ls_532095aa-0286-4c25-89de-97feb9a4873f",
  "status": "closed",
  "receipt_sha256": "683962857864f81b63f83083c5690aaf308368684c4855b4741d37ed7a46438c"
}

The 8 Team tools

These run in the Team server, which checks your Complete Local license before it does anything. We captured them without a license, so each shows that refusal; the inputs are taken from the shipped server. What Team does.

livingstack.team.workspace_init

· Initialize Team Local workspace · changes local state

Create the single licensed local workspace and bootstrap the process-configured member as owner. The caller cannot select its identity.

InputTypeWhat it is
client_request_id requiredstringFormat: ^[A-Za-z0-9._-]{8,96}$
name requiredstring—
descriptionstring—
retention_daysinteger
default 30
—
FAIL license_key_missing_or_malformed Without a license key the Team server refuses before it reads or writes anything.

Arguments

{
  "client_request_id": "init-0001",
  "name": "invoice-service team"
}

Response

{
  "decision": "FAIL",
  "reason": "license_key_missing_or_malformed"
}

livingstack.team.member_manage

· Manage Team Local members · changes local state

List, add, update, or disable process principals and bind Community signing-key fingerprints. Mutations require owner/admin and optimistic revision.

InputTypeWhat it is
workspace_id requiredstringFormat: ^ws_[A-Za-z0-9-]{8,96}$
operation required"list" | "upsert" | "disable"—
expected_revisioninteger—
memberobject—
member_idstringFormat: ^[A-Za-z0-9._-]{3,96}$
FAIL license_key_missing_or_malformed Without a license key the Team server refuses before it reads or writes anything.

Arguments

{
  "workspace_id": "ws_00000000-0000-4000-8000-000000000000",
  "operation": "list"
}

Response

{
  "decision": "FAIL",
  "reason": "license_key_missing_or_malformed"
}

livingstack.team.policy_publish

· Publish Team Local policy snapshot · changes local state

Publish an immutable signed shared-policy snapshot. This does not claim automatic enforcement inside already-running Community processes.

InputTypeWhat it is
workspace_id requiredstringFormat: ^ws_[A-Za-z0-9-]{8,96}$
expected_revision requiredinteger—
change_reason requiredstring—
policy requiredobject—
FAIL license_key_missing_or_malformed Without a license key the Team server refuses before it reads or writes anything.

Arguments

{
  "workspace_id": "ws_00000000-0000-4000-8000-000000000000",
  "expected_revision": 0,
  "change_reason": "first policy",
  "policy": {
    "allowed_risks": [
      "read",
      "local_write"
    ],
    "maximum_session_budget_usd": 5,
    "maximum_retention_hours": 168,
    "required_evidence_types": [
      "verification"
    ]
  }
}

Response

{
  "decision": "FAIL",
  "reason": "license_key_missing_or_malformed"
}

livingstack.team.trace_ingest

· Verify and ingest Community trace · changes local state

Verify a metadata-only Community signed trace, bind it to a registered installation, and index it under the active policy snapshot.

InputTypeWhat it is
workspace_id requiredstringFormat: ^ws_[A-Za-z0-9-]{8,96}$
client_request_id requiredstringFormat: ^[A-Za-z0-9._-]{8,96}$
source_member_id requiredstringFormat: ^[A-Za-z0-9._-]{3,96}$
trace_export requiredobject—
FAIL license_key_missing_or_malformed Without a license key the Team server refuses before it reads or writes anything.

Arguments

{
  "workspace_id": "ws_00000000-0000-4000-8000-000000000000",
  "client_request_id": "ingest-0001",
  "source_member_id": "laptop-1",
  "trace_export": {}
}

Response

{
  "decision": "FAIL",
  "reason": "license_key_missing_or_malformed"
}

livingstack.team.audit_bundle_export

· Export signed Team Local audit bundle · changes local state

Verify selected local state and signed traces, then create a signed metadata-only workspace audit bundle without raw spans.

InputTypeWhat it is
workspace_id requiredstringFormat: ^ws_[A-Za-z0-9-]{8,96}$
client_request_id requiredstringFormat: ^[A-Za-z0-9._-]{8,96}$
label requiredstring—
fromstring—
tostring—
member_idsarray of string—
max_tracesinteger
default 500
—
include_policy_historyboolean
default true
—
FAIL license_key_missing_or_malformed Without a license key the Team server refuses before it reads or writes anything.

Arguments

{
  "workspace_id": "ws_00000000-0000-4000-8000-000000000000",
  "client_request_id": "audit-0001",
  "label": "October audit"
}

Response

{
  "decision": "FAIL",
  "reason": "license_key_missing_or_malformed"
}

livingstack.team.host_adapter_plan

· Plan a verified host adapter · changes local state

Create a signed, policy-bound plan for a Codex or Claude lifecycle adapter. Planning does not alter the host configuration.

InputTypeWhat it is
workspace_id requiredstringFormat: ^ws_[A-Za-z0-9-]{8,96}$
installation_id requiredstringFormat: ^[A-Za-z0-9._-]{3,96}$
host_kind required"codex" | "claude"—
max_age_secondsinteger
default 86400
—
FAIL license_key_missing_or_malformed Without a license key the Team server refuses before it reads or writes anything.

Arguments

{
  "workspace_id": "ws_00000000-0000-4000-8000-000000000000",
  "installation_id": "laptop-1",
  "host_kind": "claude"
}

Response

{
  "decision": "FAIL",
  "reason": "license_key_missing_or_malformed"
}

livingstack.team.host_coverage_status

· Inspect verified host coverage · read-only

Classify one installed host adapter as ACTIVE, STALE, DRIFTED, or BROKEN from signed config and lifecycle evidence.

InputTypeWhat it is
workspace_id requiredstringFormat: ^ws_[A-Za-z0-9-]{8,96}$
installation_id requiredstringFormat: ^[A-Za-z0-9._-]{3,96}$
FAIL license_key_missing_or_malformed Without a license key the Team server refuses before it reads or writes anything.

Arguments

{
  "workspace_id": "ws_00000000-0000-4000-8000-000000000000",
  "installation_id": "laptop-1"
}

Response

{
  "decision": "FAIL",
  "reason": "license_key_missing_or_malformed"
}

livingstack.team.host_coverage_certificate

· Issue host coverage certificate · changes local state

Issue and persist a signed metadata-only certificate for the current host coverage state.

InputTypeWhat it is
workspace_id requiredstringFormat: ^ws_[A-Za-z0-9-]{8,96}$
installation_id requiredstringFormat: ^[A-Za-z0-9._-]{3,96}$
FAIL license_key_missing_or_malformed Without a license key the Team server refuses before it reads or writes anything.

Arguments

{
  "workspace_id": "ws_00000000-0000-4000-8000-000000000000",
  "installation_id": "laptop-1"
}

Response

{
  "decision": "FAIL",
  "reason": "license_key_missing_or_malformed"
}