application · active

Agent

Agent and automation workspace for threads, workflows, approvals, outbound campaign readiness and suppression, operator execution, and reusable source-backed person profiles.

Documentation map

  • Topolo Agent — Public overview of the Cloudflare-first agent and automation platform in the Topolo portfolio.

Authority and runtime

System ID
topolo-agent
App IDs
app_topolo_agent
Owners
ai-platform
Repositories
apps/TopoloAgent
Hosts
https://agent.topolo.app, https://agent.stg.topolo.us, https://agent-api.stg.topolo.us, https://topolo-agent-stg.topolo-staging.workers.dev
Dependencies
topolo-auth, applications-packages, topolo-developers, topolo-p2p, topolo-nexus, topolo-voice, topolo-notify

Security and data ownership

Risk tier
high
Tenant isolation
organization_scoped
Privacy classification
restricted
Storage
d1, external_provider, r2
Export and deletion
planned
Enterprise ready
no

Source-derived capability inventory

Source revisions: apps/TopoloAgent@0b6311b87b46f1890852ff3ec5c3d316f1c5b6bf

Declared actions: 65 · API routes: 14 · UI routes: 16

{
  "id": "topolo-agent",
  "name": "Agent",
  "slug": "topolo-agent",
  "kind": "application",
  "visibility": "public",
  "repo_paths": [
    "apps/TopoloAgent"
  ],
  "source_revisions": [
    {
      "source_path": "apps/TopoloAgent",
      "repository": "apps/TopoloAgent",
      "revision": "0b6311b87b46f1890852ff3ec5c3d316f1c5b6bf",
      "ref": "origin/staging"
    }
  ],
  "source_counts": {
    "source_files": 141,
    "test_files": 72,
    "test_cases": 0,
    "migration_files": 12,
    "database_tables": 0,
    "manifests": 1,
    "deploy_targets": 2,
    "actions": 65,
    "mobile_contracts": 1,
    "notifications": 6,
    "package_manifests": 3,
    "deployment_configs": 0
  },
  "manifests": [
    {
      "source_path": "apps/TopoloAgent/topolo.app.json",
      "service_slug": "topolo-agent",
      "name": "topolo-agent",
      "app_id": "app_topolo_agent",
      "compatibility_date": "2026-04-10",
      "primary_target": null,
      "environments": [
        "development",
        "production",
        "staging"
      ],
      "targets": [
        {
          "name": "web",
          "kind": "worker",
          "directory": "apps/web",
          "main": "src/worker.ts",
          "worker_name": "topolo-agent",
          "subdomain": "agent",
          "healthcheck_path": null,
          "variable_names": [
            "AUTH_API_URL",
            "INSIGHTS_SITE_KEY"
          ],
          "secret_names": [],
          "bindings": [
            {
              "kind": "services",
              "binding": "API",
              "target": null
            }
          ]
        },
        {
          "name": "api",
          "kind": "worker",
          "directory": "apps/api",
          "main": "index.ts",
          "worker_name": "topolo-agent-api",
          "subdomain": null,
          "healthcheck_path": "/health",
          "variable_names": [
            "account_id",
            "AGENT_APP_URL",
            "AGENT_COMPLETION_MODEL",
            "AGENT_COMPLETION_PROVIDER",
            "CLOUDFLARE_ACCOUNT_ID",
            "ENVIRONMENT",
            "NEXUS_GATEWAY_URL",
            "NEXUS_ORGANIZATION_ID",
            "NODE_ENV",
            "PUBLIC_ASSISTANT_ORG_SLUGS",
            "TOPOLO_AUTH_URL",
            "TOPOLO_NOTIFY_URL"
          ],
          "secret_names": [],
          "bindings": [
            {
              "kind": "d1",
              "binding": "AGENT_CORE_DB",
              "target": null
            },
            {
              "kind": "d1",
              "binding": "AGENT_RUNTIME_DB",
              "target": null
            },
            {
              "kind": "d1",
              "binding": "AGENT_KNOWLEDGE_DB",
              "target": null
            },
            {
              "kind": "d1",
              "binding": "AGENT_EVENTS_DB",
              "target": null
            },
            {
              "kind": "r2",
              "binding": "AGENT_LOGS",
              "target": null
            },
            {
              "kind": "vectorize",
              "binding": "KNOWLEDGE_VECTOR",
              "target": null
            },
            {
              "kind": "durableObjects",
              "binding": "AgentSession",
              "target": null
            }
          ]
        }
      ],
      "notifications": [
        "agent.intake.assigned",
        "agent.monitor.alert_triggered",
        "agent.report.ready",
        "agent.workflow.approval_requested",
        "agent.workflow.run_completed",
        "agent.workflow.run_failed"
      ],
      "notification_contract": {
        "source_path": "topolo.notification-contracts.json",
        "role": "producer",
        "schema_version": 1,
        "owner_app_id": "app_topolo_agent",
        "events": [
          {
            "type": "agent.intake.assigned",
            "version": 1,
            "description": "Agent recorded the durable intake assigned transition.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "object_id",
                "occurred_at",
                "intake_id",
                "assigned_user_id"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "intake_id": {
                  "type": "string",
                  "minLength": 1
                },
                "assigned_user_id": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "additionalProperties": true
            },
            "examples": [
              {
                "title": "Intake assigned: Acme bootstrap",
                "body": "A new Agent intake is ready for you to complete.",
                "object_id": "intake_123",
                "occurred_at": "2026-07-19T00:00:00.000Z",
                "intake_id": "intake_123",
                "assigned_user_id": "user_123"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-agent:intake-assigned:"
            },
            "sensitiveFields": []
          },
          {
            "type": "agent.monitor.alert_triggered",
            "version": 1,
            "description": "A completed monitor run produced a medium- or high-severity signal requiring review.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "object_id",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "additionalProperties": true
            },
            "examples": [
              {
                "title": "Pipeline watch needs attention",
                "body": "Two deals need attention.",
                "object_id": "monitor_run_123",
                "occurred_at": "2026-07-17T00:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-agent:monitor-alert:"
            },
            "sensitiveFields": []
          },
          {
            "type": "agent.report.ready",
            "version": 1,
            "description": "A persisted Agent report reached ready state after a monitor run completed.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "object_id",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "additionalProperties": true
            },
            "examples": [
              {
                "title": "Pipeline watch report",
                "body": "Two deals need attention.",
                "object_id": "report_123",
                "occurred_at": "2026-07-17T00:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-agent:report-ready:"
            },
            "sensitiveFields": []
          },
          {
            "type": "agent.workflow.approval_requested",
            "version": 1,
            "description": "A workflow paused for an explicit approval.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "object_id",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "enum": [
                    "notification",
                    "action"
                  ]
                },
                "action_kind": {
                  "enum": [
                    "open",
                    "review",
                    "approve",
                    "resolve",
                    "complete"
                  ]
                },
                "action_status": {
                  "type": "string"
                },
                "priority": {
                  "enum": [
                    "low",
                    "normal",
                    "high",
                    "urgent"
                  ]
                },
                "cta_url": {
                  "type": "string",
                  "format": "uri"
                },
                "cta_label": {
                  "type": "string"
                },
                "category": {
                  "type": "string"
                },
                "severity": {
                  "enum": [
                    "info",
                    "success",
                    "warning",
                    "critical"
                  ]
                },
                "object_type": {
                  "type": "string"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "actor_id": {
                  "type": "string"
                },
                "actor_display_name": {
                  "type": "string"
                },
                "recipient_email": {
                  "type": "string",
                  "format": "email"
                },
                "thread_key": {
                  "type": "string"
                },
                "expires_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "action_context": {
                  "type": "object"
                }
              },
              "additionalProperties": true
            },
            "examples": [
              {
                "title": "A workflow paused for an explicit approval.",
                "body": "Open the owning app to review this event.",
                "object_id": "object_123",
                "occurred_at": "2026-07-17T00:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-agent:approval:"
            },
            "sensitiveFields": []
          },
          {
            "type": "agent.workflow.run_completed",
            "version": 1,
            "description": "A persisted workflow run reached completed state and its output is ready to review.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "object_id",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "additionalProperties": true
            },
            "examples": [
              {
                "title": "Workflow completed: Launch workflow",
                "body": "The workflow completed successfully and its output is ready to review.",
                "object_id": "workflow_run_123",
                "occurred_at": "2026-07-17T00:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-agent:workflow-completed:"
            },
            "sensitiveFields": []
          },
          {
            "type": "agent.workflow.run_failed",
            "version": 1,
            "description": "A workflow run failed and needs attention.",
            "status": "published",
            "payloadSchema": {
              "type": "object",
              "required": [
                "title",
                "body",
                "object_id",
                "occurred_at"
              ],
              "properties": {
                "title": {
                  "type": "string",
                  "minLength": 1
                },
                "body": {
                  "type": "string",
                  "minLength": 1
                },
                "surface": {
                  "enum": [
                    "notification",
                    "action"
                  ]
                },
                "action_kind": {
                  "enum": [
                    "open",
                    "review",
                    "approve",
                    "resolve",
                    "complete"
                  ]
                },
                "action_status": {
                  "type": "string"
                },
                "priority": {
                  "enum": [
                    "low",
                    "normal",
                    "high",
                    "urgent"
                  ]
                },
                "cta_url": {
                  "type": "string",
                  "format": "uri"
                },
                "cta_label": {
                  "type": "string"
                },
                "category": {
                  "type": "string"
                },
                "severity": {
                  "enum": [
                    "info",
                    "success",
                    "warning",
                    "critical"
                  ]
                },
                "object_type": {
                  "type": "string"
                },
                "object_id": {
                  "type": "string",
                  "minLength": 1
                },
                "occurred_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "actor_id": {
                  "type": "string"
                },
                "actor_display_name": {
                  "type": "string"
                },
                "recipient_email": {
                  "type": "string",
                  "format": "email"
                },
                "thread_key": {
                  "type": "string"
                },
                "expires_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "action_context": {
                  "type": "object"
                }
              },
              "additionalProperties": true
            },
            "examples": [
              {
                "title": "A workflow run failed and needs attention.",
                "body": "Open the owning app to review this event.",
                "object_id": "object_123",
                "occurred_at": "2026-07-17T00:00:00.000Z"
              }
            ],
            "dataClassification": "internal",
            "recipients": {
              "modes": [
                "organization_member"
              ],
              "externalAddress": "forbidden"
            },
            "idempotency": {
              "required": true,
              "pattern": "^topolo-agent:workflow-failed:"
            },
            "sensitiveFields": []
          }
        ]
      },
      "actions": [
        {
          "name": "widget.get",
          "title": "Get widget summary",
          "description": "Get the TopoloOne widget summary for this service.",
          "method": "GET",
          "path": "/api/widget",
          "permission": "workspace:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "target": "api",
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/widget",
              "body": null
            },
            "effects": "Reads state through GET /api/widget without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/widget",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "agents.list",
          "title": "List agents",
          "description": "List configured workspace agents.",
          "method": "GET",
          "path": "/api/agents",
          "permission": "agents:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List agents.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/agents",
              "body": null
            },
            "effects": "Reads state through GET /api/agents without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/agents",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "agents.create",
          "title": "Create agent",
          "description": "Create a workspace agent.",
          "method": "POST",
          "path": "/api/agents",
          "permission": "agents:write",
          "readOnly": false,
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1
              },
              "role": {
                "type": "string",
                "minLength": 1
              },
              "description": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "model": {
                "type": "string"
              },
              "config": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "templateId": {
                "type": "string"
              },
              "template_id": {
                "type": "string"
              },
              "accountableUserId": {
                "type": "string"
              },
              "accountable_user_id": {
                "type": "string"
              },
              "executorType": {
                "type": "string"
              },
              "executor_type": {
                "type": "string"
              },
              "policyId": {
                "type": "string"
              },
              "policy_id": {
                "type": "string"
              },
              "serviceGrants": {
                "type": "array",
                "items": {}
              },
              "service_grants": {
                "type": "array",
                "items": {}
              }
            },
            "required": [
              "name",
              "role"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create agent.",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "name": "example",
              "role": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/agents",
              "body": {
                "name": "example",
                "role": "example"
              }
            },
            "effects": "May change state through POST /api/agents. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/agents",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "workflows.list",
          "toolName": "list_workflow_runs",
          "title": "List workflows",
          "description": "List agent workflows.",
          "method": "GET",
          "path": "/api/workflows",
          "permission": "workflows:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List workflows.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/workflows",
              "body": null
            },
            "effects": "Reads state through GET /api/workflows without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/workflows",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "workflows.run",
          "title": "Run workflow",
          "description": "Run an agent workflow by id.",
          "method": "POST",
          "path": "/api/workflows/{workflowId}/run",
          "permission": "runs:invoke",
          "readOnly": false,
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "workflowId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "workflowId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Run workflow.",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "workflowId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/workflows/example/run",
              "body": {
                "workflowId": "example"
              }
            },
            "effects": "May change state through POST /api/workflows/{workflowId}/run. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/workflows/*/run",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "approvals.list",
          "title": "List approvals",
          "description": "List pending agent approvals.",
          "method": "GET",
          "path": "/api/approvals",
          "permission": "workspace:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List approvals.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/approvals",
              "body": null
            },
            "effects": "Reads state through GET /api/approvals without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/approvals",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "approvals.get",
          "title": "Get approval",
          "description": "Get one approval request in the current organization.",
          "method": "GET",
          "path": "/api/approvals/{id}",
          "permission": "workspace:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/approvals/00000000-0000-4000-8000-000000000000",
              "body": null
            },
            "effects": "Reads state through GET /api/approvals/{id} without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/approvals/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "approvals.respond",
          "title": "Approvals Respond",
          "description": "Call POST /api/approvals/{id}/respond.",
          "method": "POST",
          "path": "/api/approvals/{id}/respond",
          "permission": "approvals:write",
          "readOnly": false,
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "decision": {
                "type": "string",
                "enum": [
                  "approved",
                  "rejected"
                ]
              },
              "note": {
                "type": "string"
              }
            },
            "required": [
              "id",
              "decision"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Approvals Respond.",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000",
              "decision": "approved"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/approvals/00000000-0000-4000-8000-000000000000/respond",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000",
                "decision": "approved"
              }
            },
            "effects": "May change state through POST /api/approvals/{id}/respond. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/approvals/*/respond",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "reports.list",
          "title": "List reports",
          "description": "List generated agent reports.",
          "method": "GET",
          "path": "/api/reports",
          "permission": "reports:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List reports.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "limit": 1
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/reports",
              "body": null
            },
            "effects": "Reads state through GET /api/reports without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/reports",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "monitors.run",
          "toolName": "run_monitor",
          "title": "Run monitor",
          "description": "Run a configured monitor by id.",
          "method": "POST",
          "path": "/api/monitors/{monitorId}/run",
          "permission": "runs:invoke",
          "readOnly": false,
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "monitorId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "monitorId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Run monitor.",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "monitorId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/monitors/example/run",
              "body": {
                "monitorId": "example"
              }
            },
            "effects": "May change state through POST /api/monitors/{monitorId}/run. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/monitors/*/run",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "threads.list",
          "title": "List threads",
          "description": "List agent threads.",
          "method": "GET",
          "path": "/api/threads",
          "permission": "workspace:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by List threads.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/threads",
              "body": null
            },
            "effects": "Reads state through GET /api/threads without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/threads",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "threads.create",
          "title": "Create thread",
          "description": "Create an agent thread.",
          "method": "POST",
          "path": "/api/threads",
          "permission": "workspace:write",
          "readOnly": false,
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "appScope": {
                "anyOf": [
                  {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "minLength": 1
                  }
                ]
              },
              "threadKind": {
                "type": "string"
              },
              "appSlug": {
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Create thread.",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "title": "example",
              "appScope": [
                "example"
              ],
              "threadKind": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/threads",
              "body": {
                "title": "example",
                "appScope": [
                  "example"
                ],
                "threadKind": "example"
              }
            },
            "effects": "May change state through POST /api/threads. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/threads",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "agents.get",
          "title": "Agents Get",
          "description": "Call GET /api/agents/{id}.",
          "method": "GET",
          "path": "/api/agents/{id}",
          "permission": "agents:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Agents Get.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/agents/00000000-0000-4000-8000-000000000000",
              "body": null
            },
            "effects": "Reads state through GET /api/agents/{id} without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/agents/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "agents.update",
          "title": "Agents Update",
          "description": "Call PATCH /api/agents/{id}.",
          "method": "PATCH",
          "path": "/api/agents/{id}",
          "permission": "agents:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string"
              },
              "role": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "model": {
                "type": "string"
              },
              "config": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "accountableUserId": {
                "type": "string"
              },
              "accountable_user_id": {
                "type": "string"
              },
              "executorType": {
                "type": "string"
              },
              "executor_type": {
                "type": "string"
              },
              "policyId": {
                "type": "string"
              },
              "policy_id": {
                "type": "string"
              },
              "serviceGrants": {
                "type": "array",
                "items": {}
              },
              "service_grants": {
                "type": "array",
                "items": {}
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Agents Update.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "PATCH",
              "path": "/api/agents/00000000-0000-4000-8000-000000000000",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000"
              }
            },
            "effects": "May change state through PATCH /api/agents/{id}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "PATCH /api/agents/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "agents.runs.list",
          "title": "Agents Runs List",
          "description": "Call GET /api/agents/{id}/runs.",
          "method": "GET",
          "path": "/api/agents/{id}/runs",
          "permission": "agents:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 50
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Agents Runs List.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/agents/00000000-0000-4000-8000-000000000000/runs",
              "body": null
            },
            "effects": "Reads state through GET /api/agents/{id}/runs without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/agents/*/runs",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "agents.runs.create",
          "title": "Agents Runs Create",
          "description": "Call POST /api/agents/{id}/runs.",
          "method": "POST",
          "path": "/api/agents/{id}/runs",
          "permission": "runs:invoke",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "status": {
                "type": "string"
              },
              "output": {
                "type": "string"
              },
              "duration_ms": {
                "type": "number"
              },
              "log": {
                "type": "string"
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Agents Runs Create.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/agents/00000000-0000-4000-8000-000000000000/runs",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000"
              }
            },
            "effects": "May change state through POST /api/agents/{id}/runs. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/agents/*/runs",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "artifacts.list",
          "title": "Artifacts List",
          "description": "Call GET /api/artifacts.",
          "method": "GET",
          "path": "/api/artifacts",
          "permission": "workspace:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Artifacts List.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "limit": 1
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/artifacts",
              "body": null
            },
            "effects": "Reads state through GET /api/artifacts without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/artifacts",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "connectors.list",
          "title": "Connectors List",
          "description": "Call GET /api/connectors.",
          "method": "GET",
          "path": "/api/connectors",
          "permission": "workspace:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Connectors List.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/connectors",
              "body": null
            },
            "effects": "Reads state through GET /api/connectors without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/connectors",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "connectors.get",
          "title": "Connectors Get",
          "description": "Call GET /api/connectors/{id}.",
          "method": "GET",
          "path": "/api/connectors/{id}",
          "permission": "workspace:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Connectors Get.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/connectors/00000000-0000-4000-8000-000000000000",
              "body": null
            },
            "effects": "Reads state through GET /api/connectors/{id} without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/connectors/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "inbox.list",
          "title": "Inbox List",
          "description": "Call GET /api/inbox.",
          "method": "GET",
          "path": "/api/inbox",
          "permission": "workspace:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Inbox List.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/inbox",
              "body": null
            },
            "effects": "Reads state through GET /api/inbox without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/inbox",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "intakes.list",
          "title": "Intakes List",
          "description": "Call POST /api/intakes.",
          "method": "POST",
          "path": "/api/intakes",
          "permission": "workspace:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "orgName": {
                "type": "string"
              },
              "draftProfile": {
                "type": "object",
                "properties": {
                  "orgName": {
                    "type": "string"
                  },
                  "industry": {
                    "type": "string"
                  },
                  "businessSummary": {
                    "type": "string"
                  },
                  "targetCustomer": {
                    "type": "string"
                  },
                  "revenueModel": {
                    "type": "string"
                  },
                  "primaryGoals": {
                    "anyOf": [
                      {
                        "minItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "minLength": 1
                      }
                    ]
                  },
                  "preferredApps": {
                    "anyOf": [
                      {
                        "minItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "minLength": 1
                      }
                    ]
                  },
                  "brandVoice": {
                    "type": "string"
                  },
                  "operatorNotes": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              "industry": {
                "type": "string"
              },
              "businessSummary": {
                "type": "string"
              },
              "targetCustomer": {
                "type": "string"
              },
              "revenueModel": {
                "type": "string"
              },
              "primaryGoals": {
                "anyOf": [
                  {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "minLength": 1
                  }
                ]
              },
              "preferredApps": {
                "anyOf": [
                  {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "minLength": 1
                  }
                ]
              },
              "brandVoice": {
                "type": "string"
              },
              "operatorNotes": {
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Intakes List.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "title": "example",
              "orgName": "example",
              "draftProfile": {
                "orgName": "example",
                "industry": "example",
                "businessSummary": "example"
              }
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/intakes",
              "body": {
                "title": "example",
                "orgName": "example",
                "draftProfile": {
                  "orgName": "example",
                  "industry": "example",
                  "businessSummary": "example"
                }
              }
            },
            "effects": "May change state through POST /api/intakes. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/intakes",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "intakes.get",
          "title": "Intakes Get",
          "description": "Call GET /api/intakes/{id}.",
          "method": "GET",
          "path": "/api/intakes/{id}",
          "permission": "workspace:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Intakes Get.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/intakes/00000000-0000-4000-8000-000000000000",
              "body": null
            },
            "effects": "Reads state through GET /api/intakes/{id} without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/intakes/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "intakes.messages.create",
          "title": "Intakes Messages Create",
          "description": "Call POST /api/intakes/{id}/messages.",
          "method": "POST",
          "path": "/api/intakes/{id}/messages",
          "permission": "workspace:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "role": {
                "type": "string",
                "enum": [
                  "operator",
                  "assistant",
                  "system"
                ]
              },
              "content": {
                "type": "string"
              },
              "currentStep": {
                "type": "string"
              },
              "draftProfile": {
                "type": "object",
                "properties": {
                  "orgName": {
                    "type": "string"
                  },
                  "industry": {
                    "type": "string"
                  },
                  "businessSummary": {
                    "type": "string"
                  },
                  "targetCustomer": {
                    "type": "string"
                  },
                  "revenueModel": {
                    "type": "string"
                  },
                  "primaryGoals": {
                    "anyOf": [
                      {
                        "minItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "minLength": 1
                      }
                    ]
                  },
                  "preferredApps": {
                    "anyOf": [
                      {
                        "minItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "minLength": 1
                      }
                    ]
                  },
                  "brandVoice": {
                    "type": "string"
                  },
                  "operatorNotes": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Intakes Messages Create.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/intakes/00000000-0000-4000-8000-000000000000/messages",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000"
              }
            },
            "effects": "May change state through POST /api/intakes/{id}/messages. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/intakes/*/messages",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "intakes.complete",
          "title": "Intakes Complete",
          "description": "Call POST /api/intakes/{id}/complete.",
          "method": "POST",
          "path": "/api/intakes/{id}/complete",
          "permission": "workspace:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "profile": {
                "type": "object",
                "properties": {
                  "orgName": {
                    "type": "string"
                  },
                  "industry": {
                    "type": "string"
                  },
                  "businessSummary": {
                    "type": "string"
                  },
                  "targetCustomer": {
                    "type": "string"
                  },
                  "revenueModel": {
                    "type": "string"
                  },
                  "primaryGoals": {
                    "anyOf": [
                      {
                        "minItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "minLength": 1
                      }
                    ]
                  },
                  "preferredApps": {
                    "anyOf": [
                      {
                        "minItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string"
                        }
                      },
                      {
                        "type": "string",
                        "minLength": 1
                      }
                    ]
                  },
                  "brandVoice": {
                    "type": "string"
                  },
                  "operatorNotes": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Intakes Complete.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/intakes/00000000-0000-4000-8000-000000000000/complete",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000"
              }
            },
            "effects": "May change state through POST /api/intakes/{id}/complete. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/intakes/*/complete",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "monitors.list",
          "toolName": "list_monitors",
          "title": "Monitors List",
          "description": "Call GET /api/monitors.",
          "method": "GET",
          "path": "/api/monitors",
          "permission": "workspace:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Monitors List.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/monitors",
              "body": null
            },
            "effects": "Reads state through GET /api/monitors without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/monitors",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "person_profiles.list",
          "title": "Person Profiles List",
          "description": "Call GET /api/person-profiles.",
          "method": "GET",
          "path": "/api/person-profiles",
          "permission": "knowledge:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "visibility": {
                "type": "string",
                "enum": [
                  "private",
                  "workspace"
                ]
              },
              "includeArchived": {
                "type": "string",
                "enum": [
                  "true",
                  "false"
                ]
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Person Profiles List.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "visibility": "private",
              "includeArchived": "true"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/person-profiles",
              "body": null
            },
            "effects": "Reads state through GET /api/person-profiles without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/person-profiles",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "person_profiles.create",
          "title": "Person Profiles Create",
          "description": "Call POST /api/person-profiles.",
          "method": "POST",
          "path": "/api/person-profiles",
          "permission": "knowledge:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "subjectUserId": {
                "type": "string"
              },
              "ownerUserId": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "visibility": {
                "type": "string",
                "enum": [
                  "private",
                  "workspace"
                ]
              },
              "linkedPersonaId": {
                "type": "string"
              },
              "linkedAgentId": {
                "type": "string"
              },
              "voiceProfileId": {
                "type": "string"
              },
              "writingStyle": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "speakingStyle": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "personaRules": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "usagePolicy": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "authorizationEvidence": {
                "type": "array",
                "items": {}
              },
              "displayName": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "displayName"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Person Profiles Create.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "displayName": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/person-profiles",
              "body": {
                "displayName": "example"
              }
            },
            "effects": "May change state through POST /api/person-profiles. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/person-profiles",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "person_profiles.get",
          "title": "Person Profiles Get",
          "description": "Call GET /api/person-profiles/{id}.",
          "method": "GET",
          "path": "/api/person-profiles/{id}",
          "permission": "knowledge:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Person Profiles Get.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/person-profiles/00000000-0000-4000-8000-000000000000",
              "body": null
            },
            "effects": "Reads state through GET /api/person-profiles/{id} without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/person-profiles/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "person_profiles.update",
          "title": "Person Profiles Update",
          "description": "Call PATCH /api/person-profiles/{id}.",
          "method": "PATCH",
          "path": "/api/person-profiles/{id}",
          "permission": "knowledge:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "displayName": {
                "type": "string"
              },
              "subjectUserId": {
                "type": "string"
              },
              "ownerUserId": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "visibility": {
                "type": "string",
                "enum": [
                  "private",
                  "workspace"
                ]
              },
              "linkedPersonaId": {
                "type": "string"
              },
              "linkedAgentId": {
                "type": "string"
              },
              "voiceProfileId": {
                "type": "string"
              },
              "writingStyle": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "speakingStyle": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "personaRules": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "usagePolicy": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "authorizationEvidence": {
                "type": "array",
                "items": {}
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Person Profiles Update.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "PATCH",
              "path": "/api/person-profiles/00000000-0000-4000-8000-000000000000",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000"
              }
            },
            "effects": "May change state through PATCH /api/person-profiles/{id}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "PATCH /api/person-profiles/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "person_profiles.delete",
          "title": "Person Profiles Delete",
          "description": "Call DELETE /api/person-profiles/{id}.",
          "method": "DELETE",
          "path": "/api/person-profiles/{id}",
          "permission": "knowledge:write",
          "requiresConfirmation": true,
          "destructive": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Person Profiles Delete.",
            "additionalProperties": true
          },
          "readOnly": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "DELETE",
              "path": "/api/person-profiles/00000000-0000-4000-8000-000000000000",
              "body": null
            },
            "effects": "May change state through DELETE /api/person-profiles/{id}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "DELETE /api/person-profiles/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "person_profiles.sources.create",
          "title": "Person Profiles Sources Create",
          "description": "Call POST /api/person-profiles/{id}/sources.",
          "method": "POST",
          "path": "/api/person-profiles/{id}/sources",
          "permission": "knowledge:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "sourceUrl": {
                "type": "string"
              },
              "knowledgeDocumentId": {
                "type": "string"
              },
              "authorizationEvidenceId": {
                "type": "string"
              },
              "metadata": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "id": {
                "type": "string",
                "minLength": 1
              },
              "sourceKind": {
                "type": "string",
                "minLength": 1
              },
              "sourceLabel": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id",
              "sourceKind",
              "sourceLabel"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Person Profiles Sources Create.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000",
              "sourceKind": "example",
              "sourceLabel": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/person-profiles/00000000-0000-4000-8000-000000000000/sources",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000",
                "sourceKind": "example",
                "sourceLabel": "example"
              }
            },
            "effects": "May change state through POST /api/person-profiles/{id}/sources. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/person-profiles/*/sources",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "person_profiles.style_snapshots.create",
          "title": "Person Profiles Style Snapshots Create",
          "description": "Call POST /api/person-profiles/{id}/style-snapshots.",
          "method": "POST",
          "path": "/api/person-profiles/{id}/style-snapshots",
          "permission": "knowledge:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "facet": {
                "type": "string",
                "minLength": 1
              },
              "summary": {
                "type": "string",
                "minLength": 1
              },
              "styleRules": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "confidence": {
                "type": "number"
              },
              "sourceCount": {
                "type": "number"
              }
            },
            "required": [
              "id",
              "facet",
              "summary"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Person Profiles Style Snapshots Create.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000",
              "facet": "example",
              "summary": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/person-profiles/00000000-0000-4000-8000-000000000000/style-snapshots",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000",
                "facet": "example",
                "summary": "example"
              }
            },
            "effects": "May change state through POST /api/person-profiles/{id}/style-snapshots. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/person-profiles/*/style-snapshots",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "person_profiles.preview",
          "title": "Person Profiles Preview",
          "description": "Call POST /api/person-profiles/{id}/preview.",
          "method": "POST",
          "path": "/api/person-profiles/{id}/preview",
          "permission": "knowledge:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "brief": {
                "type": "string"
              },
              "prompt": {
                "type": "string"
              },
              "mode": {
                "type": "string",
                "enum": [
                  "email",
                  "chat",
                  "brief",
                  "post"
                ]
              },
              "audience": {
                "type": "string"
              },
              "channel": {
                "type": "string"
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Person Profiles Preview.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/person-profiles/00000000-0000-4000-8000-000000000000/preview",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000"
              }
            },
            "effects": "May change state through POST /api/person-profiles/{id}/preview. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/person-profiles/*/preview",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "personas.list",
          "title": "Personas List",
          "description": "Call GET /api/personas.",
          "method": "GET",
          "path": "/api/personas",
          "permission": "workspace:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "visibility": {
                "type": "string",
                "enum": [
                  "private",
                  "workspace"
                ]
              },
              "includeArchived": {
                "type": "string",
                "enum": [
                  "true",
                  "false"
                ]
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Personas List.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "visibility": "private",
              "includeArchived": "true"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/personas",
              "body": null
            },
            "effects": "Reads state through GET /api/personas without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/personas",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "personas.create",
          "title": "Personas Create",
          "description": "Call POST /api/personas.",
          "method": "POST",
          "path": "/api/personas",
          "permission": "workspace:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1
              },
              "description": {
                "type": "string"
              },
              "persona": {
                "type": "string"
              },
              "pointOfView": {
                "type": "string",
                "enum": [
                  "first",
                  "third"
                ]
              },
              "point_of_view": {
                "type": "string",
                "enum": [
                  "first",
                  "third"
                ]
              },
              "targetAudience": {
                "type": "string"
              },
              "target_audience": {
                "type": "string"
              },
              "tone": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "voice": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "avatar": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "modelRouting": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "model_routing": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "visibility": {
                "type": "string",
                "enum": [
                  "private",
                  "workspace"
                ]
              },
              "isDefault": {
                "type": "boolean"
              },
              "is_default": {
                "type": "boolean"
              },
              "isArchived": {
                "type": "boolean"
              },
              "is_archived": {
                "type": "boolean"
              },
              "doList": {
                "anyOf": [
                  {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "minLength": 1
                  }
                ]
              },
              "do_list": {
                "anyOf": [
                  {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "minLength": 1
                  }
                ]
              },
              "dontList": {
                "anyOf": [
                  {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "minLength": 1
                  }
                ]
              },
              "dont_list": {
                "anyOf": [
                  {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "minLength": 1
                  }
                ]
              },
              "bannedPhrases": {
                "anyOf": [
                  {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "minLength": 1
                  }
                ]
              },
              "banned_phrases": {
                "anyOf": [
                  {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "minLength": 1
                  }
                ]
              },
              "preferredVocabulary": {
                "anyOf": [
                  {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "minLength": 1
                  }
                ]
              },
              "preferred_vocabulary": {
                "anyOf": [
                  {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "minLength": 1
                  }
                ]
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Personas Create.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "name": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/personas",
              "body": {
                "name": "example"
              }
            },
            "effects": "May change state through POST /api/personas. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/personas",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "personas.get",
          "title": "Personas Get",
          "description": "Call GET /api/personas/{id}.",
          "method": "GET",
          "path": "/api/personas/{id}",
          "permission": "workspace:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Personas Get.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/personas/00000000-0000-4000-8000-000000000000",
              "body": null
            },
            "effects": "Reads state through GET /api/personas/{id} without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/personas/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "personas.update",
          "title": "Personas Update",
          "description": "Call PATCH /api/personas/{id}.",
          "method": "PATCH",
          "path": "/api/personas/{id}",
          "permission": "workspace:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "name": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "persona": {
                "type": "string"
              },
              "pointOfView": {
                "type": "string",
                "enum": [
                  "first",
                  "third"
                ]
              },
              "point_of_view": {
                "type": "string",
                "enum": [
                  "first",
                  "third"
                ]
              },
              "targetAudience": {
                "type": "string"
              },
              "target_audience": {
                "type": "string"
              },
              "tone": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "voice": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "avatar": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "modelRouting": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "model_routing": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              "visibility": {
                "type": "string",
                "enum": [
                  "private",
                  "workspace"
                ]
              },
              "isDefault": {
                "type": "boolean"
              },
              "is_default": {
                "type": "boolean"
              },
              "isArchived": {
                "type": "boolean"
              },
              "is_archived": {
                "type": "boolean"
              },
              "doList": {
                "anyOf": [
                  {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "minLength": 1
                  }
                ]
              },
              "do_list": {
                "anyOf": [
                  {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "minLength": 1
                  }
                ]
              },
              "dontList": {
                "anyOf": [
                  {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "minLength": 1
                  }
                ]
              },
              "dont_list": {
                "anyOf": [
                  {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "minLength": 1
                  }
                ]
              },
              "bannedPhrases": {
                "anyOf": [
                  {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "minLength": 1
                  }
                ]
              },
              "banned_phrases": {
                "anyOf": [
                  {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "minLength": 1
                  }
                ]
              },
              "preferredVocabulary": {
                "anyOf": [
                  {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "minLength": 1
                  }
                ]
              },
              "preferred_vocabulary": {
                "anyOf": [
                  {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  {
                    "type": "string",
                    "minLength": 1
                  }
                ]
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Personas Update.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "PATCH",
              "path": "/api/personas/00000000-0000-4000-8000-000000000000",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000"
              }
            },
            "effects": "May change state through PATCH /api/personas/{id}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "PATCH /api/personas/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "personas.delete",
          "title": "Personas Delete",
          "description": "Call DELETE /api/personas/{id}.",
          "method": "DELETE",
          "path": "/api/personas/{id}",
          "permission": "workspace:write",
          "requiresConfirmation": true,
          "destructive": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Personas Delete.",
            "additionalProperties": true
          },
          "readOnly": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "DELETE",
              "path": "/api/personas/00000000-0000-4000-8000-000000000000",
              "body": null
            },
            "effects": "May change state through DELETE /api/personas/{id}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "DELETE /api/personas/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "personas.set_default",
          "title": "Personas Set Default",
          "description": "Call POST /api/personas/{id}/default.",
          "method": "POST",
          "path": "/api/personas/{id}/default",
          "permission": "workspace:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Personas Set Default.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/personas/00000000-0000-4000-8000-000000000000/default",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000"
              }
            },
            "effects": "May change state through POST /api/personas/{id}/default. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/personas/*/default",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "agent_thread.get",
          "title": "Agent Thread Get",
          "description": "Call GET /api/agent-thread.",
          "method": "GET",
          "path": "/api/agent-thread",
          "permission": "workspace:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Agent Thread Get.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/agent-thread",
              "body": null
            },
            "effects": "Reads state through GET /api/agent-thread without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/agent-thread",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "agent_sessions.state",
          "title": "Get agent session state",
          "description": "Get the transcript and pending approval state for an agent session.",
          "method": "GET",
          "path": "/api/agent-session/{threadId}",
          "permission": "workspace:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "threadId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "threadId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "threadId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/agent-session/example",
              "body": null
            },
            "effects": "Reads state through GET /api/agent-session/{threadId} without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/agent-session/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "agent_sessions.message",
          "title": "Send agent session message",
          "description": "Run a message turn in a workspace-scoped agent session.",
          "method": "POST",
          "path": "/api/agent-session/{threadId}",
          "permission": "workspace:write",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "threadId": {
                "type": "string",
                "minLength": 1
              },
              "type": {
                "type": "string",
                "const": "message"
              },
              "content": {
                "type": "string",
                "minLength": 1
              },
              "personaId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "threadId",
              "type",
              "content"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "threadId": "example",
              "type": "message",
              "content": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/agent-session/example",
              "body": {
                "threadId": "example",
                "type": "message",
                "content": "example"
              }
            },
            "effects": "May change state through POST /api/agent-session/{threadId}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/agent-session/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "agent_sessions.approve",
          "title": "Resolve agent session approval",
          "description": "Approve or reject a pending agent-session tool call.",
          "method": "POST",
          "path": "/api/agent-session/{threadId}",
          "permission": "workspace:write",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "threadId": {
                "type": "string",
                "minLength": 1
              },
              "type": {
                "type": "string",
                "const": "approve"
              },
              "approvalId": {
                "type": "string",
                "minLength": 1
              },
              "decision": {
                "type": "string",
                "enum": [
                  "approve",
                  "reject"
                ]
              }
            },
            "required": [
              "threadId",
              "type",
              "approvalId",
              "decision"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": true,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "threadId": "example",
              "type": "approve",
              "approvalId": "example",
              "decision": "approve"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/agent-session/example",
              "body": {
                "threadId": "example",
                "type": "approve",
                "approvalId": "example",
                "decision": "approve"
              }
            },
            "effects": "May change state through POST /api/agent-session/{threadId}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/agent-session/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "agent_thread.create",
          "title": "Agent Thread Create",
          "description": "Call POST /api/agent-thread.",
          "method": "POST",
          "path": "/api/agent-thread",
          "permission": "workspace:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "content": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "content"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Agent Thread Create.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "content": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/agent-thread",
              "body": {
                "content": "example"
              }
            },
            "effects": "May change state through POST /api/agent-thread. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/agent-thread",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "agent_thread.stream",
          "title": "Agent Thread Stream",
          "description": "Call POST /api/agent-thread/stream.",
          "method": "POST",
          "path": "/api/agent-thread/stream",
          "permission": "runs:invoke",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "content": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "content"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Agent Thread Stream.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "content": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/agent-thread/stream",
              "body": {
                "content": "example"
              }
            },
            "effects": "May change state through POST /api/agent-thread/stream. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/agent-thread/stream",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "threads.get",
          "title": "Threads Get",
          "description": "Call GET /api/threads/{id}.",
          "method": "GET",
          "path": "/api/threads/{id}",
          "permission": "workspace:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Threads Get.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/threads/00000000-0000-4000-8000-000000000000",
              "body": null
            },
            "effects": "Reads state through GET /api/threads/{id} without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/threads/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "threads.update",
          "title": "Threads Update",
          "description": "Call POST /api/threads/{id}.",
          "method": "POST",
          "path": "/api/threads/{id}",
          "permission": "workspace:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "content": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id",
              "content"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Threads Update.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000",
              "content": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/threads/00000000-0000-4000-8000-000000000000",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000",
                "content": "example"
              }
            },
            "effects": "May change state through POST /api/threads/{id}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/threads/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "threads.stream",
          "title": "Threads Stream",
          "description": "Call POST /api/threads/{id}/stream.",
          "method": "POST",
          "path": "/api/threads/{id}/stream",
          "permission": "runs:invoke",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "content": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id",
              "content"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Threads Stream.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000",
              "content": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/threads/00000000-0000-4000-8000-000000000000/stream",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000",
                "content": "example"
              }
            },
            "effects": "May change state through POST /api/threads/{id}/stream. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/threads/*/stream",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "threads.import_website",
          "title": "Threads Import Website",
          "description": "Call POST /api/threads/{id}/import-website.",
          "method": "POST",
          "path": "/api/threads/{id}/import-website",
          "permission": "knowledge:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "url": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id",
              "url"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Threads Import Website.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000",
              "url": "https://example.com"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/threads/00000000-0000-4000-8000-000000000000/import-website",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000",
                "url": "https://example.com"
              }
            },
            "effects": "May change state through POST /api/threads/{id}/import-website. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/threads/*/import-website",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "threads.reset_onboarding",
          "title": "Threads Reset Onboarding",
          "description": "Call POST /api/threads/{id}/reset-onboarding.",
          "method": "POST",
          "path": "/api/threads/{id}/reset-onboarding",
          "permission": "workspace:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Threads Reset Onboarding.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/threads/00000000-0000-4000-8000-000000000000/reset-onboarding",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000"
              }
            },
            "effects": "May change state through POST /api/threads/{id}/reset-onboarding. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/threads/*/reset-onboarding",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "threads.attachments.list",
          "title": "Threads Attachments List",
          "description": "Call GET /api/threads/{id}/attachments.",
          "method": "GET",
          "path": "/api/threads/{id}/attachments",
          "permission": "workspace:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Threads Attachments List.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/threads/00000000-0000-4000-8000-000000000000/attachments",
              "body": null
            },
            "effects": "Reads state through GET /api/threads/{id}/attachments without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/threads/*/attachments",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "threads.attachments.create",
          "title": "Threads Attachments Create",
          "description": "Call POST /api/threads/{id}/attachments.",
          "method": "POST",
          "path": "/api/threads/{id}/attachments",
          "permission": "workspace:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "contentBase64": {
                "type": "string"
              },
              "contentType": {
                "type": "string"
              },
              "fileName": {
                "type": "string"
              },
              "scope": {
                "type": "string",
                "enum": [
                  "thread",
                  "global"
                ]
              }
            },
            "required": [
              "id",
              "contentBase64",
              "contentType",
              "fileName"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Threads Attachments Create.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "agentContract": {
            "upload": {
              "profile": "inline-base64",
              "contentField": "contentBase64",
              "contentTypeField": "contentType",
              "fileNameField": "fileName",
              "maxBytes": 5242880,
              "acceptedContentTypes": [
                "*/*"
              ]
            }
          },
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000",
              "contentBase64": "example",
              "contentType": "example",
              "fileName": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/threads/00000000-0000-4000-8000-000000000000/attachments",
              "body": {
                "id": "00000000-0000-4000-8000-000000000000",
                "contentBase64": "example",
                "contentType": "example",
                "fileName": "example"
              }
            },
            "effects": "May change state through POST /api/threads/{id}/attachments. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/threads/*/attachments",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "threads.attachments.download",
          "title": "Threads Attachments Download",
          "description": "Call GET /api/threads/{id}/attachments/{attachmentId}/download.",
          "method": "GET",
          "path": "/api/threads/{id}/attachments/{attachmentId}/download",
          "permission": "workspace:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              },
              "attachmentId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id",
              "attachmentId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Threads Attachments Download.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000",
              "attachmentId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/threads/00000000-0000-4000-8000-000000000000/attachments/example/download",
              "body": null
            },
            "effects": "Reads state through GET /api/threads/{id}/attachments/{attachmentId}/download without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/threads/*/attachments/*/download",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "work_feed.list",
          "title": "Work Feed List",
          "description": "Call GET /api/work-feed.",
          "method": "GET",
          "path": "/api/work-feed",
          "permission": "workspace:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Work Feed List.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "limit": 1
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/work-feed",
              "body": null
            },
            "effects": "Reads state through GET /api/work-feed without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/work-feed",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "workflows.get",
          "title": "Workflows Get",
          "description": "Call GET /api/workflows/{id}.",
          "method": "GET",
          "path": "/api/workflows/{id}",
          "permission": "workflows:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Workflows Get.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "id": "00000000-0000-4000-8000-000000000000"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/workflows/00000000-0000-4000-8000-000000000000",
              "body": null
            },
            "effects": "Reads state through GET /api/workflows/{id} without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/workflows/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "workflows.create",
          "toolName": "create_workflow",
          "title": "Workflows Create",
          "description": "Call POST /api/workflows.",
          "method": "POST",
          "path": "/api/workflows",
          "permission": "workflows:write",
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "templateSlug": {
                "type": "string"
              },
              "autoRun": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Workflows Create.",
            "additionalProperties": true
          },
          "readOnly": false,
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "templateSlug": "example",
              "autoRun": true
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/workflows",
              "body": {
                "templateSlug": "example",
                "autoRun": true
              }
            },
            "effects": "May change state through POST /api/workflows. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/workflows",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "workspaces.delete",
          "title": "Delete workspace",
          "description": "Delete an empty, non-default Agent workspace.",
          "method": "DELETE",
          "path": "/api/workspaces/{workspaceId}",
          "permission": "workspace:delete",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "workspaceId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "workspaceId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": true,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "workspaceId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "DELETE",
              "path": "/api/workspaces/example",
              "body": null
            },
            "effects": "May change state through DELETE /api/workspaces/{workspaceId}. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "DELETE /api/workspaces/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "organizations.data.export",
          "title": "Export organization data",
          "description": "Export organization-authored Agent data across D1 and external storage metadata without provider credentials or binary objects.",
          "method": "GET",
          "path": "/api/organizations/{organizationId}/data",
          "permission": "privacy:read",
          "readOnly": true,
          "requiresConfirmation": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "organizationId": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "organizationId"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "organizationId": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/organizations/example/data",
              "body": null
            },
            "effects": "Reads state through GET /api/organizations/{organizationId}/data without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/organizations/*/data",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "organizations.data.erase",
          "title": "Erase organization data",
          "description": "Erase organization-authored Agent data after active work is stopped and literal ERASE confirmation is provided.",
          "method": "DELETE",
          "path": "/api/organizations/{organizationId}/data",
          "permission": "privacy:write",
          "readOnly": false,
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "organizationId": {
                "type": "string",
                "minLength": 1
              },
              "confirmation": {
                "type": "string",
                "const": "ERASE"
              }
            },
            "required": [
              "organizationId",
              "confirmation"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": true,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "organizationId": "example",
              "confirmation": "ERASE"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "DELETE",
              "path": "/api/organizations/example/data",
              "body": null
            },
            "effects": "May change state through DELETE /api/organizations/{organizationId}/data. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "DELETE /api/organizations/*/data",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "workspace.get",
          "toolName": "get_workspace_summary",
          "title": "Workspace Get",
          "description": "Call GET /api/workspace.",
          "method": "GET",
          "path": "/api/workspace",
          "permission": "workspace:read",
          "readOnly": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {},
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "description": "Response returned by Workspace Get.",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {},
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/workspace",
              "body": null
            },
            "effects": "Reads state through GET /api/workspace without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/workspace",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "workspace.profile.update",
          "title": "Update workspace profile",
          "description": "Update the operating profile for the current workspace.",
          "method": "PATCH",
          "path": "/api/workspace/profile",
          "permission": "workspace:write",
          "readOnly": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "profile": {
                "type": "object",
                "properties": {
                  "orgName": {
                    "type": "string",
                    "minLength": 1
                  },
                  "industry": {
                    "type": "string",
                    "minLength": 1
                  },
                  "businessSummary": {
                    "type": "string",
                    "minLength": 1
                  },
                  "targetCustomer": {
                    "type": "string",
                    "minLength": 1
                  },
                  "revenueModel": {
                    "type": "string",
                    "minLength": 1
                  },
                  "primaryGoals": {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "preferredApps": {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "minLength": 1
                    }
                  },
                  "brandVoice": {
                    "type": "string",
                    "minLength": 1
                  },
                  "operatorNotes": {
                    "type": "string"
                  }
                },
                "required": [
                  "orgName",
                  "industry",
                  "businessSummary",
                  "targetCustomer",
                  "revenueModel",
                  "primaryGoals",
                  "preferredApps",
                  "brandVoice"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "profile"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": false,
          "requiresConfirmation": true,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "profile": {
                "orgName": "example",
                "industry": "example",
                "businessSummary": "example",
                "targetCustomer": "example",
                "revenueModel": "example",
                "primaryGoals": [
                  "example"
                ],
                "preferredApps": [
                  "example"
                ],
                "brandVoice": "example"
              }
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "PATCH",
              "path": "/api/workspace/profile",
              "body": {
                "profile": {
                  "orgName": "example",
                  "industry": "example",
                  "businessSummary": "example",
                  "targetCustomer": "example",
                  "revenueModel": "example",
                  "primaryGoals": [
                    "example"
                  ],
                  "preferredApps": [
                    "example"
                  ],
                  "brandVoice": "example"
                }
              }
            },
            "effects": "May change state through PATCH /api/workspace/profile. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "PATCH /api/workspace/profile",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "sdr.leads.ingest",
          "title": "Ingest SDR lead",
          "description": "Create or update campaign-scoped SDR readiness state.",
          "method": "POST",
          "path": "/api/sdr/ingest",
          "permission": "workspace:write",
          "readOnly": false,
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "leadKey": {
                "type": "string",
                "minLength": 1
              },
              "campaignKey": {
                "type": "string",
                "minLength": 1
              },
              "crmCompanyId": {
                "type": "string"
              },
              "crmContactId": {
                "type": "string"
              },
              "organization": {
                "type": "object",
                "properties": {
                  "canonicalName": {
                    "type": "string",
                    "minLength": 1
                  },
                  "domain": {
                    "type": "string"
                  },
                  "website": {
                    "type": "string"
                  },
                  "phone": {
                    "type": "string"
                  },
                  "country": {
                    "type": "string"
                  },
                  "city": {
                    "type": "string"
                  },
                  "address": {
                    "type": "string"
                  },
                  "linkedinUrl": {
                    "type": "string"
                  },
                  "industry": {
                    "type": "string"
                  },
                  "size": {
                    "type": "string"
                  }
                },
                "required": [
                  "canonicalName"
                ],
                "additionalProperties": false
              },
              "contacts": {
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "fullName": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "email": {
                      "type": "string"
                    },
                    "phone": {
                      "type": "string"
                    },
                    "whatsapp": {
                      "type": "string"
                    },
                    "linkedinUrl": {
                      "type": "string"
                    },
                    "externalProfileUrl": {
                      "type": "string"
                    },
                    "sourceConfidence": {
                      "type": "number"
                    },
                    "isPrimary": {
                      "type": "boolean"
                    }
                  },
                  "additionalProperties": false
                }
              },
              "source": {
                "type": "object",
                "properties": {
                  "method": {
                    "type": "string",
                    "minLength": 1
                  },
                  "provider": {
                    "type": "string",
                    "minLength": 1
                  },
                  "url": {
                    "type": "string"
                  },
                  "query": {
                    "type": "string"
                  },
                  "market": {
                    "type": "string"
                  },
                  "discoveredAt": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  }
                },
                "required": [
                  "method",
                  "provider"
                ],
                "additionalProperties": false
              },
              "enrichment": {
                "type": "object",
                "properties": {
                  "organizationFacts": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "minLength": 1
                        },
                        "value": {},
                        "sourceUrl": {
                          "type": "string"
                        },
                        "confidence": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "type",
                        "value"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "contactFacts": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "minLength": 1
                        },
                        "value": {},
                        "sourceUrl": {
                          "type": "string"
                        },
                        "confidence": {
                          "type": "number"
                        }
                      },
                      "required": [
                        "type",
                        "value"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "additionalProperties": false
              },
              "proposedScores": {
                "type": "object",
                "properties": {
                  "icpFitScore": {
                    "type": "number"
                  },
                  "contactabilityScore": {
                    "type": "number"
                  },
                  "sourceConfidenceScore": {
                    "type": "number"
                  },
                  "namedContactScore": {
                    "type": "number"
                  },
                  "overallOutboundScore": {
                    "type": "number"
                  }
                },
                "additionalProperties": false
              },
              "qualityGate": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "minLength": 1
                  },
                  "reason": {
                    "type": "string"
                  }
                },
                "required": [
                  "status"
                ],
                "additionalProperties": false
              },
              "controls": {
                "type": "object",
                "properties": {
                  "manualState": {
                    "type": "string",
                    "enum": [
                      "active",
                      "paused",
                      "stopped"
                    ]
                  }
                },
                "additionalProperties": false
              },
              "lifecycle": {
                "type": "object",
                "properties": {
                  "replyReceivedAt": {
                    "anyOf": [
                      {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "lastOutboundAt": {
                    "anyOf": [
                      {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "nextActionAt": {
                    "anyOf": [
                      {
                        "anyOf": [
                          {
                            "type": "string"
                          },
                          {
                            "type": "number"
                          }
                        ]
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false
              }
            },
            "required": [
              "leadKey",
              "campaignKey",
              "organization",
              "contacts",
              "source",
              "enrichment",
              "proposedScores",
              "qualityGate"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "leadKey": "example",
              "campaignKey": "example",
              "organization": {
                "canonicalName": "example"
              },
              "contacts": [
                {
                  "fullName": "example",
                  "title": "example",
                  "email": "user@example.com"
                }
              ],
              "source": {
                "method": "example",
                "provider": "example"
              },
              "enrichment": {
                "organizationFacts": [
                  {
                    "type": "example",
                    "value": "example"
                  }
                ],
                "contactFacts": [
                  {
                    "type": "example",
                    "value": "example"
                  }
                ]
              },
              "proposedScores": {
                "icpFitScore": 1,
                "contactabilityScore": 1,
                "sourceConfidenceScore": 1
              },
              "qualityGate": {
                "status": "example"
              }
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/sdr/ingest",
              "body": {
                "leadKey": "example",
                "campaignKey": "example",
                "organization": {
                  "canonicalName": "example"
                },
                "contacts": [
                  {
                    "fullName": "example",
                    "title": "example",
                    "email": "user@example.com"
                  }
                ],
                "source": {
                  "method": "example",
                  "provider": "example"
                },
                "enrichment": {
                  "organizationFacts": [
                    {
                      "type": "example",
                      "value": "example"
                    }
                  ],
                  "contactFacts": [
                    {
                      "type": "example",
                      "value": "example"
                    }
                  ]
                },
                "proposedScores": {
                  "icpFitScore": 1,
                  "contactabilityScore": 1,
                  "sourceConfidenceScore": 1
                },
                "qualityGate": {
                  "status": "example"
                }
              }
            },
            "effects": "May change state through POST /api/sdr/ingest. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/sdr/ingest",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "sdr.leads.outbound_ready",
          "title": "List outbound-ready SDR leads",
          "description": "List leads that currently pass campaign, evidence, contactability, and suppression gates.",
          "method": "GET",
          "path": "/api/sdr/outbound-ready",
          "permission": "workspace:read",
          "readOnly": true,
          "requiresConfirmation": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "campaign": {
                "type": "string",
                "minLength": 1
              },
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 250
              }
            },
            "required": [
              "campaign"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "campaign": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/sdr/outbound-ready",
              "body": null
            },
            "effects": "Reads state through GET /api/sdr/outbound-ready without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/sdr/outbound-ready",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "sdr.leads.get",
          "title": "Get SDR lead",
          "description": "Get one campaign-scoped SDR lead and its current readiness state.",
          "method": "GET",
          "path": "/api/sdr/leads/{leadKey}",
          "permission": "workspace:read",
          "readOnly": true,
          "requiresConfirmation": false,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "leadKey": {
                "type": "string",
                "minLength": 1
              },
              "campaign": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "leadKey",
              "campaign"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "auto",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "leadKey": "example",
              "campaign": "example"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --json"
            ],
            "http_example": {
              "method": "GET",
              "path": "/api/sdr/leads/example",
              "body": null
            },
            "effects": "Reads state through GET /api/sdr/leads/{leadKey} without a declared mutation.",
            "verification": [
              "Check the structured action result and pagination or resource identifiers before using it downstream."
            ],
            "recovery": [
              "Correct identity, resource context, permission, or input validation failures, then retry the read."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "GET /api/sdr/leads/*",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        },
        {
          "name": "sdr.leads.events.create",
          "title": "Record SDR lead event",
          "description": "Record outbound, reply, pause, stop, or resume state for an SDR lead.",
          "method": "POST",
          "path": "/api/sdr/leads/{leadKey}/events",
          "permission": "workspace:write",
          "readOnly": false,
          "requiresConfirmation": true,
          "inputSchema": {
            "$schema": "https://json-schema.org/draft/2020-12/schema",
            "type": "object",
            "properties": {
              "leadKey": {
                "type": "string",
                "minLength": 1
              },
              "campaignKey": {
                "type": "string",
                "minLength": 1
              },
              "eventType": {
                "type": "string",
                "enum": [
                  "outbound_sent",
                  "reply_received",
                  "paused",
                  "stopped",
                  "resumed"
                ]
              },
              "channel": {
                "type": "string"
              },
              "occurredAt": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "nextActionAt": {
                "anyOf": [
                  {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "payload": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              }
            },
            "required": [
              "leadKey",
              "campaignKey",
              "eventType"
            ],
            "additionalProperties": false
          },
          "target": "api",
          "outputSchema": {
            "type": "object",
            "additionalProperties": true
          },
          "destructive": false,
          "agentAccess": "confirm",
          "authorizationMode": "static",
          "documentation": {
            "example_input": {
              "leadKey": "example",
              "campaignKey": "example",
              "eventType": "outbound_sent"
            },
            "cli_example": [
              "topolo actions --service topolo-agent --json",
              "topolo actions get <action-id> --json",
              "topolo actions validate <action-id> --data @payload.json --json",
              "topolo actions plan <action-id> --data @payload.json --json",
              "topolo actions call <action-id> --data @payload.json --confirm --json"
            ],
            "http_example": {
              "method": "POST",
              "path": "/api/sdr/leads/example/events",
              "body": {
                "leadKey": "example",
                "campaignKey": "example",
                "eventType": "outbound_sent"
              }
            },
            "effects": "May change state through POST /api/sdr/leads/{leadKey}/events. Inspect the plan and honor the published confirmation policy.",
            "verification": [
              "Check the structured action result.",
              "Read the affected resource back through the corresponding get or list action."
            ],
            "recovery": [
              "Do not retry an ambiguous mutation until a read confirms whether it applied.",
              "Use a published inverse, update, archive, or delete action only after inspecting its contract."
            ],
            "docs_url": null,
            "resource": null,
            "next_action_ids": [],
            "rollback_action_id": null
          },
          "implementation": {
            "status": "implemented",
            "route_key": "POST /api/sdr/leads/*/events",
            "evidence": "Matched to a served route extracted from canonical staging source."
          }
        }
      ],
      "action_coverage": {
        "status": "ok",
        "served_routes": 75,
        "matched_actions": 64,
        "declared_unserved_actions": [],
        "coverage_excluded_actions": [],
        "uncatalogued_routes": [],
        "ignored_routes": 11,
        "configured_exclusions": 5,
        "configuration_findings": [],
        "notes": []
      },
      "runtime_contract_audit": {
        "status": "verified",
        "actions": 65,
        "contracts": 65,
        "contract_module": "topolo.action-contracts.mjs",
        "validator_sources": [
          "apps/api/index.ts"
        ],
        "authorization_sources": [
          "apps/api/index.ts"
        ],
        "findings": []
      }
    }
  ],
  "mobile_contracts": [
    {
      "source_path": "apps/TopoloAgent/topolo.mobile-experience.json",
      "contract": {
        "version": "2026-06-29",
        "status": "approved",
        "mode": "native_capability",
        "appId": "app_topolo_agent",
        "localizationNamespace": "agent",
        "permissions": [
          "agents:read",
          "workflows:read",
          "reports:read",
          "workspace:read"
        ],
        "offlinePolicy": "read_through_cache",
        "fallbackPath": "/agents",
        "auth": {
          "audience": "topolo-agent",
          "scopes": [
            "agents:read",
            "workflows:read",
            "reports:read",
            "workspace:read"
          ]
        },
        "routes": [
          {
            "path": "/agents",
            "apiPath": "/api/agents",
            "title": "Agents",
            "titleKey": "agent.mobile.routes.agents.title",
            "template": "record.list",
            "dataSource": "agent.agents.list",
            "detailRoute": "/agents/:id"
          },
          {
            "path": "/agents/:id",
            "apiPath": "/api/agents/:id",
            "title": "Agent",
            "titleKey": "agent.mobile.routes.agentDetail.title",
            "template": "record.detail",
            "dataSource": "agent.agents.detail"
          },
          {
            "path": "/workflows",
            "apiPath": "/api/workflows",
            "title": "Workflows",
            "titleKey": "agent.mobile.routes.workflows.title",
            "template": "record.list",
            "dataSource": "agent.workflows.list",
            "detailRoute": "/workflows/:id"
          },
          {
            "path": "/workflows/:id",
            "apiPath": "/api/workflows/:id",
            "title": "Workflow",
            "titleKey": "agent.mobile.routes.workflowDetail.title",
            "template": "record.detail",
            "dataSource": "agent.workflows.detail"
          },
          {
            "path": "/approvals",
            "apiPath": "/api/approvals",
            "title": "Approvals",
            "titleKey": "agent.mobile.routes.approvals.title",
            "template": "record.list",
            "dataSource": "agent.approvals.list",
            "detailRoute": "/approvals/:id"
          },
          {
            "path": "/approvals/:id",
            "apiPath": "/api/approvals/:id",
            "title": "Approval",
            "titleKey": "agent.mobile.routes.approvals.title",
            "template": "record.detail",
            "dataSource": "agent.approvals.detail"
          },
          {
            "path": "/threads",
            "apiPath": "/api/threads",
            "title": "Threads",
            "titleKey": "agent.nav.threads",
            "template": "record.list",
            "dataSource": "agent.threads.list",
            "detailRoute": "/threads/:id"
          },
          {
            "path": "/threads/:id",
            "apiPath": "/api/threads/:id",
            "title": "Thread",
            "titleKey": "agent.mobile.routes.threadDetail.title",
            "template": "record.detail",
            "dataSource": "agent.threads.detail"
          }
        ]
      }
    }
  ],
  "package_manifests": [],
  "deployment_configs": [],
  "source_signals": {
    "api_routes": [
      {
        "method": "ALL",
        "path": "/health",
        "source_path": "apps/TopoloAgent/apps/api/index.ts"
      },
      {
        "method": "ALL",
        "path": "/api/health",
        "source_path": "apps/TopoloAgent/apps/api/index.ts"
      },
      {
        "method": "ALL",
        "path": "/api/app-identity",
        "source_path": "apps/TopoloAgent/apps/api/index.ts"
      },
      {
        "method": "GET",
        "path": "/api/public/assistant-profile",
        "source_path": "apps/TopoloAgent/apps/api/index.ts"
      },
      {
        "method": "ALL",
        "path": "/api/public/assistant-profile",
        "source_path": "apps/TopoloAgent/apps/api/index.ts"
      },
      {
        "method": "POST",
        "path": "/api/s2s/agent-session/invoke",
        "source_path": "apps/TopoloAgent/apps/api/index.ts"
      },
      {
        "method": "ALL",
        "path": "/api/s2s/agent-session/invoke",
        "source_path": "apps/TopoloAgent/apps/api/index.ts"
      },
      {
        "method": "POST",
        "path": "/api/public/chat",
        "source_path": "apps/TopoloAgent/apps/api/index.ts"
      },
      {
        "method": "ALL",
        "path": "/api/public/chat",
        "source_path": "apps/TopoloAgent/apps/api/index.ts"
      },
      {
        "method": "GET",
        "path": "/api/widget",
        "source_path": "apps/TopoloAgent/apps/api/index.ts"
      },
      {
        "method": "ALL",
        "path": "/api/widget",
        "source_path": "apps/TopoloAgent/apps/api/index.ts"
      },
      {
        "method": "GET",
        "path": "/api/agent-session/:threadId",
        "source_path": "apps/TopoloAgent/apps/api/index.ts"
      },
      {
        "method": "POST",
        "path": "/api/agent-session/:threadId",
        "source_path": "apps/TopoloAgent/apps/api/index.ts"
      },
      {
        "method": "ALL",
        "path": "/api/agent-session/:threadId",
        "source_path": "apps/TopoloAgent/apps/api/index.ts"
      }
    ],
    "ui_routes": [
      {
        "path": "/today",
        "source_path": "apps/TopoloAgent/apps/web/src/App.tsx"
      },
      {
        "path": "/copilot",
        "source_path": "apps/TopoloAgent/apps/web/src/App.tsx"
      },
      {
        "path": "/threads",
        "source_path": "apps/TopoloAgent/apps/web/src/App.tsx"
      },
      {
        "path": "/work",
        "source_path": "apps/TopoloAgent/apps/web/src/App.tsx"
      },
      {
        "path": "/inbox",
        "source_path": "apps/TopoloAgent/apps/web/src/App.tsx"
      },
      {
        "path": "/work-feed",
        "source_path": "apps/TopoloAgent/apps/web/src/App.tsx"
      },
      {
        "path": "/reports",
        "source_path": "apps/TopoloAgent/apps/web/src/App.tsx"
      },
      {
        "path": "/artifacts",
        "source_path": "apps/TopoloAgent/apps/web/src/App.tsx"
      },
      {
        "path": "/runs",
        "source_path": "apps/TopoloAgent/apps/web/src/App.tsx"
      },
      {
        "path": "/people",
        "source_path": "apps/TopoloAgent/apps/web/src/App.tsx"
      },
      {
        "path": "/personas",
        "source_path": "apps/TopoloAgent/apps/web/src/App.tsx"
      },
      {
        "path": "/person-profiles",
        "source_path": "apps/TopoloAgent/apps/web/src/App.tsx"
      },
      {
        "path": "/memory",
        "source_path": "apps/TopoloAgent/apps/web/src/App.tsx"
      },
      {
        "path": "/settings",
        "source_path": "apps/TopoloAgent/apps/web/src/App.tsx"
      },
      {
        "path": "/settings/:section",
        "source_path": "apps/TopoloAgent/apps/web/src/App.tsx"
      },
      {
        "path": "/getting-started",
        "source_path": "apps/TopoloAgent/apps/web/src/App.tsx"
      }
    ],
    "test_cases": [],
    "database_tables": []
  },
  "documentation": {
    "declared_paths": [
      "internal/apps/agent",
      "applications/agent"
    ],
    "present_paths": [
      "internal/apps/agent",
      "applications/agent"
    ],
    "missing_paths": [],
    "human_reference": "/systems/topolo-agent",
    "machine_reference": "/machine/systems/topolo-agent.json",
    "action_examples": 65,
    "action_schemas": 65
  },
  "source_findings": []
}