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": []
}