{
  "schema": "living-stack-tool-reference.v1",
  "captured_at": "2026-10-29T01:55:46.992Z",
  "server": {
    "name": "living-stack-team-local",
    "version": "0.2.0-beta.2",
    "protocol": "2025-06-18"
  },
  "node": "v22.22.0",
  "how": "node capture-tool-reference.mjs <server.mjs> (MCP stdio, throwaway state directory, no network)",
  "tools": [
    {
      "name": "livingstack.team.workspace_init",
      "title": "Initialize Team Local workspace",
      "description": "Create the single licensed local workspace and bootstrap the process-configured member as owner. The caller cannot select its identity.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "client_request_id",
          "name"
        ],
        "properties": {
          "client_request_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9._-]{8,96}$"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "description": {
            "type": "string",
            "maxLength": 1000
          },
          "retention_days": {
            "type": "integer",
            "minimum": 1,
            "maximum": 365,
            "default": 30
          }
        }
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true
      }
    },
    {
      "name": "livingstack.team.member_manage",
      "title": "Manage Team Local members",
      "description": "List, add, update, or disable process principals and bind Community signing-key fingerprints. Mutations require owner/admin and optimistic revision.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "workspace_id",
          "operation"
        ],
        "properties": {
          "workspace_id": {
            "type": "string",
            "pattern": "^ws_[A-Za-z0-9-]{8,96}$"
          },
          "operation": {
            "enum": [
              "list",
              "upsert",
              "disable"
            ]
          },
          "expected_revision": {
            "type": "integer",
            "minimum": 0
          },
          "member": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "member_id",
              "display_name",
              "role"
            ],
            "properties": {
              "member_id": {
                "type": "string",
                "pattern": "^[A-Za-z0-9._-]{3,96}$"
              },
              "display_name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 120
              },
              "role": {
                "enum": [
                  "owner",
                  "admin",
                  "operator",
                  "auditor",
                  "agent"
                ]
              },
              "trace_public_key_sha256": {
                "type": "array",
                "maxItems": 5,
                "items": {
                  "type": "string",
                  "pattern": "^[a-f0-9]{64}$"
                }
              }
            }
          },
          "member_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9._-]{3,96}$"
          }
        }
      },
      "annotations": {
        "destructiveHint": true
      }
    },
    {
      "name": "livingstack.team.policy_publish",
      "title": "Publish Team Local policy snapshot",
      "description": "Publish an immutable signed shared-policy snapshot. This does not claim automatic enforcement inside already-running Community processes.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "workspace_id",
          "expected_revision",
          "change_reason",
          "policy"
        ],
        "properties": {
          "workspace_id": {
            "type": "string",
            "pattern": "^ws_[A-Za-z0-9-]{8,96}$"
          },
          "expected_revision": {
            "type": "integer",
            "minimum": 0
          },
          "change_reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500
          },
          "policy": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "allowed_risks",
              "maximum_session_budget_usd",
              "maximum_retention_hours",
              "required_evidence_types"
            ],
            "properties": {
              "allowed_risks": {
                "type": "array",
                "uniqueItems": true,
                "items": {
                  "enum": [
                    "read",
                    "local_write",
                    "external",
                    "destructive"
                  ]
                }
              },
              "maximum_session_budget_usd": {
                "type": "number",
                "minimum": 0,
                "maximum": 1000000
              },
              "maximum_retention_hours": {
                "type": "number",
                "minimum": 1,
                "maximum": 8760
              },
              "required_evidence_types": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "completion",
                  "integrity",
                  "working",
                  "deployment"
                ],
                "properties": {
                  "completion": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "integrity": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "working": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "deployment": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        }
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false
      }
    },
    {
      "name": "livingstack.team.trace_ingest",
      "title": "Verify and ingest Community trace",
      "description": "Verify a metadata-only Community signed trace, bind it to a registered installation, and index it under the active policy snapshot.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "workspace_id",
          "client_request_id",
          "source_member_id",
          "trace_export"
        ],
        "properties": {
          "workspace_id": {
            "type": "string",
            "pattern": "^ws_[A-Za-z0-9-]{8,96}$"
          },
          "client_request_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9._-]{8,96}$"
          },
          "source_member_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9._-]{3,96}$"
          },
          "trace_export": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true
      }
    },
    {
      "name": "livingstack.team.audit_bundle_export",
      "title": "Export signed Team Local audit bundle",
      "description": "Verify selected local state and signed traces, then create a signed metadata-only workspace audit bundle without raw spans.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "workspace_id",
          "client_request_id",
          "label"
        ],
        "properties": {
          "workspace_id": {
            "type": "string",
            "pattern": "^ws_[A-Za-z0-9-]{8,96}$"
          },
          "client_request_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9._-]{8,96}$"
          },
          "label": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "from": {
            "type": "string",
            "format": "date-time"
          },
          "to": {
            "type": "string",
            "format": "date-time"
          },
          "member_ids": {
            "type": "array",
            "maxItems": 5,
            "items": {
              "type": "string"
            }
          },
          "max_traces": {
            "type": "integer",
            "minimum": 1,
            "maximum": 500,
            "default": 500
          },
          "include_policy_history": {
            "type": "boolean",
            "default": true
          }
        }
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": true
      }
    },
    {
      "name": "livingstack.team.host_adapter_plan",
      "title": "Plan a verified host adapter",
      "description": "Create a signed, policy-bound plan for a Codex or Claude lifecycle adapter. Planning does not alter the host configuration.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "workspace_id",
          "installation_id",
          "host_kind"
        ],
        "properties": {
          "workspace_id": {
            "type": "string",
            "pattern": "^ws_[A-Za-z0-9-]{8,96}$"
          },
          "installation_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9._-]{3,96}$"
          },
          "host_kind": {
            "enum": [
              "codex",
              "claude"
            ]
          },
          "max_age_seconds": {
            "type": "integer",
            "minimum": 60,
            "maximum": 604800,
            "default": 86400
          }
        }
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false
      }
    },
    {
      "name": "livingstack.team.host_coverage_status",
      "title": "Inspect verified host coverage",
      "description": "Classify one installed host adapter as ACTIVE, STALE, DRIFTED, or BROKEN from signed config and lifecycle evidence.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "workspace_id",
          "installation_id"
        ],
        "properties": {
          "workspace_id": {
            "type": "string",
            "pattern": "^ws_[A-Za-z0-9-]{8,96}$"
          },
          "installation_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9._-]{3,96}$"
          }
        }
      },
      "annotations": {
        "readOnlyHint": true
      }
    },
    {
      "name": "livingstack.team.host_coverage_certificate",
      "title": "Issue host coverage certificate",
      "description": "Issue and persist a signed metadata-only certificate for the current host coverage state.",
      "inputSchema": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "workspace_id",
          "installation_id"
        ],
        "properties": {
          "workspace_id": {
            "type": "string",
            "pattern": "^ws_[A-Za-z0-9-]{8,96}$"
          },
          "installation_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9._-]{3,96}$"
          }
        }
      },
      "annotations": {
        "destructiveHint": true,
        "idempotentHint": false
      }
    }
  ],
  "calls": [
    {
      "tool": "livingstack.team.workspace_init",
      "note": "Without a license key the Team server refuses before it reads or writes anything.",
      "arguments": {
        "client_request_id": "init-0001",
        "name": "invoice-service team"
      },
      "is_error": true,
      "response": {
        "decision": "FAIL",
        "reason": "license_key_missing_or_malformed"
      }
    },
    {
      "tool": "livingstack.team.member_manage",
      "note": "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"
      },
      "is_error": true,
      "response": {
        "decision": "FAIL",
        "reason": "license_key_missing_or_malformed"
      }
    },
    {
      "tool": "livingstack.team.policy_publish",
      "note": "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"
          ]
        }
      },
      "is_error": true,
      "response": {
        "decision": "FAIL",
        "reason": "license_key_missing_or_malformed"
      }
    },
    {
      "tool": "livingstack.team.trace_ingest",
      "note": "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": {}
      },
      "is_error": true,
      "response": {
        "decision": "FAIL",
        "reason": "license_key_missing_or_malformed"
      }
    },
    {
      "tool": "livingstack.team.audit_bundle_export",
      "note": "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"
      },
      "is_error": true,
      "response": {
        "decision": "FAIL",
        "reason": "license_key_missing_or_malformed"
      }
    },
    {
      "tool": "livingstack.team.host_adapter_plan",
      "note": "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"
      },
      "is_error": true,
      "response": {
        "decision": "FAIL",
        "reason": "license_key_missing_or_malformed"
      }
    },
    {
      "tool": "livingstack.team.host_coverage_status",
      "note": "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"
      },
      "is_error": true,
      "response": {
        "decision": "FAIL",
        "reason": "license_key_missing_or_malformed"
      }
    },
    {
      "tool": "livingstack.team.host_coverage_certificate",
      "note": "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"
      },
      "is_error": true,
      "response": {
        "decision": "FAIL",
        "reason": "license_key_missing_or_malformed"
      }
    }
  ]
}
