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
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
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.
| Input | Type | What it is |
|---|---|---|
scope required | string | Bounded description of the work this session may cover. |
goal required | string | Concrete outcome the agent is pursuing. |
budget_limit_usd | numberdefault 0 | Maximum cumulative metered cost for this session. |
retention_hours | numberdefault 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
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.
| Input | Type | What it is |
|---|---|---|
session_id required | string | Opaque 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
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.
| Input | Type | What it is |
|---|---|---|
session_id required | string | Opaque Living Stack session identifier. |
text required | string | Context text. Credential-shaped values are redacted. |
source required | string | Human-readable provenance label or URI. |
tags | array of string | Optional 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
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.
| Input | Type | What it is |
|---|---|---|
session_id required | string | Opaque Living Stack session identifier. |
query required | string | Search terms. |
limit | numberdefault 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
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.
| Input | Type | What it is |
|---|---|---|
session_id required | string | Opaque Living Stack session identifier. |
action_id required | string | Caller-generated stable action identifier. |
action_type required | string | Action category such as filesystem.read or model.call. |
risk | "read" | "local_write" | "external" | "destructive"default "read" | Risk class. |
estimated_cost_usd | numberdefault 0 | Maximum amount reserved for this action. |
target | stringdefault "" | 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
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.
| Input | Type | What it is |
|---|---|---|
session_id required | string | Opaque Living Stack session identifier. |
authorization_id required | string | Authorization returned by livingstack.authorize_action. |
classification required | "success" | "failure" | "mixed" | "unresolved" | Observed result. |
actual_cost_usd | numberdefault 0 | Observed cost, which cannot exceed the reservation. |
evidence | array 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_types | array of string | Deprecated unbound evidence labels retained only as trace metadata; they never satisfy claim gates. |
evidence_refs | array of string | Deprecated unbound references retained only as trace metadata; they never satisfy claim gates. |
summary | stringdefault "" | 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
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.
| Input | Type | What it is |
|---|---|---|
session_id required | string | Opaque Living Stack session identifier. |
claim_type | "completion" | "integrity" | "working" | "deployment"default "completion" | Claim class. |
claim_text required | string | The exact proposed claim. |
subject required | string | Exact artifact, deployment, workflow, or result identifier used as the target in the supporting action authorization. |
outcome_ids required | array of string | Explicit outcome IDs returned by livingstack.record_outcome that are offered as support for this claim. |
required_evidence_types | array of string | Additional evidence categories required by the caller. |
max_age_seconds | numberdefault 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
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.
| Input | Type | What it is |
|---|---|---|
session_id required | string | Opaque Living Stack session identifier. |
label required | string | Human-readable checkpoint label. |
state required | object | Bounded serializable state. Credential-shaped keys and values are redacted. |
retention_hours | numberdefault 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
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.
| Input | Type | What it is |
|---|---|---|
session_id required | string | Opaque Living Stack session identifier. |
checkpoint_id required | string | Checkpoint 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
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.
| Input | Type | What it is |
|---|---|---|
session_id required | string | Opaque 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
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.
| Input | Type | What it is |
|---|---|---|
session_id required | string | Opaque 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
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.
| Input | Type | What it is |
|---|---|---|
manifest_path required | string | Absolute 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
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.
| Input | Type | What it is |
|---|---|---|
consent required | boolean | Must 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
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.
| Input | Type | What it is |
|---|---|---|
session_id required | string | Opaque Living Stack session identifier. |
reason | stringdefault "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
Create the single licensed local workspace and bootstrap the process-configured member as owner. The caller cannot select its identity.
| Input | Type | What it is |
|---|---|---|
client_request_id required | string | Format: ^[A-Za-z0-9._-]{8,96}$ |
name required | string | — |
description | string | — |
retention_days | integerdefault 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
List, add, update, or disable process principals and bind Community signing-key fingerprints. Mutations require owner/admin and optimistic revision.
| Input | Type | What it is |
|---|---|---|
workspace_id required | string | Format: ^ws_[A-Za-z0-9-]{8,96}$ |
operation required | "list" | "upsert" | "disable" | — |
expected_revision | integer | — |
member | object | — |
member_id | string | Format: ^[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 an immutable signed shared-policy snapshot. This does not claim automatic enforcement inside already-running Community processes.
| Input | Type | What it is |
|---|---|---|
workspace_id required | string | Format: ^ws_[A-Za-z0-9-]{8,96}$ |
expected_revision required | integer | — |
change_reason required | string | — |
policy required | object | — |
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 a metadata-only Community signed trace, bind it to a registered installation, and index it under the active policy snapshot.
| Input | Type | What it is |
|---|---|---|
workspace_id required | string | Format: ^ws_[A-Za-z0-9-]{8,96}$ |
client_request_id required | string | Format: ^[A-Za-z0-9._-]{8,96}$ |
source_member_id required | string | Format: ^[A-Za-z0-9._-]{3,96}$ |
trace_export required | object | — |
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
Verify selected local state and signed traces, then create a signed metadata-only workspace audit bundle without raw spans.
| Input | Type | What it is |
|---|---|---|
workspace_id required | string | Format: ^ws_[A-Za-z0-9-]{8,96}$ |
client_request_id required | string | Format: ^[A-Za-z0-9._-]{8,96}$ |
label required | string | — |
from | string | — |
to | string | — |
member_ids | array of string | — |
max_traces | integerdefault 500 | — |
include_policy_history | booleandefault 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
Create a signed, policy-bound plan for a Codex or Claude lifecycle adapter. Planning does not alter the host configuration.
| Input | Type | What it is |
|---|---|---|
workspace_id required | string | Format: ^ws_[A-Za-z0-9-]{8,96}$ |
installation_id required | string | Format: ^[A-Za-z0-9._-]{3,96}$ |
host_kind required | "codex" | "claude" | — |
max_age_seconds | integerdefault 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
Classify one installed host adapter as ACTIVE, STALE, DRIFTED, or BROKEN from signed config and lifecycle evidence.
| Input | Type | What it is |
|---|---|---|
workspace_id required | string | Format: ^ws_[A-Za-z0-9-]{8,96}$ |
installation_id required | string | Format: ^[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 and persist a signed metadata-only certificate for the current host coverage state.
| Input | Type | What it is |
|---|---|---|
workspace_id required | string | Format: ^ws_[A-Za-z0-9-]{8,96}$ |
installation_id required | string | Format: ^[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"
}