{ "components": { "schemas": { "A2UIActionPayload": { "additionalProperties": false, "description": "Validated A2UI action payload from the frontend.", "properties": { "context": { "additionalProperties": true, "title": "Context", "type": "object" }, "name": { "maxLength": 128, "title": "Name", "type": "string" }, "source_component_id": { "default": "", "maxLength": 128, "title": "Source Component Id", "type": "string" }, "surface_id": { "maxLength": 64, "title": "Surface Id", "type": "string" } }, "required": [ "name", "surface_id" ], "title": "A2UIActionPayload", "type": "object" }, "APIKeyCreateRequest": { "properties": { "agent_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "Bind the key to one agent of this workspace: it then reaches only that agent over A2A, nothing else. The key to hand to a caller outside the workspace.", "title": "Agent Id" }, "expires_in_days": { "anyOf": [ { "maximum": 3650.0, "minimum": 1.0, "type": "integer" }, { "type": "null" } ], "description": "Optional expiry in days (omit for non-expiring)", "title": "Expires In Days" }, "name": { "description": "Human-friendly label for this API key", "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" } }, "required": [ "name" ], "title": "APIKeyCreateRequest", "type": "object" }, "APIKeyCreateResponse": { "description": "Extends APIKeyResponse with the raw token \u2014 shown ONCE at creation.", "properties": { "access_count": { "title": "Access Count", "type": "integer" }, "agent_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "The one agent the key reaches over A2A; None for a workspace key", "title": "Agent Id" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "expires_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Expires At" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "is_active": { "title": "Is Active", "type": "boolean" }, "last_accessed_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Last Accessed At" }, "name": { "title": "Name", "type": "string" }, "token": { "description": "Raw token value \u2014 copy it now, it won't be shown again", "title": "Token", "type": "string" }, "token_prefix": { "title": "Token Prefix", "type": "string" } }, "required": [ "id", "name", "token_prefix", "is_active", "expires_at", "access_count", "last_accessed_at", "created_at", "token" ], "title": "APIKeyCreateResponse", "type": "object" }, "APIKeyResponse": { "properties": { "access_count": { "title": "Access Count", "type": "integer" }, "agent_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "The one agent the key reaches over A2A; None for a workspace key", "title": "Agent Id" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "expires_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Expires At" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "is_active": { "title": "Is Active", "type": "boolean" }, "last_accessed_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Last Accessed At" }, "name": { "title": "Name", "type": "string" }, "token_prefix": { "title": "Token Prefix", "type": "string" } }, "required": [ "id", "name", "token_prefix", "is_active", "expires_at", "access_count", "last_accessed_at", "created_at" ], "title": "APIKeyResponse", "type": "object" }, "AcceptInvitationBody": { "properties": { "token": { "title": "Token", "type": "string" } }, "required": [ "token" ], "title": "AcceptInvitationBody", "type": "object" }, "AcceptInvitationResponse": { "properties": { "invitation_id": { "format": "uuid", "title": "Invitation Id", "type": "string" }, "user_id": { "title": "User Id", "type": "string" }, "workspace_id": { "title": "Workspace Id", "type": "string" } }, "required": [ "workspace_id", "user_id", "invitation_id" ], "title": "AcceptInvitationResponse", "type": "object" }, "AddSkillRequest": { "properties": { "skill_id": { "format": "uuid", "title": "Skill Id", "type": "string" } }, "required": [ "skill_id" ], "title": "AddSkillRequest", "type": "object" }, "AgentCardLookup": { "properties": { "url": { "description": "The agent's address, or the URL of its agent card", "title": "Url", "type": "string" } }, "required": [ "url" ], "title": "AgentCardLookup", "type": "object" }, "AgentCardSkill": { "properties": { "description": { "title": "Description", "type": "string" }, "name": { "title": "Name", "type": "string" } }, "required": [ "name", "description" ], "title": "AgentCardSkill", "type": "object" }, "AgentCardSummary": { "properties": { "address": { "description": "The agent's address, the form a delegate stores", "title": "Address", "type": "string" }, "description": { "title": "Description", "type": "string" }, "name": { "title": "Name", "type": "string" }, "skills": { "items": { "$ref": "#/components/schemas/AgentCardSkill" }, "title": "Skills", "type": "array" } }, "required": [ "address", "name", "description", "skills" ], "title": "AgentCardSummary", "type": "object" }, "AgentCreateRequest": { "additionalProperties": false, "description": "``AgentCreate`` plus the triggers created with the agent.", "properties": { "a2ui_enabled": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "Expose this agent over the A2UI protocol.", "title": "A2Ui Enabled" }, "agent_type": { "default": "stateless", "deprecated": true, "description": "DEPRECATED \u2014 stored and echoed back, but the runtime never reads it, so every agent behaves as 'stateless' regardless of this value. Conversation history does not currently survive across runs. Do not branch on this field.", "enum": [ "stateless", "stateful" ], "title": "Agent Type", "type": "string" }, "answer_check": { "anyOf": [ { "$ref": "#/components/schemas/AnswerCheckPolicy" }, { "type": "null" } ], "description": "Check the agent's final answer for leaks (other scripts, tool names, codes, JSON, stack traces) and have the model rewrite it once before the person sees it. Null leaves it off. A governance safety rule that sets answer_check overrides this setting." }, "description": { "default": "", "description": "Short summary of what the agent does.", "maxLength": 1000, "title": "Description", "type": "string" }, "instruction": { "default": "", "description": "System prompt / behavioural instructions for the agent.", "maxLength": 20000, "title": "Instruction", "type": "string" }, "model_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "UUID of a model instance in this workspace (see GET /v1/model-instances). Null means no model is bound yet and the agent cannot be run.", "title": "Model Id" }, "name": { "description": "Human-readable agent name (unique per workspace).", "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" }, "planning": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "Enable explicit planning step before execution.", "title": "Planning" }, "skill_ids": { "anyOf": [ { "items": { "format": "uuid", "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "UUIDs of skills to attach to the agent.", "title": "Skill Ids" }, "tools": { "description": "Tools attached to the agent (code/mcp/agent/openapi). Required: pass [] for an agent with no tools. Built-in toolsets and their groups are listed by GET /v1/agents/tools.", "items": { "discriminator": { "mapping": { "agent": "#/components/schemas/AgentToolConfig", "code": "#/components/schemas/CodeToolConfig", "mcp": "#/components/schemas/McpToolConfig-Input", "openapi": "#/components/schemas/OpenApiToolConfig" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/components/schemas/CodeToolConfig" }, { "$ref": "#/components/schemas/McpToolConfig-Input" }, { "$ref": "#/components/schemas/AgentToolConfig" }, { "$ref": "#/components/schemas/OpenApiToolConfig" } ] }, "title": "Tools", "type": "array" }, "triggers": { "description": "Triggers that start the agent: cron schedules, or stream triggers on a stream whose sources are webhooks and polled providers. Created with the agent; if any cannot be created, neither the agent nor any trigger is kept.", "items": { "$ref": "#/components/schemas/TriggerSpec" }, "title": "Triggers", "type": "array" } }, "required": [ "name", "tools" ], "title": "AgentCreateRequest", "type": "object" }, "AgentOverviewResponse": { "properties": { "cost_mtd_usd": { "title": "Cost Mtd Usd", "type": "string" }, "cost_today_usd": { "title": "Cost Today Usd", "type": "string" }, "daily_spend": { "items": { "$ref": "#/components/schemas/DailySpendPoint" }, "title": "Daily Spend", "type": "array" }, "daily_tasks": { "items": { "$ref": "#/components/schemas/DailyTaskCounts" }, "title": "Daily Tasks", "type": "array" }, "last_activity_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Last Activity At" }, "tasks_done_today": { "title": "Tasks Done Today", "type": "integer" }, "tasks_failed_today": { "title": "Tasks Failed Today", "type": "integer" }, "upcoming": { "items": { "$ref": "#/components/schemas/UpcomingItem" }, "title": "Upcoming", "type": "array" } }, "required": [ "cost_today_usd", "cost_mtd_usd", "tasks_done_today", "tasks_failed_today", "last_activity_at", "daily_spend", "daily_tasks", "upcoming" ], "title": "AgentOverviewResponse", "type": "object" }, "AgentPresetResponse": { "description": "A starting point for a new agent: applying it fills the create form.", "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "id": { "title": "Id", "type": "string" }, "instruction": { "default": "", "title": "Instruction", "type": "string" }, "name": { "title": "Name", "type": "string" }, "preferred_models": { "items": { "type": "string" }, "title": "Preferred Models", "type": "array" }, "skills": { "items": { "$ref": "#/components/schemas/PresetSkillResponse" }, "title": "Skills", "type": "array" }, "tools": { "items": { "discriminator": { "mapping": { "agent": "#/components/schemas/AgentToolConfig", "code": "#/components/schemas/CodeToolConfig", "mcp": "#/components/schemas/McpToolConfig-Output", "openapi": "#/components/schemas/OpenApiToolConfig" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/components/schemas/CodeToolConfig" }, { "$ref": "#/components/schemas/McpToolConfig-Output" }, { "$ref": "#/components/schemas/AgentToolConfig" }, { "$ref": "#/components/schemas/OpenApiToolConfig" } ] }, "title": "Tools", "type": "array" }, "triggers": { "items": { "$ref": "#/components/schemas/TriggerSpec" }, "title": "Triggers", "type": "array" }, "unavailable_skills": { "items": { "type": "string" }, "title": "Unavailable Skills", "type": "array" } }, "required": [ "id", "name", "tools", "skills", "triggers" ], "title": "AgentPresetResponse", "type": "object" }, "AgentResponse": { "properties": { "a2a_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "A2A Url" }, "a2ui_enabled": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "A2Ui Enabled" }, "agent_type": { "default": "stateless", "title": "Agent Type", "type": "string" }, "answer_check": { "anyOf": [ { "$ref": "#/components/schemas/AnswerCheckPolicy" }, { "type": "null" } ] }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "instruction": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Instruction" }, "is_catalog": { "default": false, "title": "Is Catalog", "type": "boolean" }, "model_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Id" }, "name": { "title": "Name", "type": "string" }, "planning": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Planning" }, "registry_item_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Registry Item Id" }, "skills": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Skills" }, "slug": { "title": "Slug", "type": "string" }, "status": { "title": "Status", "type": "string" }, "tools": { "anyOf": [ { "items": { "discriminator": { "mapping": { "agent": "#/components/schemas/AgentToolConfig", "code": "#/components/schemas/CodeToolConfig", "mcp": "#/components/schemas/McpToolConfig-Output", "openapi": "#/components/schemas/OpenApiToolConfig" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/components/schemas/CodeToolConfig" }, { "$ref": "#/components/schemas/McpToolConfig-Output" }, { "$ref": "#/components/schemas/AgentToolConfig" }, { "$ref": "#/components/schemas/OpenApiToolConfig" } ] }, "type": "array" }, { "type": "null" } ], "title": "Tools" }, "update_available": { "default": false, "title": "Update Available", "type": "boolean" } }, "required": [ "id", "slug", "name", "status" ], "title": "AgentResponse", "type": "object" }, "AgentToolConfig": { "properties": { "name": { "title": "Name", "type": "string" }, "settings": { "anyOf": [ { "$ref": "#/components/schemas/AgentToolSettings" }, { "type": "null" } ] }, "type": { "const": "agent", "default": "agent", "title": "Type", "type": "string" } }, "required": [ "name" ], "title": "AgentToolConfig", "type": "object" }, "AgentToolSettings": { "description": "Settings for an agent-to-agent (delegation) tool.\n\n``a2a_url`` selects the *remote* transport binding; absent \u2192 same-platform\ndirect delegation. Lives here only \u2014 A2A is a per-edge binding, not a\nproperty every tool type carries.", "properties": { "a2a_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "A2A Url" }, "auth_secret_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Workspace secret holding the bearer token sent to ``a2a_url``.", "title": "Auth Secret Name" }, "description_override": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description Override" }, "requires_user_confirmation": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Requires User Confirmation" } }, "title": "AgentToolSettings", "type": "object" }, "AgentUpdate": { "additionalProperties": false, "description": "Patch payload for an agent. All fields optional \u2014 unset = unchanged.", "properties": { "a2ui_enabled": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "A2Ui Enabled" }, "agent_type": { "enum": [ "stateless", "stateful" ], "title": "Agent Type", "type": "string" }, "answer_check": { "anyOf": [ { "$ref": "#/components/schemas/AnswerCheckPolicy" }, { "type": "null" } ] }, "capabilities": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Capabilities" }, "description": { "anyOf": [ { "maxLength": 1000, "type": "string" }, { "type": "null" } ], "title": "Description" }, "instruction": { "anyOf": [ { "maxLength": 20000, "type": "string" }, { "type": "null" } ], "title": "Instruction" }, "model_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Id" }, "name": { "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" }, "planning": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Planning" }, "skill_ids": { "anyOf": [ { "items": { "format": "uuid", "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Skill Ids" }, "tools": { "anyOf": [ { "items": { "discriminator": { "mapping": { "agent": "#/components/schemas/AgentToolConfig", "code": "#/components/schemas/CodeToolConfig", "mcp": "#/components/schemas/McpToolConfig-Input", "openapi": "#/components/schemas/OpenApiToolConfig" }, "propertyName": "type" }, "oneOf": [ { "$ref": "#/components/schemas/CodeToolConfig" }, { "$ref": "#/components/schemas/McpToolConfig-Input" }, { "$ref": "#/components/schemas/AgentToolConfig" }, { "$ref": "#/components/schemas/OpenApiToolConfig" } ] }, "type": "array" }, { "type": "null" } ], "title": "Tools" } }, "title": "AgentUpdate", "type": "object" }, "AnalyzeRequest": { "description": "Analyze a bundle into an import preview.\n\nProvide exactly one of ``source`` (pasted text) or ``source_url`` (a URL the\nserver fetches behind the SSRF guard). ``source_url`` is what a landing-page\ndeep-link (`/bundles/import?src=`) uses for one-click installs.", "properties": { "source": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Raw bundle source text (YAML or JSON).", "title": "Source" }, "source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "URL to fetch raw bundle source from (YAML or JSON).", "title": "Source Url" } }, "title": "AnalyzeRequest", "type": "object" }, "AnswerCheckPolicy": { "additionalProperties": false, "description": "Check an agent's final answer and have the model rewrite it once if it leaks.\n\nLeaks: CJK characters, tool names and snake_case codes, stack traces, raw\nJSON, and (for ``language: ru``) lowercase English words in a Russian answer.", "properties": { "enabled": { "default": true, "title": "Enabled", "type": "boolean" }, "language": { "anyOf": [ { "maxLength": 8, "minLength": 2, "type": "string" }, { "type": "null" } ], "title": "Language" }, "rewrite_instruction": { "anyOf": [ { "maxLength": 4000, "minLength": 1, "type": "string" }, { "type": "null" } ], "title": "Rewrite Instruction" } }, "title": "AnswerCheckPolicy", "type": "object" }, "ApprovalDecision": { "description": "One answered approval request, as the audit trail recorded the answer.", "properties": { "agent_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Agent Id" }, "agent_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Name" }, "approved": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Approved" }, "comment": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Comment" }, "decided_at": { "format": "date-time", "title": "Decided At", "type": "string" }, "decided_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Decided By" }, "escalation_id": { "title": "Escalation Id", "type": "string" }, "task_description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Task Description" }, "task_id": { "format": "uuid", "title": "Task Id", "type": "string" }, "tool_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tool Name" } }, "required": [ "escalation_id", "task_id", "decided_at" ], "title": "ApprovalDecision", "type": "object" }, "ApprovalDecisionsResponse": { "properties": { "items": { "items": { "$ref": "#/components/schemas/ApprovalDecision" }, "title": "Items", "type": "array" }, "page": { "title": "Page", "type": "integer" }, "page_size": { "title": "Page Size", "type": "integer" }, "total": { "title": "Total", "type": "integer" } }, "required": [ "items", "total", "page", "page_size" ], "title": "ApprovalDecisionsResponse", "type": "object" }, "ApprovalPolicy": { "additionalProperties": false, "description": "Human approval and escalation requirements.", "properties": { "approvers": { "items": { "type": "string" }, "title": "Approvers", "type": "array" }, "approvers_by_tool": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "title": "Approvers By Tool", "type": "object" }, "escalation_rules": { "items": { "type": "string" }, "title": "Escalation Rules", "type": "array" }, "requires_human_approval": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Requires Human Approval" } }, "title": "ApprovalPolicy", "type": "object" }, "ArchivedFileResponse": { "properties": { "archived_path": { "title": "Archived Path", "type": "string" }, "path": { "title": "Path", "type": "string" } }, "required": [ "path", "archived_path" ], "title": "ArchivedFileResponse", "type": "object" }, "ArtifactEventResponse": { "properties": { "action": { "title": "Action", "type": "string" }, "actor_type": { "title": "Actor Type", "type": "string" }, "agent_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Id" }, "created_at": { "title": "Created At", "type": "string" }, "created_by": { "title": "Created By", "type": "string" }, "task_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Task Id" } }, "required": [ "action", "actor_type", "created_by", "created_at" ], "title": "ArtifactEventResponse", "type": "object" }, "ArtifactHistoryResponse": { "properties": { "events": { "items": { "$ref": "#/components/schemas/ArtifactEventResponse" }, "title": "Events", "type": "array" }, "path": { "title": "Path", "type": "string" } }, "required": [ "path", "events" ], "title": "ArtifactHistoryResponse", "type": "object" }, "AssociationBody": { "properties": { "id": { "title": "Id", "type": "string" } }, "required": [ "id" ], "title": "AssociationBody", "type": "object" }, "AuditEventResponse": { "description": "Audit event response schema.", "properties": { "action": { "title": "Action", "type": "string" }, "actor_id": { "title": "Actor Id", "type": "string" }, "actor_type": { "title": "Actor Type", "type": "string" }, "changes": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Changes" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "event_metadata": { "additionalProperties": true, "title": "Event Metadata", "type": "object" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "request_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Request Id" }, "resource_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Resource Id" }, "resource_type": { "title": "Resource Type", "type": "string" }, "source_ip": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Ip" }, "user_agent": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Agent" }, "workspace_id": { "title": "Workspace Id", "type": "string" } }, "required": [ "id", "created_at", "actor_id", "actor_type", "workspace_id", "source_ip", "user_agent", "request_id", "action", "resource_type", "resource_id", "changes", "event_metadata" ], "title": "AuditEventResponse", "type": "object" }, "AuditLogListResponse": { "description": "Paginated audit log response.", "properties": { "events": { "items": { "$ref": "#/components/schemas/AuditEventResponse" }, "title": "Events", "type": "array" }, "next_cursor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Next Cursor" } }, "required": [ "events", "next_cursor" ], "title": "AuditLogListResponse", "type": "object" }, "BlockedTaskBlocker": { "properties": { "agent_id": { "format": "uuid", "title": "Agent Id", "type": "string" }, "agent_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Name" }, "description": { "title": "Description", "type": "string" }, "error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error" }, "occurred_at": { "format": "date-time", "title": "Occurred At", "type": "string" }, "task_id": { "format": "uuid", "title": "Task Id", "type": "string" } }, "required": [ "task_id", "agent_id", "description", "error", "occurred_at" ], "title": "BlockedTaskBlocker", "type": "object" }, "Blockers": { "properties": { "awaiting_continuation": { "items": { "$ref": "#/components/schemas/HitlBlocker" }, "title": "Awaiting Continuation", "type": "array" }, "blocked_24h": { "items": { "$ref": "#/components/schemas/BlockedTaskBlocker" }, "title": "Blocked 24H", "type": "array" }, "failed_24h": { "items": { "$ref": "#/components/schemas/FailedTaskBlocker" }, "title": "Failed 24H", "type": "array" }, "hitl": { "items": { "$ref": "#/components/schemas/HitlBlocker" }, "title": "Hitl", "type": "array" }, "wallet_exhausted": { "items": { "$ref": "#/components/schemas/WalletExhaustedBlocker" }, "title": "Wallet Exhausted", "type": "array" } }, "required": [ "hitl", "awaiting_continuation", "blocked_24h", "wallet_exhausted", "failed_24h" ], "title": "Blockers", "type": "object" }, "Body_upload_skill_v1_skills_upload_post": { "properties": { "file": { "contentMediaType": "application/octet-stream", "description": "ZIP file containing the skill package", "title": "File", "type": "string" } }, "required": [ "file" ], "title": "Body_upload_skill_v1_skills_upload_post", "type": "object" }, "Body_upload_workspace_logo_v1_logo_put": { "properties": { "file": { "contentMediaType": "application/octet-stream", "description": "PNG, JPEG or WebP image, at most 1 MB", "title": "File", "type": "string" } }, "required": [ "file" ], "title": "Body_upload_workspace_logo_v1_logo_put", "type": "object" }, "BudgetPeriod": { "description": "Budget reset period.", "enum": [ "execution", "daily", "monthly" ], "title": "BudgetPeriod", "type": "string" }, "BudgetPolicy-Input": { "additionalProperties": false, "description": "Budget-related ceilings.\n\n``monthly_spend_cap_usd`` caps the whole workspace's spend in a calendar\nmonth; ``agent_monthly_spend_cap_usd`` caps the spend of the run's agent\nalone, summed over all its runs in the month. ``spend_caps`` are the caps\nnarrowed to model or tool spend, a client, a connection or one of its tools,\nper month or per run; every one applies.", "properties": { "agent_monthly_spend_cap_usd": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" } ], "ge": "0" }, { "type": "null" } ], "title": "Agent Monthly Spend Cap Usd" }, "monthly_spend_cap_usd": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" } ], "ge": "0" }, { "type": "null" } ], "title": "Monthly Spend Cap Usd" }, "run_budget_usd": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" } ], "gt": "0" }, { "type": "null" } ], "title": "Run Budget Usd" }, "service_budget_usd": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" } ], "gt": "0" }, { "type": "null" } ], "title": "Service Budget Usd" }, "spend_caps": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ScopedSpendCap-Input" }, "type": "array" }, { "type": "null" } ], "title": "Spend Caps" } }, "title": "BudgetPolicy", "type": "object" }, "BudgetPolicy-Output": { "additionalProperties": false, "description": "Budget-related ceilings.\n\n``monthly_spend_cap_usd`` caps the whole workspace's spend in a calendar\nmonth; ``agent_monthly_spend_cap_usd`` caps the spend of the run's agent\nalone, summed over all its runs in the month. ``spend_caps`` are the caps\nnarrowed to model or tool spend, a client, a connection or one of its tools,\nper month or per run; every one applies.", "properties": { "agent_monthly_spend_cap_usd": { "anyOf": [ { "ge": "0", "type": "string" }, { "type": "null" } ], "title": "Agent Monthly Spend Cap Usd" }, "monthly_spend_cap_usd": { "anyOf": [ { "ge": "0", "type": "string" }, { "type": "null" } ], "title": "Monthly Spend Cap Usd" }, "run_budget_usd": { "anyOf": [ { "gt": "0", "type": "string" }, { "type": "null" } ], "title": "Run Budget Usd" }, "service_budget_usd": { "anyOf": [ { "gt": "0", "type": "string" }, { "type": "null" } ], "title": "Service Budget Usd" }, "spend_caps": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ScopedSpendCap-Output" }, "type": "array" }, { "type": "null" } ], "title": "Spend Caps" } }, "title": "BudgetPolicy", "type": "object" }, "Bundle-Input": { "additionalProperties": false, "description": "The canonical, fully-inlined package object.", "properties": { "agents": { "items": { "$ref": "#/components/schemas/BundleAgent" }, "title": "Agents", "type": "array" }, "automations": { "items": { "$ref": "#/components/schemas/BundleAutomation" }, "title": "Automations", "type": "array" }, "channels": { "items": { "$ref": "#/components/schemas/BundleChannel" }, "title": "Channels", "type": "array" }, "description": { "default": "", "title": "Description", "type": "string" }, "display_name": { "anyOf": [ { "maxLength": 255, "type": "string" }, { "type": "null" } ], "title": "Display Name" }, "mcps": { "items": { "$ref": "#/components/schemas/BundleMcp" }, "title": "Mcps", "type": "array" }, "metadata": { "$ref": "#/components/schemas/BundleMetadata" }, "name": { "description": "Stable package identifier (idempotency key).", "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" }, "policies": { "items": { "$ref": "#/components/schemas/BundlePolicy" }, "title": "Policies", "type": "array" }, "schema_version": { "default": "0.1.0", "title": "Schema Version", "type": "string" }, "setup": { "items": { "$ref": "#/components/schemas/SetupField" }, "title": "Setup", "type": "array" }, "skills": { "items": { "$ref": "#/components/schemas/BundleSkill" }, "title": "Skills", "type": "array" } }, "required": [ "name" ], "title": "Bundle", "type": "object" }, "Bundle-Output": { "additionalProperties": false, "description": "The canonical, fully-inlined package object.", "properties": { "agents": { "items": { "$ref": "#/components/schemas/BundleAgent" }, "title": "Agents", "type": "array" }, "automations": { "items": { "$ref": "#/components/schemas/BundleAutomation" }, "title": "Automations", "type": "array" }, "channels": { "items": { "$ref": "#/components/schemas/BundleChannel" }, "title": "Channels", "type": "array" }, "description": { "default": "", "title": "Description", "type": "string" }, "display_name": { "anyOf": [ { "maxLength": 255, "type": "string" }, { "type": "null" } ], "title": "Display Name" }, "mcps": { "items": { "$ref": "#/components/schemas/BundleMcp" }, "title": "Mcps", "type": "array" }, "metadata": { "$ref": "#/components/schemas/BundleMetadata" }, "name": { "description": "Stable package identifier (idempotency key).", "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" }, "policies": { "items": { "$ref": "#/components/schemas/BundlePolicy" }, "title": "Policies", "type": "array" }, "schema_version": { "default": "0.1.0", "title": "Schema Version", "type": "string" }, "setup": { "items": { "$ref": "#/components/schemas/SetupField" }, "title": "Setup", "type": "array" }, "skills": { "items": { "$ref": "#/components/schemas/BundleSkill" }, "title": "Skills", "type": "array" } }, "required": [ "name" ], "title": "Bundle", "type": "object" }, "BundleAgent": { "additionalProperties": false, "description": "An agent to create for the package.", "properties": { "instruction": { "default": "", "maxLength": 20000, "title": "Instruction", "type": "string" }, "key": { "minLength": 1, "title": "Key", "type": "string" }, "mcps": { "description": "BundleMcp keys to attach as tools.", "items": { "type": "string" }, "title": "Mcps", "type": "array" }, "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" }, "name": { "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" }, "skills": { "description": "BundleSkill keys to attach.", "items": { "type": "string" }, "title": "Skills", "type": "array" }, "toolsets": { "description": "Built-in toolsets to attach, e.g. [\"agentarea/shell\", \"agentarea/files\"].", "items": { "type": "string" }, "title": "Toolsets", "type": "array" } }, "required": [ "key", "name" ], "title": "BundleAgent", "type": "object" }, "BundleAutomation": { "additionalProperties": false, "description": "A scheduled run of one of the package's agents (maps to a CronTrigger).\n\nAutomations are imported disabled by default; the user enables them after\nverifying connections, mirroring the Zapier/Make \"connect then activate\"\nflow.", "properties": { "agent": { "description": "BundleAgent key to invoke.", "minLength": 1, "title": "Agent", "type": "string" }, "cron": { "description": "5- or 6-field cron expression.", "minLength": 1, "title": "Cron", "type": "string" }, "enabled": { "default": false, "title": "Enabled", "type": "boolean" }, "key": { "minLength": 1, "title": "Key", "type": "string" }, "prompt": { "description": "Task query passed to the agent on each run.", "minLength": 1, "title": "Prompt", "type": "string" }, "timezone": { "default": "UTC", "title": "Timezone", "type": "string" }, "type": { "const": "cron", "default": "cron", "title": "Type", "type": "string" } }, "required": [ "key", "cron", "agent", "prompt" ], "title": "BundleAutomation", "type": "object" }, "BundleChannel": { "additionalProperties": false, "description": "An inbound webhook trigger bound to one of the package's agents.\n\nTelegram channels may require a bot token, which enters via ``bindings`` \u2192\n``${setup.x}``; generic webhook triggers need no credential.", "properties": { "agent": { "description": "BundleAgent key that handles inbound messages.", "minLength": 1, "title": "Agent", "type": "string" }, "bindings": { "additionalProperties": { "type": "string" }, "description": "Maps a credential the channel needs to a ${setup.x} reference, e.g. {'bot_token': '${setup.telegram_bot_token}'}.", "title": "Bindings", "type": "object" }, "enabled": { "default": false, "title": "Enabled", "type": "boolean" }, "key": { "minLength": 1, "title": "Key", "type": "string" }, "name": { "description": "Display name for the created channel trigger.", "minLength": 1, "title": "Name", "type": "string" }, "prompt": { "default": "Handle the incoming message: {{ message_text }}", "description": "Task query template used for each inbound message.", "minLength": 1, "title": "Prompt", "type": "string" }, "type": { "default": "telegram", "description": "Webhook provider for the created trigger.", "enum": [ "telegram", "generic" ], "title": "Type", "type": "string" } }, "required": [ "key", "name", "agent" ], "title": "BundleChannel", "type": "object" }, "BundleMcp": { "additionalProperties": false, "description": "An MCP server to provision for the package.", "properties": { "bindings": { "additionalProperties": { "type": "string" }, "description": "Maps an env var / header name the server needs to a ${setup.x} reference, e.g. {'GITHUB_TOKEN': '${setup.github_token}'}.", "title": "Bindings", "type": "object" }, "context_secret": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "URL MCPs only. A ${setup.x} reference to a secret setup field whose value becomes the instance's context_secret: the key AgentArea signs each tool call's context with. Write-only, like a header secret.", "title": "Context Secret" }, "json_spec": { "additionalProperties": true, "description": "Native MCP runtime spec. Must include 'type' (command|docker|url).", "title": "Json Spec", "type": "object" }, "key": { "description": "In-package reference key (agents point at this).", "minLength": 1, "title": "Key", "type": "string" }, "name": { "description": "Instance display name created in the workspace.", "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" } }, "required": [ "key", "name", "json_spec" ], "title": "BundleMcp", "type": "object" }, "BundleMetadata": { "additionalProperties": false, "description": "Marketplace presentation metadata (parity with plugin/app listings).", "properties": { "capabilities": { "description": "e.g. [\"interactive\", \"write\"].", "items": { "type": "string" }, "title": "Capabilities", "type": "array" }, "category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Category" }, "developer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Publisher name.", "title": "Developer" }, "icon": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Icon URL or asset reference.", "title": "Icon" }, "privacy_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Privacy Url" }, "terms_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Terms Url" }, "website": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Website" } }, "title": "BundleMetadata", "type": "object" }, "BundlePolicy": { "additionalProperties": false, "description": "A governance rule the package installs (maps to a PolicyRule).\n\nPortable like everything else: ``subject`` is the literal \"workspace\" or a\nBundleAgent ``key`` (never a DB id); the installer resolves it to a real\nsubject id. ``target``/``effect``/``params`` mirror the unified governance\nrule model, so this is \"our policy format\" \u2014 not a new one.", "properties": { "condition": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Optional CEL condition.", "title": "Condition" }, "effect": { "enum": [ "allow", "deny", "cap", "approval", "safety" ], "title": "Effect", "type": "string" }, "enabled": { "default": true, "title": "Enabled", "type": "boolean" }, "key": { "minLength": 1, "title": "Key", "type": "string" }, "message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Human-readable reason.", "title": "Message" }, "params": { "additionalProperties": true, "description": "Effect-specific params, e.g. {amount_usd, period} for cap.", "title": "Params", "type": "object" }, "priority": { "default": 0, "maximum": 2147483647.0, "minimum": -2147483648.0, "title": "Priority", "type": "integer" }, "subject": { "default": "workspace", "description": "\"workspace\" or a BundleAgent key the rule binds to.", "title": "Subject", "type": "string" }, "target": { "description": "Selector, e.g. \"tool:send_email\", \"spend\", \"content\", \"*\".", "minLength": 1, "title": "Target", "type": "string" } }, "required": [ "key", "target", "effect" ], "title": "BundlePolicy", "type": "object" }, "BundleSkill": { "additionalProperties": false, "description": "A skill to create for the package.", "properties": { "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "SKILL.md markdown for source_type=content.", "title": "Content" }, "key": { "minLength": 1, "title": "Key", "type": "string" }, "name": { "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" }, "source_type": { "default": "content", "enum": [ "content", "github" ], "title": "Source Type", "type": "string" }, "source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Repo URL for source_type=github.", "title": "Source Url" } }, "required": [ "key", "name" ], "title": "BundleSkill", "type": "object" }, "CatalogBrowseResponse": { "description": "One page of a type's catalog plus the context needed to browse it.\n\n``total`` and the facets cover the whole filtered catalog, not the page:\nwithout them a page that happens to contain no visible matches is\nindistinguishable from the end of the catalog, and facet counts drift as\nmore pages load.\n\n``protocols`` is populated for the connections catalog only, where an entry\nis either an MCP server or a plain HTTP API; every other type holds one\nkind of thing and gets an empty list.", "properties": { "categories": { "items": { "$ref": "#/components/schemas/CategoryFacet" }, "title": "Categories", "type": "array" }, "hostings": { "default": [], "items": { "$ref": "#/components/schemas/CategoryFacet" }, "title": "Hostings", "type": "array" }, "items": { "items": { "$ref": "#/components/schemas/RegistryItemResponse" }, "title": "Items", "type": "array" }, "pricings": { "default": [], "items": { "$ref": "#/components/schemas/CategoryFacet" }, "title": "Pricings", "type": "array" }, "protocols": { "items": { "$ref": "#/components/schemas/CategoryFacet" }, "title": "Protocols", "type": "array" }, "total": { "title": "Total", "type": "integer" } }, "required": [ "items", "total", "categories", "protocols" ], "title": "CatalogBrowseResponse", "type": "object" }, "CatalogComputeEstimate": { "description": "What a running instance of an entry hosted on AgentArea reserves, and its hour.\n\n``hourly`` is null where nothing prices compute: the reservation is shown alone.", "properties": { "currency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Currency" }, "hourly": { "anyOf": [ { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" }, { "type": "null" } ], "title": "Hourly" }, "memory_gib": { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "title": "Memory Gib", "type": "string" }, "vcpu": { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "title": "Vcpu", "type": "string" } }, "required": [ "vcpu", "memory_gib", "hourly", "currency" ], "title": "CatalogComputeEstimate", "type": "object" }, "CatalogConnection": { "description": "One existing connection made from a catalog item.", "properties": { "id": { "format": "uuid", "title": "Id", "type": "string" }, "kind": { "enum": [ "mcp", "openapi" ], "title": "Kind", "type": "string" }, "name": { "title": "Name", "type": "string" } }, "required": [ "id", "kind", "name" ], "title": "CatalogConnection", "type": "object" }, "CatalogItemCreate": { "description": "Definition published directly into a platform-managed catalog.", "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "external_id": { "maxLength": 500, "minLength": 1, "title": "External Id", "type": "string" }, "name": { "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" }, "recommendation_rank": { "anyOf": [ { "minimum": 0.0, "type": "integer" }, { "type": "null" } ], "description": "Curation position within this registry; lower comes first. Omit to publish after the registry's existing items.", "title": "Recommendation Rank" }, "spec": { "additionalProperties": true, "title": "Spec", "type": "object" }, "tags": { "items": { "type": "string" }, "title": "Tags", "type": "array" }, "version": { "anyOf": [ { "maxLength": 100, "type": "string" }, { "type": "null" } ], "title": "Version" } }, "required": [ "external_id", "name" ], "title": "CatalogItemCreate", "type": "object" }, "CatalogItemPricingResponse": { "description": "Whether using a connection costs money through AgentArea (wiki ADR-0038).\n\n``kind`` \"paid\": the platform's key may pay and the workspace is billed;\n``prices`` are per call on that key, ``price_from`` the cheapest. \"own_key\":\nthe vendor bills the workspace's own account. \"free\": nothing is charged.\n``kind`` is about calls only; ``compute`` is the separate hourly reservation\nof an entry that runs on AgentArea.", "properties": { "compute": { "anyOf": [ { "$ref": "#/components/schemas/CatalogComputeEstimate" }, { "type": "null" } ] }, "kind": { "enum": [ "paid", "own_key", "free" ], "title": "Kind", "type": "string" }, "payers": { "items": { "type": "string" }, "title": "Payers", "type": "array" }, "price_from": { "anyOf": [ { "$ref": "#/components/schemas/CatalogToolPrice" }, { "type": "null" } ] }, "prices": { "items": { "$ref": "#/components/schemas/CatalogToolPrice" }, "title": "Prices", "type": "array" } }, "required": [ "kind", "payers", "price_from", "prices" ], "title": "CatalogItemPricingResponse", "type": "object" }, "CatalogItemUpdate": { "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "external_id": { "anyOf": [ { "maxLength": 500, "minLength": 1, "type": "string" }, { "type": "null" } ], "title": "External Id" }, "name": { "anyOf": [ { "maxLength": 255, "minLength": 1, "type": "string" }, { "type": "null" } ], "title": "Name" }, "spec": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Spec" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tags" }, "version": { "anyOf": [ { "maxLength": 100, "type": "string" }, { "type": "null" } ], "title": "Version" } }, "title": "CatalogItemUpdate", "type": "object" }, "CatalogToolPrice": { "description": "What one unit of a tool's calls costs; ``tool`` null is the connector's default.\n\n``basis`` \"price\": billing's price on the platform's key, markup included.\n\"vendor_cost\": the vendor's own cost, with no markup. ``unavailable``: billing could\nnot be asked for its price, so the vendor cost stands in.", "properties": { "amount": { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "title": "Amount", "type": "string" }, "basis": { "enum": [ "price", "vendor_cost" ], "title": "Basis", "type": "string" }, "currency": { "title": "Currency", "type": "string" }, "tool": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tool" }, "unavailable": { "default": false, "title": "Unavailable", "type": "boolean" }, "unit": { "title": "Unit", "type": "string" } }, "required": [ "tool", "amount", "currency", "unit", "basis" ], "title": "CatalogToolPrice", "type": "object" }, "CategoryFacet": { "properties": { "count": { "title": "Count", "type": "integer" }, "value": { "title": "Value", "type": "string" } }, "required": [ "value", "count" ], "title": "CategoryFacet", "type": "object" }, "CheckRequest": { "properties": { "namespace": { "title": "Namespace", "type": "string" }, "object": { "title": "Object", "type": "string" }, "relation": { "title": "Relation", "type": "string" }, "subject_id": { "title": "Subject Id", "type": "string" } }, "required": [ "namespace", "object", "relation", "subject_id" ], "title": "CheckRequest", "type": "object" }, "CheckResponse": { "properties": { "allowed": { "title": "Allowed", "type": "boolean" } }, "required": [ "allowed" ], "title": "CheckResponse", "type": "object" }, "ClientCreate": { "additionalProperties": false, "description": "Payload for registering a client (agent-proxy).", "properties": { "description": { "anyOf": [ { "maxLength": 1000, "type": "string" }, { "type": "null" } ], "title": "Description" }, "kind": { "default": "harness", "maxLength": 32, "title": "Kind", "type": "string" }, "name": { "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" } }, "required": [ "name" ], "title": "ClientCreate", "type": "object" }, "ClientMcpInstanceRef": { "properties": { "allowed_tools": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Allowed Tools" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "name": { "title": "Name", "type": "string" }, "namespace_prefix": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Namespace Prefix" } }, "required": [ "id", "name" ], "title": "ClientMcpInstanceRef", "type": "object" }, "ClientOpenAPIConnectionRef": { "properties": { "allowed_tools": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Allowed Tools" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "name": { "title": "Name", "type": "string" }, "namespace_prefix": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Namespace Prefix" } }, "required": [ "id", "name" ], "title": "ClientOpenAPIConnectionRef", "type": "object" }, "ClientPlatformToolsetRef": { "properties": { "disabled_methods": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Disabled Methods" }, "name": { "title": "Name", "type": "string" } }, "required": [ "name" ], "title": "ClientPlatformToolsetRef", "type": "object" }, "ClientRef": { "properties": { "id": { "format": "uuid", "title": "Id", "type": "string" }, "name": { "title": "Name", "type": "string" } }, "required": [ "id", "name" ], "title": "ClientRef", "type": "object" }, "ClientResponse": { "properties": { "created_by": { "title": "Created By", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "kind": { "title": "Kind", "type": "string" }, "mcp_endpoint_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Mcp Endpoint Url" }, "mcp_instances": { "default": [], "items": { "$ref": "#/components/schemas/ClientMcpInstanceRef" }, "title": "Mcp Instances", "type": "array" }, "name": { "title": "Name", "type": "string" }, "openapi_connections": { "default": [], "items": { "$ref": "#/components/schemas/ClientOpenAPIConnectionRef" }, "title": "Openapi Connections", "type": "array" }, "platform_toolsets": { "default": [], "items": { "$ref": "#/components/schemas/ClientPlatformToolsetRef" }, "title": "Platform Toolsets", "type": "array" }, "skills": { "default": [], "items": { "$ref": "#/components/schemas/ClientRef" }, "title": "Skills", "type": "array" }, "workspace_id": { "title": "Workspace Id", "type": "string" } }, "required": [ "id", "workspace_id", "created_by", "name", "description", "kind" ], "title": "ClientResponse", "type": "object" }, "ClientUpdate": { "additionalProperties": false, "description": "Patch payload for a client. Unset fields remain unchanged.", "properties": { "description": { "anyOf": [ { "maxLength": 1000, "type": "string" }, { "type": "null" } ], "title": "Description" }, "kind": { "maxLength": 32, "title": "Kind", "type": "string" }, "name": { "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" } }, "title": "ClientUpdate", "type": "object" }, "CodeToolConfig": { "properties": { "name": { "title": "Name", "type": "string" }, "settings": { "anyOf": [ { "$ref": "#/components/schemas/CodeToolSettings" }, { "type": "null" } ] }, "type": { "const": "code", "default": "code", "title": "Type", "type": "string" } }, "required": [ "name" ], "title": "CodeToolConfig", "type": "object" }, "CodeToolSettings": { "description": "Settings for a built-in code toolset.\n\nThe model ids are model instances of the workspace, each of the kind its\ntoolset needs: ``agentarea/media`` takes an image and/or a video model.\nNo other toolset takes one.", "properties": { "disabled_methods": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Disabled Methods" }, "image_model_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "agentarea/media: model instance generating images.", "title": "Image Model Id" }, "requires_user_confirmation": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Requires User Confirmation" }, "video_model_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "agentarea/media: model instance generating videos.", "title": "Video Model Id" } }, "title": "CodeToolSettings", "type": "object" }, "CollectionCreateRequest": { "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "name": { "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" } }, "required": [ "name" ], "title": "CollectionCreateRequest", "type": "object" }, "CollectionDetailResponse": { "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "id": { "title": "Id", "type": "string" }, "name": { "title": "Name", "type": "string" }, "skills": { "items": { "$ref": "#/components/schemas/SkillRef" }, "title": "Skills", "type": "array" } }, "required": [ "id", "name", "description", "skills" ], "title": "CollectionDetailResponse", "type": "object" }, "CollectionSummaryResponse": { "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "id": { "title": "Id", "type": "string" }, "name": { "title": "Name", "type": "string" }, "skill_count": { "title": "Skill Count", "type": "integer" } }, "required": [ "id", "name", "description", "skill_count" ], "title": "CollectionSummaryResponse", "type": "object" }, "CollectionUpdateRequest": { "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "name": { "anyOf": [ { "maxLength": 255, "minLength": 1, "type": "string" }, { "type": "null" } ], "title": "Name" } }, "title": "CollectionUpdateRequest", "type": "object" }, "ContentSafetyPolicy": { "additionalProperties": false, "description": "Content-safety governance controls.", "properties": { "answer_check": { "anyOf": [ { "$ref": "#/components/schemas/AnswerCheckPolicy" }, { "type": "null" } ] }, "output_sanitizer_enabled": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Output Sanitizer Enabled" }, "prompt_injection_detection_enabled": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Prompt Injection Detection Enabled" } }, "title": "ContentSafetyPolicy", "type": "object" }, "ContinueTaskPayload": { "additionalProperties": false, "properties": { "additional_budget_usd": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" } ], "gt": "0" }, { "type": "null" } ], "title": "Additional Budget Usd" }, "additional_iterations": { "default": 0, "maximum": 1000.0, "minimum": 0.0, "title": "Additional Iterations", "type": "integer" }, "additional_tokens": { "default": 0, "maximum": 10000000.0, "minimum": 0.0, "title": "Additional Tokens", "type": "integer" }, "additional_tool_calls": { "default": 0, "maximum": 10000.0, "minimum": 0.0, "title": "Additional Tool Calls", "type": "integer" } }, "title": "ContinueTaskPayload", "type": "object" }, "CreateInvitationBody": { "properties": { "email": { "anyOf": [ { "maxLength": 320, "pattern": "^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$", "type": "string" }, { "type": "null" } ], "description": "Address the invitation is for; omit for an open link anyone can accept", "title": "Email" }, "expires_in_days": { "anyOf": [ { "maximum": 365.0, "minimum": 1.0, "type": "integer" }, { "type": "null" } ], "title": "Expires In Days" } }, "title": "CreateInvitationBody", "type": "object" }, "CreateWalletRequest": { "properties": { "credentials": { "anyOf": [ { "$ref": "#/components/schemas/WalletCredentialsSchema" }, { "type": "null" } ] }, "mpp_config": { "anyOf": [ { "$ref": "#/components/schemas/MPPConfigSchema" }, { "type": "null" } ] }, "service_budget_period": { "$ref": "#/components/schemas/BudgetPeriod", "default": "execution" }, "service_budget_usd": { "anyOf": [ { "exclusiveMaximum": 1000000000000.0, "minimum": 0.0, "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" } ], "default": "0", "title": "Service Budget Usd" }, "wallet_type": { "$ref": "#/components/schemas/WalletType" }, "x402_config": { "anyOf": [ { "$ref": "#/components/schemas/X402ConfigSchema" }, { "type": "null" } ] } }, "required": [ "wallet_type" ], "title": "CreateWalletRequest", "type": "object" }, "CreateWorkspaceBody": { "properties": { "name": { "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" } }, "required": [ "name" ], "title": "CreateWorkspaceBody", "type": "object" }, "CreateWorkspaceDirectoryRequest": { "additionalProperties": false, "properties": { "path": { "minLength": 1, "title": "Path", "type": "string" } }, "required": [ "path" ], "title": "CreateWorkspaceDirectoryRequest", "type": "object" }, "CurrencySpend": { "properties": { "amount": { "title": "Amount", "type": "string" }, "currency": { "title": "Currency", "type": "string" } }, "required": [ "currency", "amount" ], "title": "CurrencySpend", "type": "object" }, "DailySpendPoint": { "properties": { "date": { "title": "Date", "type": "string" }, "usd": { "title": "Usd", "type": "string" } }, "required": [ "date", "usd" ], "title": "DailySpendPoint", "type": "object" }, "DailyTaskCounts": { "properties": { "completed": { "title": "Completed", "type": "integer" }, "date": { "title": "Date", "type": "string" }, "failed": { "title": "Failed", "type": "integer" }, "input_required": { "title": "Input Required", "type": "integer" } }, "required": [ "date", "completed", "failed", "input_required" ], "title": "DailyTaskCounts", "type": "object" }, "DashboardResponse": { "properties": { "active_tasks": { "items": { "$ref": "#/components/schemas/DashboardTask" }, "title": "Active Tasks", "type": "array" }, "blockers": { "$ref": "#/components/schemas/Blockers" }, "daily_spend": { "items": { "$ref": "#/components/schemas/DailySpendPoint" }, "title": "Daily Spend", "type": "array" }, "recent_tasks": { "items": { "$ref": "#/components/schemas/DashboardTask" }, "title": "Recent Tasks", "type": "array" }, "schedule": { "$ref": "#/components/schemas/Schedule" }, "spend": { "$ref": "#/components/schemas/SpendCard" } }, "required": [ "spend", "blockers", "active_tasks", "recent_tasks", "schedule", "daily_spend" ], "title": "DashboardResponse", "type": "object" }, "DashboardTask": { "properties": { "agent_id": { "format": "uuid", "title": "Agent Id", "type": "string" }, "agent_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Name" }, "cost_usd": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cost Usd" }, "finished_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Finished At" }, "started_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Started At" }, "status": { "title": "Status", "type": "string" }, "task_id": { "format": "uuid", "title": "Task Id", "type": "string" }, "title": { "title": "Title", "type": "string" } }, "required": [ "task_id", "agent_id", "title", "status", "started_at", "finished_at", "cost_usd" ], "title": "DashboardTask", "type": "object" }, "DiscoverPreviewModelResponse": { "properties": { "cache_creation_input_cost_per_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cache Creation Input Cost Per Token" }, "cached_input_cost_per_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cached Input Cost Per Token" }, "context_window": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Context Window" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "display_name": { "title": "Display Name", "type": "string" }, "id": { "title": "Id", "type": "string" }, "input_cost_per_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Input Cost Per Token" }, "is_new": { "default": false, "title": "Is New", "type": "boolean" }, "kind": { "$ref": "#/components/schemas/ModelKind", "default": "chat" }, "max_output_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Output Tokens" }, "model_name": { "title": "Model Name", "type": "string" }, "output_cost_per_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Output Cost Per Token" }, "supports_function_calling": { "default": false, "title": "Supports Function Calling", "type": "boolean" }, "supports_reasoning": { "default": false, "title": "Supports Reasoning", "type": "boolean" }, "supports_vision": { "default": false, "title": "Supports Vision", "type": "boolean" } }, "required": [ "id", "model_name", "display_name", "context_window" ], "title": "DiscoverPreviewModelResponse", "type": "object" }, "DiscoverPreviewRequest": { "properties": { "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Key" }, "endpoint_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Endpoint Url" }, "provider_key": { "title": "Provider Key", "type": "string" } }, "required": [ "provider_key" ], "title": "DiscoverPreviewRequest", "type": "object" }, "DiscoverPreviewResponse": { "properties": { "discovered": { "title": "Discovered", "type": "integer" }, "models": { "items": { "$ref": "#/components/schemas/DiscoverPreviewModelResponse" }, "title": "Models", "type": "array" }, "new_models": { "title": "New Models", "type": "integer" }, "skipped": { "default": [], "items": { "$ref": "#/components/schemas/SkippedModelResponse" }, "title": "Skipped", "type": "array" } }, "required": [ "discovered", "new_models", "models" ], "title": "DiscoverPreviewResponse", "type": "object" }, "DiscoveredModelResponse": { "properties": { "cache_creation_input_cost_per_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cache Creation Input Cost Per Token" }, "cached_input_cost_per_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cached Input Cost Per Token" }, "context_window": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Context Window" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "display_name": { "title": "Display Name", "type": "string" }, "input_cost_per_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Input Cost Per Token" }, "is_new": { "default": false, "title": "Is New", "type": "boolean" }, "kind": { "$ref": "#/components/schemas/ModelKind", "default": "chat" }, "max_output_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Output Tokens" }, "model_name": { "title": "Model Name", "type": "string" }, "output_cost_per_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Output Cost Per Token" }, "supports_function_calling": { "default": false, "title": "Supports Function Calling", "type": "boolean" }, "supports_reasoning": { "default": false, "title": "Supports Reasoning", "type": "boolean" }, "supports_vision": { "default": false, "title": "Supports Vision", "type": "boolean" } }, "required": [ "model_name", "display_name", "context_window" ], "title": "DiscoveredModelResponse", "type": "object" }, "DiscoveryResponse": { "properties": { "discovered": { "title": "Discovered", "type": "integer" }, "models": { "items": { "$ref": "#/components/schemas/DiscoveredModelResponse" }, "title": "Models", "type": "array" }, "new_models": { "title": "New Models", "type": "integer" }, "skipped": { "default": [], "items": { "$ref": "#/components/schemas/SkippedModelResponse" }, "title": "Skipped", "type": "array" } }, "required": [ "discovered", "new_models", "models" ], "title": "DiscoveryResponse", "type": "object" }, "EffectivePolicy": { "additionalProperties": false, "description": "Resolved immutable policy snapshot.", "properties": { "approval": { "anyOf": [ { "$ref": "#/components/schemas/ApprovalPolicy" }, { "type": "null" } ] }, "budget": { "anyOf": [ { "$ref": "#/components/schemas/BudgetPolicy-Output" }, { "type": "null" } ] }, "content_safety": { "anyOf": [ { "$ref": "#/components/schemas/ContentSafetyPolicy" }, { "type": "null" } ] }, "execution": { "anyOf": [ { "$ref": "#/components/schemas/ExecutionLimitsPolicy" }, { "type": "null" } ] }, "resolver_version": { "default": "policy-resolver-v1", "title": "Resolver Version", "type": "string" }, "source_policy_ids": { "items": { "type": "string" }, "title": "Source Policy Ids", "type": "array" }, "tokens": { "anyOf": [ { "$ref": "#/components/schemas/TokenPolicy" }, { "type": "null" } ] }, "tools": { "anyOf": [ { "$ref": "#/components/schemas/ToolsPolicy" }, { "type": "null" } ] } }, "title": "EffectivePolicy", "type": "object" }, "EffectivePolicyPreviewRequest": { "additionalProperties": false, "description": "Body for dry-run effective-policy resolution.", "properties": { "agent_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Agent Id" }, "task_policy": { "anyOf": [ { "$ref": "#/components/schemas/PolicyDocument" }, { "type": "null" } ] } }, "title": "EffectivePolicyPreviewRequest", "type": "object" }, "EffectivePolicyResponse": { "properties": { "effective_policy": { "$ref": "#/components/schemas/EffectivePolicy" } }, "required": [ "effective_policy" ], "title": "EffectivePolicyResponse", "type": "object" }, "EntityKind": { "enum": [ "mcp", "skill", "agent", "channel", "automation", "policy" ], "title": "EntityKind", "type": "string" }, "EntityStatus": { "enum": [ "will_create", "already_exists", "unsupported" ], "title": "EntityStatus", "type": "string" }, "EscalationResolution": { "properties": { "approved": { "title": "Approved", "type": "boolean" }, "comment": { "default": "", "title": "Comment", "type": "string" }, "escalation_id": { "title": "Escalation Id", "type": "string" } }, "required": [ "escalation_id", "approved" ], "title": "EscalationResolution", "type": "object" }, "EventAttachmentResponse": { "properties": { "mime": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Mime" }, "name": { "title": "Name", "type": "string" }, "ref": { "description": "A workspace file path, or the provider's reference (JSON).", "title": "Ref", "type": "string" }, "sha256": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sha256" }, "size": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Size" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Download link for a stored file; null for a provider's reference.", "title": "Url" } }, "required": [ "name", "mime", "size", "sha256", "ref", "url" ], "title": "EventAttachmentResponse", "type": "object" }, "EventFilter": { "additionalProperties": false, "description": "Empty kinds and fields match every event.", "properties": { "fields": { "additionalProperties": true, "title": "Fields", "type": "object" }, "kinds": { "items": { "type": "string" }, "title": "Kinds", "type": "array" } }, "title": "EventFilter", "type": "object" }, "EventOverrides": { "additionalProperties": false, "description": "What one source may set in place of its entry's templates (a generic webhook's own key).", "properties": { "key": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Key" }, "kind": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Kind" }, "session_key": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Session Key" } }, "title": "EventOverrides", "type": "object" }, "ExecutionCorrelationResponse": { "description": "Response model for execution correlation data.", "properties": { "executions": { "items": { "additionalProperties": true, "type": "object" }, "title": "Executions", "type": "array" }, "has_next": { "title": "Has Next", "type": "boolean" }, "page": { "title": "Page", "type": "integer" }, "page_size": { "title": "Page Size", "type": "integer" }, "total": { "title": "Total", "type": "integer" } }, "required": [ "executions", "total", "page", "page_size", "has_next" ], "title": "ExecutionCorrelationResponse", "type": "object" }, "ExecutionHistoryResponse": { "description": "Response model for paginated execution history.", "properties": { "executions": { "items": { "$ref": "#/components/schemas/TriggerExecutionResponse" }, "title": "Executions", "type": "array" }, "has_next": { "title": "Has Next", "type": "boolean" }, "page": { "title": "Page", "type": "integer" }, "page_size": { "title": "Page Size", "type": "integer" }, "total": { "title": "Total", "type": "integer" } }, "required": [ "executions", "total", "page", "page_size", "has_next" ], "title": "ExecutionHistoryResponse", "type": "object" }, "ExecutionLimitsPolicy": { "additionalProperties": false, "description": "Ceilings for the agent loop and tool execution.", "properties": { "max_model_turns": { "anyOf": [ { "exclusiveMinimum": 0.0, "type": "integer" }, { "type": "null" } ], "title": "Max Model Turns" }, "max_tool_calls_per_turn": { "anyOf": [ { "exclusiveMinimum": 0.0, "type": "integer" }, { "type": "null" } ], "title": "Max Tool Calls Per Turn" }, "max_tool_calls_total": { "anyOf": [ { "exclusiveMinimum": 0.0, "type": "integer" }, { "type": "null" } ], "title": "Max Tool Calls Total" } }, "title": "ExecutionLimitsPolicy", "type": "object" }, "ExecutionMetricsResponse": { "description": "Response model for execution metrics.", "properties": { "avg_cost_usd": { "default": 0.0, "description": "Spend per run that produced a costed task.", "title": "Avg Cost Usd", "type": "number" }, "avg_execution_time_ms": { "title": "Avg Execution Time Ms", "type": "number" }, "costed_executions": { "default": 0, "description": "Runs whose task reported a cost; the divisor behind avg_cost_usd.", "title": "Costed Executions", "type": "integer" }, "failed_executions": { "title": "Failed Executions", "type": "integer" }, "failure_rate": { "description": "Percentage, 0-100, of the runs that tried to start a task; skips excluded.", "title": "Failure Rate", "type": "number" }, "max_execution_time_ms": { "title": "Max Execution Time Ms", "type": "integer" }, "min_execution_time_ms": { "title": "Min Execution Time Ms", "type": "integer" }, "period_hours": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "description": "Window these metrics cover. Null means the whole history.", "title": "Period Hours" }, "skipped_executions": { "description": "Events the trigger's conditions turned away, or that came while it was off.", "title": "Skipped Executions", "type": "integer" }, "success_rate": { "description": "Percentage, 0-100, of the runs that tried to start a task; skips excluded.", "title": "Success Rate", "type": "number" }, "successful_executions": { "title": "Successful Executions", "type": "integer" }, "timeout_executions": { "title": "Timeout Executions", "type": "integer" }, "total_cost_usd": { "default": 0.0, "description": "Spend of the tasks these runs created.", "title": "Total Cost Usd", "type": "number" }, "total_executions": { "title": "Total Executions", "type": "integer" }, "trigger_id": { "format": "uuid", "title": "Trigger Id", "type": "string" } }, "required": [ "trigger_id", "total_executions", "successful_executions", "failed_executions", "timeout_executions", "skipped_executions", "success_rate", "failure_rate", "avg_execution_time_ms", "min_execution_time_ms", "max_execution_time_ms" ], "title": "ExecutionMetricsResponse", "type": "object" }, "ExecutionTimelineResponse": { "description": "Response model for execution timeline.", "properties": { "period_hours": { "title": "Period Hours", "type": "integer" }, "timeline": { "items": { "additionalProperties": true, "type": "object" }, "title": "Timeline", "type": "array" }, "trigger_id": { "format": "uuid", "title": "Trigger Id", "type": "string" } }, "required": [ "trigger_id", "period_hours", "timeline" ], "title": "ExecutionTimelineResponse", "type": "object" }, "ExternalIdentityResponse": { "properties": { "external_id": { "title": "External Id", "type": "string" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "linked_at": { "format": "date-time", "title": "Linked At", "type": "string" }, "provider": { "title": "Provider", "type": "string" } }, "required": [ "id", "provider", "external_id", "linked_at" ], "title": "ExternalIdentityResponse", "type": "object" }, "FailedTaskBlocker": { "properties": { "agent_id": { "format": "uuid", "title": "Agent Id", "type": "string" }, "agent_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Name" }, "error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error" }, "occurred_at": { "format": "date-time", "title": "Occurred At", "type": "string" }, "task_id": { "format": "uuid", "title": "Task Id", "type": "string" } }, "required": [ "task_id", "agent_id", "error", "occurred_at" ], "title": "FailedTaskBlocker", "type": "object" }, "FeedEventResponse": { "description": "An event's envelope without its body, and what the platform did with it.", "properties": { "attachments": { "description": "How many files the event carries.", "title": "Attachments", "type": "integer" }, "causation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Causation Id" }, "correlation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Correlation Id" }, "depth": { "title": "Depth", "type": "integer" }, "event_id": { "format": "uuid", "title": "Event Id", "type": "string" }, "key": { "title": "Key", "type": "string" }, "kind": { "title": "Kind", "type": "string" }, "occurred_at": { "format": "date-time", "title": "Occurred At", "type": "string" }, "processing": { "$ref": "#/components/schemas/Processing" }, "received_at": { "format": "date-time", "title": "Received At", "type": "string" }, "sender": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sender" }, "sequence": { "title": "Sequence", "type": "integer" }, "session_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Session Key" }, "source_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Source Id" }, "source_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Type" }, "stream_id": { "format": "uuid", "title": "Stream Id", "type": "string" }, "v": { "default": 1, "title": "V", "type": "integer" } }, "required": [ "sequence", "event_id", "stream_id", "source_id", "source_type", "kind", "key", "session_key", "sender", "received_at", "occurred_at", "depth", "correlation_id", "causation_id", "attachments", "processing" ], "title": "FeedEventResponse", "type": "object" }, "FeedFacetsResponse": { "properties": { "capped": { "default": false, "description": "Under a filter other than stream and source type the counts stop after the first 1000 matching events; true when more match, so each count is a lower bound.", "title": "Capped", "type": "boolean" }, "source_types": { "additionalProperties": { "type": "integer" }, "description": "Events per source type under the other filters.", "title": "Source Types", "type": "object" }, "streams": { "additionalProperties": { "type": "integer" }, "description": "Events per stream under the other filters.", "propertyNames": { "format": "uuid" }, "title": "Streams", "type": "object" } }, "required": [ "streams", "source_types" ], "title": "FeedFacetsResponse", "type": "object" }, "ForwardCreate": { "additionalProperties": false, "properties": { "event_filter": { "$ref": "#/components/schemas/EventFilter", "description": "Which events are copied; empty copies all." }, "output_stream_ids": { "description": "Streams every matching event is copied into; never the input.", "items": { "format": "uuid", "type": "string" }, "minItems": 1, "title": "Output Stream Ids", "type": "array" } }, "required": [ "output_stream_ids" ], "title": "ForwardCreate", "type": "object" }, "FrequentSchedule": { "properties": { "agent_id": { "format": "uuid", "title": "Agent Id", "type": "string" }, "agent_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Name" }, "cron_expression": { "title": "Cron Expression", "type": "string" }, "next_run_at": { "format": "date-time", "title": "Next Run At", "type": "string" }, "runs_per_day": { "title": "Runs Per Day", "type": "integer" }, "title": { "title": "Title", "type": "string" }, "trigger_id": { "format": "uuid", "title": "Trigger Id", "type": "string" } }, "required": [ "trigger_id", "agent_id", "title", "cron_expression", "runs_per_day", "next_run_at" ], "title": "FrequentSchedule", "type": "object" }, "FundWalletRequest": { "properties": { "service_budget_usd": { "anyOf": [ { "exclusiveMaximum": 1000000000000.0, "minimum": 0.0, "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" } ], "title": "Service Budget Usd" } }, "required": [ "service_budget_usd" ], "title": "FundWalletRequest", "type": "object" }, "GovernanceOverlay": { "properties": { "category": { "title": "Category", "type": "string" }, "interceptor_name": { "title": "Interceptor Name", "type": "string" }, "phases": { "items": { "type": "string" }, "title": "Phases", "type": "array" } }, "required": [ "interceptor_name", "category", "phases" ], "title": "GovernanceOverlay", "type": "object" }, "GraphNode": { "properties": { "color": { "title": "Color", "type": "string" }, "count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Count" }, "id": { "title": "Id", "type": "string" }, "kind": { "enum": [ "agent", "collection", "mcp" ], "title": "Kind", "type": "string" }, "name": { "title": "Name", "type": "string" }, "subtitle": { "title": "Subtitle", "type": "string" } }, "required": [ "id", "kind", "name", "subtitle", "color" ], "title": "GraphNode", "type": "object" }, "GraphResponse": { "properties": { "edges": { "items": { "additionalProperties": true, "type": "object" }, "title": "Edges", "type": "array" }, "enabled": { "title": "Enabled", "type": "boolean" }, "nodes": { "items": { "$ref": "#/components/schemas/GraphNode" }, "title": "Nodes", "type": "array" }, "stats": { "$ref": "#/components/schemas/GraphStats" } }, "required": [ "enabled", "nodes", "edges", "stats" ], "title": "GraphResponse", "type": "object" }, "GraphStats": { "properties": { "direct_exception_count": { "title": "Direct Exception Count", "type": "integer" }, "governed_skill_count": { "title": "Governed Skill Count", "type": "integer" }, "rule_count": { "title": "Rule Count", "type": "integer" } }, "required": [ "governed_skill_count", "rule_count", "direct_exception_count" ], "title": "GraphStats", "type": "object" }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "title": "Detail", "type": "array" } }, "title": "HTTPValidationError", "type": "object" }, "HandlerResponse": { "description": "One subscription's reaction to an event, named for the person reading it.", "properties": { "derived_event_ids": { "items": { "format": "uuid", "type": "string" }, "title": "Derived Event Ids", "type": "array" }, "kind": { "description": "trigger, forward, or deleted", "title": "Kind", "type": "string" }, "name": { "description": "The trigger's name, or the streams a forward writes to.", "title": "Name", "type": "string" }, "reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reason" }, "subscription_id": { "format": "uuid", "title": "Subscription Id", "type": "string" }, "task_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Task Id" }, "task_status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Task Status" }, "verdict": { "description": "reacted, skipped, error, or batched while it waits in an open batch", "title": "Verdict", "type": "string" } }, "required": [ "subscription_id", "kind", "name", "verdict", "reason", "task_id", "task_status", "derived_event_ids" ], "title": "HandlerResponse", "type": "object" }, "HeaderInput": { "additionalProperties": false, "description": "One custom HTTP header attached to an OpenAPI connection.\n\nNon-safe header names (e.g. ``Authorization``) are stored encrypted in the\nsecret manager \u2014 pass the plaintext value here at create/update time.", "properties": { "name": { "description": "HTTP header name. Allowed characters: letters, digits, '-', '_'.", "maxLength": 256, "title": "Name", "type": "string" }, "value": { "default": "", "description": "Header value. May not contain CR, LF, or NUL bytes.", "maxLength": 8192, "title": "Value", "type": "string" } }, "required": [ "name" ], "title": "HeaderInput", "type": "object" }, "HeaderOutput": { "description": "Header metadata returned in API responses (secret values are masked).", "properties": { "name": { "title": "Name", "type": "string" }, "secret": { "title": "Secret", "type": "boolean" }, "value": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Value" } }, "required": [ "name", "secret" ], "title": "HeaderOutput", "type": "object" }, "HitlBlocker": { "properties": { "agent_id": { "format": "uuid", "title": "Agent Id", "type": "string" }, "agent_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Name" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "description": { "title": "Description", "type": "string" }, "task_id": { "format": "uuid", "title": "Task Id", "type": "string" } }, "required": [ "task_id", "agent_id", "description", "created_at" ], "title": "HitlBlocker", "type": "object" }, "ImportPreview": { "additionalProperties": false, "description": "What the wizard renders before the user commits to installing.", "properties": { "bundle": { "$ref": "#/components/schemas/Bundle-Output" }, "entities": { "items": { "$ref": "#/components/schemas/PreviewEntity" }, "title": "Entities", "type": "array" }, "installable": { "description": "True when there are no blocking issues (setup may still be required).", "title": "Installable", "type": "boolean" }, "issues": { "items": { "$ref": "#/components/schemas/PreviewIssue" }, "title": "Issues", "type": "array" }, "setup": { "items": { "$ref": "#/components/schemas/SetupField" }, "title": "Setup", "type": "array" } }, "required": [ "bundle", "installable" ], "title": "ImportPreview", "type": "object" }, "InboxResponse": { "properties": { "items": { "items": { "$ref": "#/components/schemas/TaskWithAgent" }, "title": "Items", "type": "array" }, "page": { "title": "Page", "type": "integer" }, "page_size": { "title": "Page Size", "type": "integer" }, "total": { "title": "Total", "type": "integer" } }, "required": [ "items", "total", "page", "page_size" ], "title": "InboxResponse", "type": "object" }, "InputSecretValue": { "additionalProperties": false, "description": "Secret value submitted through the protected input endpoint.", "properties": { "secret_name": { "anyOf": [ { "maxLength": 256, "type": "string" }, { "type": "null" } ], "title": "Secret Name" }, "value": { "minLength": 1, "title": "Value", "type": "string" } }, "required": [ "value" ], "title": "InputSecretValue", "type": "object" }, "InstallAction": { "enum": [ "created", "reused", "skipped" ], "title": "InstallAction", "type": "string" }, "InstallRequest": { "description": "Install a (previously analyzed, possibly edited) canonical bundle.", "properties": { "bundle": { "$ref": "#/components/schemas/Bundle-Input" }, "setup_values": { "additionalProperties": true, "description": "Values for the bundle's setup fields, keyed by setup field key.", "title": "Setup Values", "type": "object" } }, "required": [ "bundle" ], "title": "InstallRequest", "type": "object" }, "InstallResult": { "additionalProperties": false, "properties": { "bundle_name": { "title": "Bundle Name", "type": "string" }, "entities": { "items": { "$ref": "#/components/schemas/InstalledEntity" }, "title": "Entities", "type": "array" }, "installed_bundle_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Installed Bundle Id" } }, "required": [ "bundle_name" ], "title": "InstallResult", "type": "object" }, "InstalledEntity": { "additionalProperties": false, "properties": { "action": { "$ref": "#/components/schemas/InstallAction" }, "detail": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Detail" }, "id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Created/reused entity id, when applicable.", "title": "Id" }, "key": { "title": "Key", "type": "string" }, "kind": { "$ref": "#/components/schemas/EntityKind" }, "name": { "title": "Name", "type": "string" } }, "required": [ "kind", "key", "name", "action" ], "title": "InstalledEntity", "type": "object" }, "InvitationCreatedResponse": { "description": "Same as InvitationResponse plus the plaintext token, returned ONCE.", "properties": { "accepted_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Accepted At" }, "accepted_by_user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Accepted By User Id" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email" }, "email_delivery": { "$ref": "#/components/schemas/InvitationEmailDelivery" }, "expires_at": { "format": "date-time", "title": "Expires At", "type": "string" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "invited_by": { "title": "Invited By", "type": "string" }, "invited_by_display_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Invited By Display Name" }, "status": { "title": "Status", "type": "string" }, "token": { "title": "Token", "type": "string" }, "workspace_id": { "title": "Workspace Id", "type": "string" } }, "required": [ "id", "workspace_id", "email", "invited_by", "invited_by_display_name", "status", "expires_at", "accepted_at", "accepted_by_user_id", "created_at", "token", "email_delivery" ], "title": "InvitationCreatedResponse", "type": "object" }, "InvitationEmailDelivery": { "enum": [ "sent", "not_requested", "not_configured", "failed" ], "title": "InvitationEmailDelivery", "type": "string" }, "InvitationPreviewBody": { "properties": { "token": { "title": "Token", "type": "string" } }, "required": [ "token" ], "title": "InvitationPreviewBody", "type": "object" }, "InvitationPreviewResponse": { "description": "What an invitee is shown before joining: who asked, where to, until when.\n\nThe caller is not a member yet, so nothing else about the workspace leaves\nthis endpoint. The inviter fields are nullable because the identity\nprovider may not resolve them; the client states that rather than guessing.", "properties": { "expires_at": { "format": "date-time", "title": "Expires At", "type": "string" }, "inviter_display_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Inviter Display Name" }, "inviter_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Inviter Email" }, "workspace_name": { "title": "Workspace Name", "type": "string" } }, "required": [ "workspace_name", "inviter_display_name", "inviter_email", "expires_at" ], "title": "InvitationPreviewResponse", "type": "object" }, "InvitationResponse": { "properties": { "accepted_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Accepted At" }, "accepted_by_user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Accepted By User Id" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email" }, "expires_at": { "format": "date-time", "title": "Expires At", "type": "string" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "invited_by": { "title": "Invited By", "type": "string" }, "invited_by_display_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Invited By Display Name" }, "status": { "title": "Status", "type": "string" }, "workspace_id": { "title": "Workspace Id", "type": "string" } }, "required": [ "id", "workspace_id", "email", "invited_by", "invited_by_display_name", "status", "expires_at", "accepted_at", "accepted_by_user_id", "created_at" ], "title": "InvitationResponse", "type": "object" }, "IssueSeverity": { "enum": [ "block", "warn" ], "title": "IssueSeverity", "type": "string" }, "MCPAuthConfigCreateRequest": { "properties": { "auth_type": { "description": "One of: api_key, bearer, oauth2", "title": "Auth Type", "type": "string" }, "config": { "additionalProperties": true, "description": "Non-sensitive config (header_name, token_url, client_id, scopes, \u2026)", "title": "Config", "type": "object" }, "credentials": { "additionalProperties": true, "description": "Sensitive credentials encrypted at rest (header_value, token, client_secret, \u2026)", "title": "Credentials", "type": "object" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "name": { "description": "Human-readable name for this auth config", "title": "Name", "type": "string" } }, "required": [ "name", "auth_type" ], "title": "MCPAuthConfigCreateRequest", "type": "object" }, "MCPAuthConfigResponse": { "properties": { "auth_type": { "title": "Auth Type", "type": "string" }, "config": { "additionalProperties": true, "title": "Config", "type": "object" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "name": { "title": "Name", "type": "string" }, "updated_at": { "format": "date-time", "title": "Updated At", "type": "string" } }, "required": [ "id", "name", "description", "auth_type", "config", "created_at", "updated_at" ], "title": "MCPAuthConfigResponse", "type": "object" }, "MCPAuthConfigUpdateRequest": { "properties": { "config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Config" }, "credentials": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Credentials" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" } }, "title": "MCPAuthConfigUpdateRequest", "type": "object" }, "MCPContainersHealthResponse": { "properties": { "healthy": { "title": "Healthy", "type": "integer" }, "instances": { "items": { "$ref": "#/components/schemas/MCPInstanceHealthResponse" }, "title": "Instances", "type": "array" }, "total": { "title": "Total", "type": "integer" } }, "required": [ "instances", "total", "healthy" ], "title": "MCPContainersHealthResponse", "type": "object" }, "MCPInstanceConsumer": { "description": "An agent that has this MCP instance attached, and which of its tools it enabled.", "properties": { "agent_id": { "format": "uuid", "title": "Agent Id", "type": "string" }, "agent_name": { "title": "Agent Name", "type": "string" }, "agent_slug": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Slug" }, "confirm_tools": { "items": { "type": "string" }, "title": "Confirm Tools", "type": "array" }, "enabled_tools": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Enabled Tools" } }, "required": [ "agent_id", "agent_name" ], "title": "MCPInstanceConsumer", "type": "object" }, "MCPInstanceHealthResponse": { "description": "One workload's health, as the calling workspace is entitled to see it.\n\nDeliberately just the verdict and its reason. The manager's own health body\nis richer \u2014 container id, image, ports, the gateway path it serves the\nworkload on \u2014 and none of that is something a caller needs in order to learn\nthat a workload is up. It is dropped here rather than passed through, so the\nendpoint cannot become a way to enumerate the data plane.", "properties": { "healthy": { "title": "Healthy", "type": "boolean" }, "instance_id": { "title": "Instance Id", "type": "string" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "status": { "title": "Status", "type": "string" } }, "required": [ "instance_id", "healthy", "status" ], "title": "MCPInstanceHealthResponse", "type": "object" }, "MCPServerConnectionCreateRequest": { "properties": { "instance": { "$ref": "#/components/schemas/MCPServerInstanceCreateWithoutSpec" }, "server": { "$ref": "#/components/schemas/MCPServerCreate" } }, "required": [ "server", "instance" ], "title": "MCPServerConnectionCreateRequest", "type": "object" }, "MCPServerCreate": { "additionalProperties": false, "description": "Payload for creating an MCP server spec (catalog template).\n\nEither ``docker_image_url`` (for container-based servers) or\n``remote_url`` (for HTTP-based servers like GitHub Copilot) should be\nsupplied. ``env_schema`` describes the variables an instance built from\nthis spec needs to provide; secret entries (``isSecret: true``) are\nrouted through the secret manager rather than stored in plaintext.", "properties": { "cmd": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "Custom command override for container CMD (e.g. switching between stdio and HTTP modes).", "title": "Cmd" }, "description": { "description": "Short summary of what this MCP server provides.", "title": "Description", "type": "string" }, "docker_image_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Docker image URL for container-based MCP servers.", "title": "Docker Image Url" }, "env_schema": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "description": "Environment-variable schema entries (KeyValueInput from the MCP registry). Each item has at least 'name' and 'description'; mark secrets with 'isSecret: true'.", "title": "Env Schema" }, "is_public": { "default": false, "description": "If true, the spec is visible across workspaces.", "title": "Is Public", "type": "boolean" }, "json_spec": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "Raw ServerJSON spec as published by the MCP registry.", "title": "Json Spec" }, "name": { "description": "Human-readable MCP server name (unique per workspace).", "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" }, "registry_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Source registry URL the spec was imported from.", "title": "Registry Url" }, "remote_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Remote endpoint URL for HTTP-based MCP servers.", "title": "Remote Url" }, "tags": { "description": "Tags used for search and categorization.", "items": { "type": "string" }, "title": "Tags", "type": "array" }, "version": { "default": "1.0.0", "description": "Semantic version of the MCP server spec.", "title": "Version", "type": "string" } }, "required": [ "name", "description" ], "title": "MCPServerCreate", "type": "object" }, "MCPServerInstanceCreate": { "additionalProperties": false, "description": "Payload for creating an MCP server instance.\n\nThe instance's transport (url, docker or command) is the one its server\nspec declares; the response carries it as ``transport``. ``json_spec``\ncarries the instance's own configuration, e.g.\n``{\"environment\": {...}, \"env_vars\": [...]}`` or ``{\"headers\": {...}}``;\ntransport keys in it are ignored.\nFor URL-type instances the service synchronously verifies the endpoint;\ndocker/command kick off background verification.", "properties": { "auth_config_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "ID of an MCP auth config (OAuth/credentials) to attach.", "title": "Auth Config Id" }, "context_secret": { "anyOf": [ { "maxLength": 512, "minLength": 32, "type": "string" }, { "type": "null" } ], "description": "URL instances only. Shared secret (at least 32 characters) AgentArea signs each tool call's context token with, so the server can trust which task, workspace and end user the call is for. Write-only: stored in the secret manager; the instance's json_spec shows context_signing: true instead.", "title": "Context Secret" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Optional human-readable description of the instance.", "title": "Description" }, "json_spec": { "additionalProperties": true, "description": "Instance configuration (environment, env_vars, headers). Transport keys such as 'type' are ignored: the server spec declares the transport.", "title": "Json Spec", "type": "object" }, "name": { "description": "Display name for this MCP server instance (unique per workspace).", "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" }, "server_spec_id": { "description": "ID of an existing MCP server spec to derive defaults from (env_schema, secret routing, etc.).", "format": "uuid", "title": "Server Spec Id", "type": "string" } }, "required": [ "name", "server_spec_id", "json_spec" ], "title": "MCPServerInstanceCreate", "type": "object" }, "MCPServerInstanceCreateWithoutSpec": { "properties": { "auth_config_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Auth Config Id" }, "context_secret": { "anyOf": [ { "maxLength": 512, "minLength": 32, "type": "string" }, { "type": "null" } ], "description": "URL instances only. Shared secret (at least 32 characters) AgentArea signs each tool call's context token with, so the server can trust which task, workspace and end user the call is for. Write-only: stored in the secret manager; the instance's json_spec shows context_signing: true instead.", "title": "Context Secret" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "json_spec": { "additionalProperties": true, "title": "Json Spec", "type": "object" }, "name": { "title": "Name", "type": "string" } }, "required": [ "name" ], "title": "MCPServerInstanceCreateWithoutSpec", "type": "object" }, "MCPServerInstanceResponse": { "properties": { "auth_config_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "string" }, { "type": "null" } ], "title": "Auth Config Id" }, "cost": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Cost" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "events": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Events" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "json_spec": { "additionalProperties": true, "title": "Json Spec", "type": "object" }, "last_dispatch": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Last Dispatch" }, "managed_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Managed By" }, "name": { "title": "Name", "type": "string" }, "server_spec_id": { "title": "Server Spec Id", "type": "string" }, "tools": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Tools" }, "transport": { "$ref": "#/components/schemas/MCPTransport" }, "updated_at": { "format": "date-time", "title": "Updated At", "type": "string" }, "verification": { "additionalProperties": true, "title": "Verification", "type": "object" } }, "required": [ "id", "name", "description", "server_spec_id", "transport", "json_spec", "verification", "created_at", "updated_at" ], "title": "MCPServerInstanceResponse", "type": "object" }, "MCPServerInstanceUpdate": { "additionalProperties": false, "description": "Patch payload for an MCP server instance. All fields optional \u2014 unset = unchanged.", "properties": { "context_secret": { "anyOf": [ { "maxLength": 512, "minLength": 32, "type": "string" }, { "type": "null" } ], "description": "URL instances only. Shared secret (at least 32 characters) AgentArea signs each tool call's context token with, so the server can trust which task, workspace and end user the call is for. Write-only: stored in the secret manager; the instance's json_spec shows context_signing: true instead. Send null to remove it.", "title": "Context Secret" }, "cost": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "What a call of this connection costs, set by a member on a connection the workspace pays for: a rate (per call or per unit), a field of the response, or free (wiki ADR-0038 \u00a72.3). It wins over the connector's declaration. Send null to go back to the connector's.", "title": "Cost" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "json_spec": { "additionalProperties": true, "title": "Json Spec", "type": "object" }, "name": { "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" } }, "title": "MCPServerInstanceUpdate", "type": "object" }, "MCPServerResponse": { "properties": { "cmd": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Cmd" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "description": { "title": "Description", "type": "string" }, "docker_image_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Docker Image Url" }, "env_schema": { "items": { "additionalProperties": true, "type": "object" }, "title": "Env Schema", "type": "array" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "is_public": { "title": "Is Public", "type": "boolean" }, "json_spec": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Json Spec" }, "name": { "title": "Name", "type": "string" }, "registry_item_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Registry Item Id" }, "registry_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Registry Url" }, "remote_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Remote Url" }, "slug": { "title": "Slug", "type": "string" }, "status": { "title": "Status", "type": "string" }, "tags": { "items": { "type": "string" }, "title": "Tags", "type": "array" }, "updated_at": { "format": "date-time", "title": "Updated At", "type": "string" }, "version": { "title": "Version", "type": "string" } }, "required": [ "id", "slug", "name", "description", "version", "tags", "is_public", "env_schema", "cmd", "status", "created_at", "updated_at" ], "title": "MCPServerResponse", "type": "object" }, "MCPServerUpdate": { "additionalProperties": false, "description": "Patch payload for an MCP server spec. All fields optional \u2014 unset = unchanged.", "properties": { "cmd": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Cmd" }, "description": { "title": "Description", "type": "string" }, "docker_image_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Docker Image Url" }, "env_schema": { "items": { "additionalProperties": true, "type": "object" }, "title": "Env Schema", "type": "array" }, "is_public": { "title": "Is Public", "type": "boolean" }, "json_spec": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Json Spec" }, "name": { "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" }, "registry_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Registry Url" }, "remote_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Remote Url" }, "status": { "description": "Lifecycle status of the spec (e.g. 'active', 'deprecated').", "title": "Status", "type": "string" }, "tags": { "items": { "type": "string" }, "title": "Tags", "type": "array" }, "version": { "title": "Version", "type": "string" } }, "title": "MCPServerUpdate", "type": "object" }, "MCPTransport": { "description": "How a connection is reached: the instance's ``transport`` column, set once at creation.", "enum": [ "url", "docker", "command", "bundle" ], "title": "MCPTransport", "type": "string" }, "MPPConfigSchema": { "properties": { "chain_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Chain Id" }, "currency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Currency" }, "decimals": { "default": 6, "title": "Decimals", "type": "integer" }, "payment_method_types": { "items": { "type": "string" }, "title": "Payment Method Types", "type": "array" }, "recipient": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Recipient" }, "rpc_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Rpc Url" }, "session_budget_usd": { "anyOf": [ { "minimum": 0.0, "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" } ], "title": "Session Budget Usd" }, "stripe_profile_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Stripe Profile Id" } }, "required": [ "session_budget_usd" ], "title": "MPPConfigSchema", "type": "object" }, "McpInstanceAssociationBody": { "description": "Attach an instance, or replace how an attached one is served.", "properties": { "allowed_tools": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Allowed Tools" }, "id": { "title": "Id", "type": "string" }, "namespace_prefix": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Namespace Prefix" } }, "required": [ "id" ], "title": "McpInstanceAssociationBody", "type": "object" }, "McpToolConfig-Input": { "properties": { "name": { "title": "Name", "type": "string" }, "settings": { "anyOf": [ { "$ref": "#/components/schemas/McpToolSettings" }, { "type": "null" } ] }, "type": { "const": "mcp", "default": "mcp", "title": "Type", "type": "string" } }, "required": [ "name" ], "title": "McpToolConfig", "type": "object" }, "McpToolConfig-Output": { "properties": { "name": { "title": "Name", "type": "string" }, "settings": { "anyOf": [ { "$ref": "#/components/schemas/McpToolSettings" }, { "type": "null" } ] }, "type": { "const": "mcp", "default": "mcp", "title": "Type", "type": "string" } }, "required": [ "name" ], "title": "McpToolConfig", "type": "object" }, "McpToolPermission": { "description": "A single MCP tool the agent may call.\n\nReplaces the old ``list[Any]`` for ``allowed_tools`` (the former FIXME).\n``requires_user_confirmation`` is transport only: the API translates it into\nan agent-scoped approval policy rule and does not persist it here, so it is\n``None`` at rest and reconstituted from rules on read.", "properties": { "requires_user_confirmation": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Requires User Confirmation" }, "tool_name": { "title": "Tool Name", "type": "string" } }, "required": [ "tool_name" ], "title": "McpToolPermission", "type": "object" }, "McpToolSettings": { "description": "Settings for an MCP server tool (a subset of the server's tools).", "properties": { "allowed_tools": { "anyOf": [ { "items": { "$ref": "#/components/schemas/McpToolPermission" }, "type": "array" }, { "type": "null" } ], "title": "Allowed Tools" }, "requires_user_confirmation": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Requires User Confirmation" } }, "title": "McpToolSettings", "type": "object" }, "MemberRemovalPendingResponse": { "description": "The membership has ended; its graph access is still being revoked.", "properties": { "status": { "const": "revocation_pending", "default": "revocation_pending", "title": "Status", "type": "string" } }, "title": "MemberRemovalPendingResponse", "type": "object" }, "MemberResponse": { "properties": { "display_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Display Name" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "invitation_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Invitation Id" }, "is_owner": { "title": "Is Owner", "type": "boolean" }, "joined_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Joined At" }, "user_id": { "title": "User Id", "type": "string" }, "workspace_id": { "title": "Workspace Id", "type": "string" } }, "required": [ "id", "workspace_id", "user_id", "email", "display_name", "joined_at", "invitation_id", "is_owner" ], "title": "MemberResponse", "type": "object" }, "ModelInstanceBulkCreateRequest": { "properties": { "items": { "items": { "$ref": "#/components/schemas/ModelInstanceCreate" }, "maxItems": 500, "minItems": 1, "title": "Items", "type": "array" } }, "required": [ "items" ], "title": "ModelInstanceBulkCreateRequest", "type": "object" }, "ModelInstanceBulkCreateResponse": { "properties": { "failed": { "items": { "$ref": "#/components/schemas/ModelInstanceBulkFailure" }, "title": "Failed", "type": "array" }, "failed_count": { "title": "Failed Count", "type": "integer" }, "succeeded": { "items": { "$ref": "#/components/schemas/ModelInstanceResponse" }, "title": "Succeeded", "type": "array" }, "succeeded_count": { "title": "Succeeded Count", "type": "integer" } }, "required": [ "succeeded", "failed", "succeeded_count", "failed_count" ], "title": "ModelInstanceBulkCreateResponse", "type": "object" }, "ModelInstanceBulkFailure": { "properties": { "error": { "title": "Error", "type": "string" }, "index": { "title": "Index", "type": "integer" }, "model_spec_id": { "title": "Model Spec Id", "type": "string" } }, "required": [ "index", "model_spec_id", "error" ], "title": "ModelInstanceBulkFailure", "type": "object" }, "ModelInstanceCreate": { "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "is_public": { "default": false, "title": "Is Public", "type": "boolean" }, "model_spec_id": { "format": "uuid", "title": "Model Spec Id", "type": "string" }, "name": { "title": "Name", "type": "string" }, "provider_config_id": { "format": "uuid", "title": "Provider Config Id", "type": "string" } }, "required": [ "provider_config_id", "model_spec_id", "name" ], "title": "ModelInstanceCreate", "type": "object" }, "ModelInstanceResponse": { "properties": { "config_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Config Name" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "id": { "title": "Id", "type": "string" }, "is_active": { "title": "Is Active", "type": "boolean" }, "is_public": { "title": "Is Public", "type": "boolean" }, "managed_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Managed By" }, "model_display_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Display Name" }, "model_kind": { "anyOf": [ { "$ref": "#/components/schemas/ModelKind" }, { "type": "null" } ] }, "model_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Name" }, "model_spec_id": { "title": "Model Spec Id", "type": "string" }, "name": { "title": "Name", "type": "string" }, "provider_config_id": { "title": "Provider Config Id", "type": "string" }, "provider_icon_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider Icon Url" }, "provider_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider Key" }, "provider_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider Name" }, "tags": { "items": { "type": "string" }, "title": "Tags", "type": "array" }, "updated_at": { "format": "date-time", "title": "Updated At", "type": "string" } }, "required": [ "id", "provider_config_id", "model_spec_id", "name", "description", "is_active", "is_public", "created_at", "updated_at" ], "title": "ModelInstanceResponse", "type": "object" }, "ModelInstanceTestRequest": { "properties": { "model_spec_id": { "format": "uuid", "title": "Model Spec Id", "type": "string" }, "provider_config_id": { "format": "uuid", "title": "Provider Config Id", "type": "string" }, "test_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "Hello, this is a test message.", "title": "Test Message" } }, "required": [ "provider_config_id", "model_spec_id" ], "title": "ModelInstanceTestRequest", "type": "object" }, "ModelInstanceTestResponse": { "properties": { "cost": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cost" }, "currency": { "const": "USD", "default": "USD", "title": "Currency", "type": "string" }, "error_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Type" }, "message": { "title": "Message", "type": "string" }, "model_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Name" }, "provider_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider Type" }, "response_content": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Response Content" }, "success": { "title": "Success", "type": "boolean" }, "tokens_used": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tokens Used" } }, "required": [ "success", "message" ], "title": "ModelInstanceTestResponse", "type": "object" }, "ModelKind": { "description": "What a model produces, which decides every surface it may be bound to.\n\nAn agent's main model is ``chat``; the media toolset takes ``image`` and\n``video``; the decide toolset and decision-backed trigger conditions take\n``decision``. A model has exactly one kind.", "enum": [ "chat", "embedding", "image", "video", "decision" ], "title": "ModelKind", "type": "string" }, "ModelSpecCreate": { "properties": { "cache_creation_input_cost_per_token": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" } ], "ge": "0", "lt": "100000000" }, { "type": "null" } ], "title": "Cache Creation Input Cost Per Token" }, "cached_input_cost_per_token": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" } ], "ge": "0", "lt": "100000000" }, { "type": "null" } ], "title": "Cached Input Cost Per Token" }, "context_window": { "anyOf": [ { "exclusiveMinimum": 0.0, "maximum": 2147483647.0, "type": "integer" }, { "type": "null" } ], "title": "Context Window" }, "default_context_strategy": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Context Strategy" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "display_name": { "title": "Display Name", "type": "string" }, "input_cost_per_token": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" } ], "ge": "0", "lt": "100000000" }, { "type": "null" } ], "title": "Input Cost Per Token" }, "is_active": { "default": true, "title": "Is Active", "type": "boolean" }, "kind": { "$ref": "#/components/schemas/ModelKind", "default": "chat" }, "max_output_tokens": { "anyOf": [ { "exclusiveMinimum": 0.0, "maximum": 2147483647.0, "type": "integer" }, { "type": "null" } ], "title": "Max Output Tokens" }, "model_name": { "title": "Model Name", "type": "string" }, "output_cost_per_token": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" } ], "ge": "0", "lt": "100000000" }, { "type": "null" } ], "title": "Output Cost Per Token" }, "provider_spec_id": { "format": "uuid", "title": "Provider Spec Id", "type": "string" } }, "required": [ "provider_spec_id", "model_name", "display_name" ], "title": "ModelSpecCreate", "type": "object" }, "ModelSpecUpdate": { "properties": { "cache_creation_input_cost_per_token": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" } ], "ge": "0", "lt": "100000000" }, { "type": "null" } ], "title": "Cache Creation Input Cost Per Token" }, "cached_input_cost_per_token": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" } ], "ge": "0", "lt": "100000000" }, { "type": "null" } ], "title": "Cached Input Cost Per Token" }, "context_window": { "anyOf": [ { "exclusiveMinimum": 0.0, "maximum": 2147483647.0, "type": "integer" }, { "type": "null" } ], "title": "Context Window" }, "default_context_strategy": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Context Strategy" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "display_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Display Name" }, "input_cost_per_token": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" } ], "ge": "0", "lt": "100000000" }, { "type": "null" } ], "title": "Input Cost Per Token" }, "is_active": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Active" }, "max_output_tokens": { "anyOf": [ { "exclusiveMinimum": 0.0, "maximum": 2147483647.0, "type": "integer" }, { "type": "null" } ], "title": "Max Output Tokens" }, "output_cost_per_token": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" } ], "ge": "0", "lt": "100000000" }, { "type": "null" } ], "title": "Output Cost Per Token" } }, "title": "ModelSpecUpdate", "type": "object" }, "MoveWorkspaceFileRequest": { "additionalProperties": false, "properties": { "destination": { "minLength": 1, "title": "Destination", "type": "string" }, "source": { "minLength": 1, "title": "Source", "type": "string" } }, "required": [ "source", "destination" ], "title": "MoveWorkspaceFileRequest", "type": "object" }, "MovedFileResponse": { "properties": { "destination": { "title": "Destination", "type": "string" }, "moved": { "title": "Moved", "type": "integer" }, "source": { "title": "Source", "type": "string" } }, "required": [ "source", "destination", "moved" ], "title": "MovedFileResponse", "type": "object" }, "NetworkEdge": { "properties": { "id": { "title": "Id", "type": "string" }, "relation": { "title": "Relation", "type": "string" }, "source": { "title": "Source", "type": "string" }, "target": { "title": "Target", "type": "string" } }, "required": [ "id", "source", "target", "relation" ], "title": "NetworkEdge", "type": "object" }, "NetworkNode": { "properties": { "id": { "title": "Id", "type": "string" }, "label": { "title": "Label", "type": "string" }, "metadata": { "additionalProperties": true, "title": "Metadata", "type": "object" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status" }, "type": { "enum": [ "agent", "mcp_instance", "openapi_connection", "skill", "trigger" ], "title": "Type", "type": "string" } }, "required": [ "id", "type", "label" ], "title": "NetworkNode", "type": "object" }, "NetworkPeopleAccessResponse": { "properties": { "access": { "items": { "$ref": "#/components/schemas/NetworkPersonAgentAccess" }, "title": "Access", "type": "array" }, "complete": { "title": "Complete", "type": "boolean" }, "decision_source": { "const": "agent_edge_admission", "default": "agent_edge_admission", "title": "Decision Source", "type": "string" }, "directory_status": { "default": "available", "enum": [ "available", "disabled" ], "title": "Directory Status", "type": "string" }, "people": { "items": { "$ref": "#/components/schemas/NetworkPerson" }, "title": "People", "type": "array" }, "total_agents": { "minimum": 0.0, "title": "Total Agents", "type": "integer" }, "total_people": { "anyOf": [ { "minimum": 0.0, "type": "integer" }, { "type": "null" } ], "title": "Total People" }, "workspace_id": { "title": "Workspace Id", "type": "string" } }, "required": [ "workspace_id", "people", "access", "complete", "total_people", "total_agents" ], "title": "NetworkPeopleAccessResponse", "type": "object" }, "NetworkPerson": { "properties": { "display_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Display Name" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email" }, "user_id": { "title": "User Id", "type": "string" } }, "required": [ "user_id" ], "title": "NetworkPerson", "type": "object" }, "NetworkPersonAgentAccess": { "properties": { "agent_id": { "title": "Agent Id", "type": "string" }, "allowed": { "title": "Allowed", "type": "boolean" }, "reason": { "title": "Reason", "type": "string" }, "user_id": { "title": "User Id", "type": "string" } }, "required": [ "user_id", "agent_id", "allowed", "reason" ], "title": "NetworkPersonAgentAccess", "type": "object" }, "NetworkTopologyResponse": { "properties": { "deployment_mode": { "default": "oss", "title": "Deployment Mode", "type": "string" }, "edges": { "items": { "$ref": "#/components/schemas/NetworkEdge" }, "title": "Edges", "type": "array" }, "governance": { "items": { "$ref": "#/components/schemas/GovernanceOverlay" }, "title": "Governance", "type": "array" }, "nodes": { "items": { "$ref": "#/components/schemas/NetworkNode" }, "title": "Nodes", "type": "array" } }, "required": [ "nodes", "edges", "governance" ], "title": "NetworkTopologyResponse", "type": "object" }, "OAuthAuthorizeRequest": { "additionalProperties": false, "description": "Start a sign-in for one MCP instance or one catalog API.\n\n``auto`` uses the operator's platform app when one serves the provider, else\nregisters AgentArea with it (RFC 7591). ``custom`` uses an OAuth app the\nworkspace registered with the provider, and overrides either.", "properties": { "catalog_item_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "Catalog API to connect; the connection is created by this request.", "title": "Catalog Item Id" }, "client_id": { "anyOf": [ { "maxLength": 512, "minLength": 1, "type": "string" }, { "type": "null" } ], "title": "Client Id" }, "client_id_secret_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "Existing user-owned workspace secret containing the OAuth client ID.", "title": "Client Id Secret Id" }, "client_secret": { "anyOf": [ { "maxLength": 4096, "minLength": 1, "type": "string" }, { "type": "null" } ], "title": "Client Secret" }, "client_secret_secret_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "Existing user-owned workspace secret containing the OAuth client secret.", "title": "Client Secret Secret Id" }, "credential_mode": { "default": "auto", "enum": [ "auto", "custom" ], "title": "Credential Mode", "type": "string" }, "instance_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "MCP instance to sign in to.", "title": "Instance Id" }, "return_to": { "default": "", "maxLength": 2048, "title": "Return To", "type": "string" } }, "title": "OAuthAuthorizeRequest", "type": "object" }, "OAuthAuthorizeResponse": { "properties": { "authorize_url": { "title": "Authorize Url", "type": "string" }, "connection_id": { "format": "uuid", "title": "Connection Id", "type": "string" } }, "required": [ "authorize_url", "connection_id" ], "title": "OAuthAuthorizeResponse", "type": "object" }, "OAuthFinishRequest": { "additionalProperties": false, "properties": { "token": { "maxLength": 256, "minLength": 1, "title": "Token", "type": "string" } }, "required": [ "token" ], "title": "OAuthFinishRequest", "type": "object" }, "OAuthFinishResponse": { "properties": { "location": { "title": "Location", "type": "string" } }, "required": [ "location" ], "title": "OAuthFinishResponse", "type": "object" }, "OAuthLinkCreateRequest": { "properties": { "access_control": { "default": "workspace", "description": "Access control level: workspace | public", "title": "Access Control", "type": "string" }, "expires_in_days": { "anyOf": [ { "maximum": 3650.0, "minimum": 1.0, "type": "integer" }, { "type": "null" } ], "description": "Optional link expiry in days", "title": "Expires In Days" }, "mcp_instance_id": { "format": "uuid", "title": "Mcp Instance Id", "type": "string" }, "provider_config": { "additionalProperties": true, "description": "OAuth provider config: provider, auth_url, token_url, client_id, scopes, \u2026", "title": "Provider Config", "type": "object" } }, "required": [ "mcp_instance_id" ], "title": "OAuthLinkCreateRequest", "type": "object" }, "OAuthLinkResponse": { "properties": { "access_control": { "title": "Access Control", "type": "string" }, "access_count": { "title": "Access Count", "type": "integer" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "expires_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Expires At" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "is_active": { "title": "Is Active", "type": "boolean" }, "last_accessed_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Last Accessed At" }, "mcp_instance_id": { "format": "uuid", "title": "Mcp Instance Id", "type": "string" }, "token": { "title": "Token", "type": "string" } }, "required": [ "id", "mcp_instance_id", "token", "access_control", "is_active", "expires_at", "access_count", "last_accessed_at", "created_at" ], "title": "OAuthLinkResponse", "type": "object" }, "OAuthPreflightResponse": { "description": "What the UI needs before it can offer Connect.\n\n``ready`` \u2014 Connect runs unattended, with the client ``credential_source``\nnames: the operator's ``platform`` app, or one registered ``dynamic``-ally.\n``oauth_app_required`` \u2014 ask for a client ID/secret first.\n``unsupported`` \u2014 this cannot be authorized with OAuth; ``detail`` says why.", "properties": { "authorization_endpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization Endpoint" }, "connected": { "title": "Connected", "type": "boolean" }, "credential_source": { "anyOf": [ { "enum": [ "platform", "dynamic" ], "type": "string" }, { "type": "null" } ], "title": "Credential Source" }, "detail": { "default": "", "title": "Detail", "type": "string" }, "issuer": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Issuer" }, "redirect_uri": { "title": "Redirect Uri", "type": "string" }, "scopes": { "items": { "type": "string" }, "title": "Scopes", "type": "array" }, "status": { "enum": [ "ready", "oauth_app_required", "unsupported" ], "title": "Status", "type": "string" } }, "required": [ "status", "connected", "redirect_uri" ], "title": "OAuthPreflightResponse", "type": "object" }, "OpenAPIConnectionAssociationBody": { "description": "Attach an OpenAPI connection, or replace how an attached one is served.", "properties": { "allowed_tools": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Allowed Tools" }, "id": { "title": "Id", "type": "string" }, "namespace_prefix": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Namespace Prefix" } }, "required": [ "id" ], "title": "OpenAPIConnectionAssociationBody", "type": "object" }, "OpenAPIConnectionCreate": { "additionalProperties": false, "description": "Payload for creating an OpenAPI connection.\n\nThe connection ties a base URL (where requests are sent) to an\nOpenAPI 3.x specification (which is parsed eagerly into a tool list).\nProvide either ``spec_url`` or ``spec_content`` \u2014 not both required.", "properties": { "auth_config_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "Optional MCPAuthConfig UUID for OAuth2 token rotation. When set, tokens are minted/refreshed on the connection's behalf.", "title": "Auth Config Id" }, "base_url": { "description": "Base URL for API requests, e.g. 'https://api.example.com'. The path may hold '{name}' placeholders filled from url_variables, e.g. 'https://api.telegram.org/bot{token}'.", "maxLength": 500, "title": "Base Url", "type": "string" }, "custom_headers": { "anyOf": [ { "items": { "$ref": "#/components/schemas/HeaderInput" }, "type": "array" }, { "type": "null" } ], "description": "Custom HTTP headers attached to every request. Non-safe headers (e.g. Authorization) are stored encrypted in the secret manager.", "title": "Custom Headers" }, "custom_query_params": { "anyOf": [ { "items": { "$ref": "#/components/schemas/QueryParamInput" }, "type": "array" }, { "type": "null" } ], "description": "Query parameters attached to every request, e.g. an API key the upstream takes as '?api_key='. Secret values are stored encrypted in the secret manager.", "title": "Custom Query Params" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Optional human-readable summary of what this API exposes.", "title": "Description" }, "name": { "description": "Display name for the connection (unique per workspace).", "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" }, "spec_content": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "Inline OpenAPI 3.x spec as a JSON object. Use instead of ``spec_url`` when the spec host is unreachable from the API.", "title": "Spec Content" }, "spec_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "URL to an OpenAPI 3.x JSON or YAML spec. The spec is fetched and parsed eagerly at create time so the connection is ready for use.", "title": "Spec Url" }, "url_variables": { "anyOf": [ { "items": { "$ref": "#/components/schemas/UrlVariableInput" }, "type": "array" }, { "type": "null" } ], "description": "Secret values for the '{name}' placeholders in the base URL path, one per placeholder. Stored encrypted in the secret manager.", "title": "Url Variables" } }, "required": [ "name", "base_url" ], "title": "OpenAPIConnectionCreate", "type": "object" }, "OpenAPIConnectionResponse": { "properties": { "auth_config_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Auth Config Id" }, "available_tools": { "items": { "$ref": "#/components/schemas/OpenAPIToolResponse" }, "title": "Available Tools", "type": "array" }, "base_url": { "title": "Base Url", "type": "string" }, "cost": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Cost" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "custom_headers": { "anyOf": [ { "items": { "$ref": "#/components/schemas/HeaderOutput" }, "type": "array" }, { "type": "null" } ], "title": "Custom Headers" }, "custom_query_params": { "anyOf": [ { "items": { "$ref": "#/components/schemas/QueryParamOutput" }, "type": "array" }, { "type": "null" } ], "title": "Custom Query Params" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "last_dispatch": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Last Dispatch" }, "managed_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Managed By" }, "name": { "title": "Name", "type": "string" }, "registry_item_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Registry Item Id" }, "spec_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Spec Url" }, "status": { "title": "Status", "type": "string" }, "updated_at": { "format": "date-time", "title": "Updated At", "type": "string" }, "url_variables": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Url Variables" } }, "required": [ "id", "name", "base_url", "available_tools", "status", "created_at", "updated_at" ], "title": "OpenAPIConnectionResponse", "type": "object" }, "OpenAPIConnectionUpdate": { "additionalProperties": false, "description": "Patch payload for an OpenAPI connection. All fields optional \u2014 unset = unchanged.", "properties": { "auth_config_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "Optional MCPAuthConfig UUID for OAuth2 token rotation.", "title": "Auth Config Id" }, "base_url": { "anyOf": [ { "maxLength": 500, "type": "string" }, { "type": "null" } ], "title": "Base Url" }, "cost": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "What a call of this connection costs, set by a member on a connection the workspace pays for: a rate (per call or per unit), a field of the response, or free (wiki ADR-0038 \u00a72.3). It wins over the connector's declaration. Send null to go back to the connector's.", "title": "Cost" }, "custom_headers": { "anyOf": [ { "items": { "$ref": "#/components/schemas/HeaderInput" }, "type": "array" }, { "type": "null" } ], "description": "Replace the full custom-header set. Pass [] to clear all. Secret values are stored encrypted in the secret manager.", "title": "Custom Headers" }, "custom_query_params": { "anyOf": [ { "items": { "$ref": "#/components/schemas/QueryParamInput" }, "type": "array" }, { "type": "null" } ], "description": "Replace the full query-parameter set. Pass [] to clear all. An empty value for a secret parameter keeps the one already stored under that name.", "title": "Custom Query Params" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "name": { "anyOf": [ { "maxLength": 255, "minLength": 1, "type": "string" }, { "type": "null" } ], "title": "Name" }, "spec_content": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Spec Content" }, "spec_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Spec Url" }, "url_variables": { "anyOf": [ { "items": { "$ref": "#/components/schemas/UrlVariableInput" }, "type": "array" }, { "type": "null" } ], "description": "Replace the full URL-variable set; must match the base URL's placeholders. Pass [] to clear all. Values are stored encrypted.", "title": "Url Variables" } }, "title": "OpenAPIConnectionUpdate", "type": "object" }, "OpenAPIToolResponse": { "properties": { "description": { "title": "Description", "type": "string" }, "inputSchema": { "additionalProperties": true, "title": "Inputschema", "type": "object" }, "name": { "title": "Name", "type": "string" } }, "required": [ "name", "description", "inputSchema" ], "title": "OpenAPIToolResponse", "type": "object" }, "OpenApiToolConfig": { "properties": { "name": { "title": "Name", "type": "string" }, "settings": { "anyOf": [ { "$ref": "#/components/schemas/OpenApiToolSettings" }, { "type": "null" } ] }, "type": { "const": "openapi", "default": "openapi", "title": "Type", "type": "string" } }, "required": [ "name" ], "title": "OpenApiToolConfig", "type": "object" }, "OpenApiToolSettings": { "description": "Settings for an OpenAPI connection tool.\n\n``load_mode`` picks schema disclosure: \"explicit\" inlines every operation's\nschema into each LLM call (legacy); \"searchable\" defers them behind a\n``load_tools`` meta-tool. Honored only for openapi tools \u2014 which is exactly\nwhy it lives here and nowhere else.", "properties": { "allowed_tools": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Allowed Tools" }, "load_mode": { "anyOf": [ { "enum": [ "explicit", "searchable" ], "type": "string" }, { "type": "null" } ], "title": "Load Mode" }, "openapi_connection_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Openapi Connection Id" }, "requires_user_confirmation": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Requires User Confirmation" } }, "title": "OpenApiToolSettings", "type": "object" }, "OutcomeResponse": { "properties": { "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "derived_event_ids": { "description": "Events a forward wrote into its output streams, in output-stream order.", "items": { "format": "uuid", "type": "string" }, "title": "Derived Event Ids", "type": "array" }, "event_id": { "format": "uuid", "title": "Event Id", "type": "string" }, "reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reason" }, "score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Score" }, "subscription_id": { "format": "uuid", "title": "Subscription Id", "type": "string" }, "subscription_kind": { "title": "Subscription Kind", "type": "string" }, "task_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Task Id" }, "trigger_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Trigger Id" }, "verdict": { "description": "reacted, skipped, error, or batched while it waits in an open batch", "title": "Verdict", "type": "string" } }, "required": [ "subscription_id", "subscription_kind", "trigger_id", "event_id", "verdict", "reason", "score", "task_id", "derived_event_ids", "created_at" ], "title": "OutcomeResponse", "type": "object" }, "PaginatedPaymentsResponse": { "properties": { "items": { "items": { "$ref": "#/components/schemas/PaymentRecordResponse" }, "title": "Items", "type": "array" }, "page": { "title": "Page", "type": "integer" }, "page_size": { "title": "Page Size", "type": "integer" }, "total": { "title": "Total", "type": "integer" } }, "required": [ "items", "total", "page", "page_size" ], "title": "PaginatedPaymentsResponse", "type": "object" }, "PaginatedResponse_MCPServerResponse_": { "properties": { "has_next": { "title": "Has Next", "type": "boolean" }, "items": { "items": { "$ref": "#/components/schemas/MCPServerResponse" }, "title": "Items", "type": "array" }, "page": { "title": "Page", "type": "integer" }, "page_size": { "title": "Page Size", "type": "integer" }, "total": { "title": "Total", "type": "integer" } }, "required": [ "items", "total", "page", "page_size", "has_next" ], "title": "PaginatedResponse[MCPServerResponse]", "type": "object" }, "PaginatedResponse_SkillResponse_": { "properties": { "has_next": { "title": "Has Next", "type": "boolean" }, "items": { "items": { "$ref": "#/components/schemas/SkillResponse" }, "title": "Items", "type": "array" }, "page": { "title": "Page", "type": "integer" }, "page_size": { "title": "Page Size", "type": "integer" }, "total": { "title": "Total", "type": "integer" } }, "required": [ "items", "total", "page", "page_size", "has_next" ], "title": "PaginatedResponse[SkillResponse]", "type": "object" }, "PaymentRecordResponse": { "properties": { "agent_id": { "title": "Agent Id", "type": "string" }, "amount_usd": { "title": "Amount Usd", "type": "string" }, "created_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Created At" }, "error_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Message" }, "execution_id": { "title": "Execution Id", "type": "string" }, "id": { "title": "Id", "type": "string" }, "protocol": { "title": "Protocol", "type": "string" }, "protocol_metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Protocol Metadata" }, "recipient": { "title": "Recipient", "type": "string" }, "status": { "title": "Status", "type": "string" }, "tool_call_id": { "title": "Tool Call Id", "type": "string" }, "tool_name": { "title": "Tool Name", "type": "string" }, "tx_hash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tx Hash" } }, "required": [ "id", "agent_id", "execution_id", "protocol", "amount_usd", "recipient", "tool_name", "tool_call_id", "status" ], "title": "PaymentRecordResponse", "type": "object" }, "PendingEscalationResponse": { "properties": { "escalation_id": { "title": "Escalation Id", "type": "string" }, "tool_args": { "additionalProperties": true, "title": "Tool Args", "type": "object" }, "tool_call_id": { "title": "Tool Call Id", "type": "string" }, "tool_name": { "title": "Tool Name", "type": "string" } }, "required": [ "escalation_id", "tool_name", "tool_call_id", "tool_args" ], "title": "PendingEscalationResponse", "type": "object" }, "PlannedUpload": { "properties": { "error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error" }, "expires_in": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expires In" }, "headers": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Headers" }, "method": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Method" }, "path": { "title": "Path", "type": "string" }, "status": { "enum": [ "unchanged", "upload", "error" ], "title": "Status", "type": "string" }, "upload_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Upload Url" } }, "required": [ "path", "status" ], "title": "PlannedUpload", "type": "object" }, "PlatformToolsetAssociationBody": { "description": "Attach a platform toolset, or replace the methods an attached one leaves out.", "properties": { "disabled_methods": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Disabled Methods" }, "name": { "title": "Name", "type": "string" } }, "required": [ "name" ], "title": "PlatformToolsetAssociationBody", "type": "object" }, "PlatformToolsetMethod": { "properties": { "description": { "title": "Description", "type": "string" }, "display_name": { "title": "Display Name", "type": "string" }, "effect": { "anyOf": [ { "enum": [ "read", "write", "destructive", "privileged" ], "type": "string" }, { "type": "null" } ], "title": "Effect" }, "name": { "title": "Name", "type": "string" } }, "required": [ "name", "display_name", "description" ], "title": "PlatformToolsetMethod", "type": "object" }, "PlatformToolsetResponse": { "description": "A platform toolset a client can carry.", "properties": { "description": { "title": "Description", "type": "string" }, "display_name": { "title": "Display Name", "type": "string" }, "methods": { "items": { "$ref": "#/components/schemas/PlatformToolsetMethod" }, "title": "Methods", "type": "array" }, "name": { "title": "Name", "type": "string" } }, "required": [ "name", "display_name", "description", "methods" ], "title": "PlatformToolsetResponse", "type": "object" }, "PolicyDocument": { "additionalProperties": false, "description": "Source policy document stored per scope.", "properties": { "approval": { "anyOf": [ { "$ref": "#/components/schemas/ApprovalPolicy" }, { "type": "null" } ] }, "budget": { "anyOf": [ { "$ref": "#/components/schemas/BudgetPolicy-Input" }, { "type": "null" } ] }, "content_safety": { "anyOf": [ { "$ref": "#/components/schemas/ContentSafetyPolicy" }, { "type": "null" } ] }, "execution": { "anyOf": [ { "$ref": "#/components/schemas/ExecutionLimitsPolicy" }, { "type": "null" } ] }, "tokens": { "anyOf": [ { "$ref": "#/components/schemas/TokenPolicy" }, { "type": "null" } ] }, "tools": { "anyOf": [ { "$ref": "#/components/schemas/ToolsPolicy" }, { "type": "null" } ] } }, "title": "PolicyDocument", "type": "object" }, "PolicyEffect": { "description": "What a rule does when it applies.", "enum": [ "allow", "deny", "cap", "approval", "safety", "egress" ], "title": "PolicyEffect", "type": "string" }, "PolicyRuleCreateRequest": { "additionalProperties": false, "description": "Request body for creating a policy rule.", "properties": { "condition": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Condition" }, "effect": { "$ref": "#/components/schemas/PolicyEffect" }, "enabled": { "default": true, "title": "Enabled", "type": "boolean" }, "params": { "additionalProperties": true, "title": "Params", "type": "object" }, "priority": { "default": 0, "maximum": 2147483647.0, "minimum": -2147483648.0, "title": "Priority", "type": "integer" }, "subject_id": { "title": "Subject Id", "type": "string" }, "subject_type": { "$ref": "#/components/schemas/PolicySubjectType" }, "target": { "title": "Target", "type": "string" } }, "required": [ "subject_type", "subject_id", "target", "effect" ], "title": "PolicyRuleCreateRequest", "type": "object" }, "PolicyRuleResponse": { "description": "Serialized policy rule returned to clients.", "properties": { "condition": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Condition" }, "effect": { "$ref": "#/components/schemas/PolicyEffect" }, "enabled": { "title": "Enabled", "type": "boolean" }, "id": { "title": "Id", "type": "string" }, "params": { "additionalProperties": true, "title": "Params", "type": "object" }, "priority": { "title": "Priority", "type": "integer" }, "subject_id": { "title": "Subject Id", "type": "string" }, "subject_type": { "$ref": "#/components/schemas/PolicySubjectType" }, "target": { "title": "Target", "type": "string" } }, "required": [ "id", "enabled", "priority", "subject_type", "subject_id", "target", "effect", "params" ], "title": "PolicyRuleResponse", "type": "object" }, "PolicyRuleUpdateRequest": { "additionalProperties": false, "description": "Request body for partially updating a policy rule.", "properties": { "condition": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Condition" }, "effect": { "anyOf": [ { "$ref": "#/components/schemas/PolicyEffect" }, { "type": "null" } ] }, "enabled": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Enabled" }, "params": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Params" }, "priority": { "anyOf": [ { "maximum": 2147483647.0, "minimum": -2147483648.0, "type": "integer" }, { "type": "null" } ], "title": "Priority" }, "subject_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Subject Id" }, "subject_type": { "anyOf": [ { "$ref": "#/components/schemas/PolicySubjectType" }, { "type": "null" } ] }, "target": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Target" } }, "title": "PolicyRuleUpdateRequest", "type": "object" }, "PolicySubjectType": { "description": "The kind of subject a rule binds to.", "enum": [ "workspace", "agent", "user", "group" ], "title": "PolicySubjectType", "type": "string" }, "PresetSkillResponse": { "description": "A catalog skill a preset attaches; attaching it installs it into the workspace.", "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "id": { "title": "Id", "type": "string" }, "name": { "title": "Name", "type": "string" } }, "required": [ "id", "name" ], "title": "PresetSkillResponse", "type": "object" }, "PresignUploadRequest": { "additionalProperties": false, "properties": { "content_type": { "minLength": 1, "title": "Content Type", "type": "string" }, "filename": { "minLength": 1, "title": "Filename", "type": "string" }, "sha256": { "title": "Sha256", "type": "string" }, "size": { "title": "Size", "type": "integer" } }, "required": [ "filename", "content_type", "sha256", "size" ], "title": "PresignUploadRequest", "type": "object" }, "PresignUploadResponse": { "properties": { "expires_in": { "title": "Expires In", "type": "integer" }, "ref": { "title": "Ref", "type": "string" }, "upload_url": { "title": "Upload Url", "type": "string" } }, "required": [ "ref", "upload_url", "expires_in" ], "title": "PresignUploadResponse", "type": "object" }, "PreviewEntity": { "additionalProperties": false, "description": "One thing the package will (or won't) create.", "properties": { "detail": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Detail" }, "key": { "title": "Key", "type": "string" }, "kind": { "$ref": "#/components/schemas/EntityKind" }, "name": { "title": "Name", "type": "string" }, "status": { "$ref": "#/components/schemas/EntityStatus" } }, "required": [ "kind", "key", "name", "status" ], "title": "PreviewEntity", "type": "object" }, "PreviewIssue": { "additionalProperties": false, "description": "A problem found while analyzing the package.", "properties": { "entity_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Entity Key" }, "message": { "title": "Message", "type": "string" }, "severity": { "$ref": "#/components/schemas/IssueSeverity" } }, "required": [ "severity", "message" ], "title": "PreviewIssue", "type": "object" }, "PricingCurrencyResponse": { "properties": { "currency": { "title": "Currency", "type": "string" } }, "required": [ "currency" ], "title": "PricingCurrencyResponse", "type": "object" }, "PrincipalResponse": { "properties": { "display_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Display Name" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email" }, "id": { "title": "Id", "type": "string" }, "type": { "$ref": "#/components/schemas/PrincipalType" } }, "required": [ "id", "type" ], "title": "PrincipalResponse", "type": "object" }, "PrincipalType": { "description": "What kind of thing an id refers to.", "enum": [ "user", "agent", "platform" ], "title": "PrincipalType", "type": "string" }, "Processing": { "properties": { "errors": { "title": "Errors", "type": "integer" }, "reacted": { "description": "Subscriptions whose reaction is recorded.", "title": "Reacted", "type": "integer" }, "skipped": { "title": "Skipped", "type": "integer" }, "status": { "$ref": "#/components/schemas/ProcessingStatus" }, "subscribers": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "description": "Subscriptions the router matched; null until it routed the event.", "title": "Subscribers" }, "tasks": { "items": { "$ref": "#/components/schemas/ProcessingTask" }, "title": "Tasks", "type": "array" } }, "required": [ "status", "subscribers", "reacted", "skipped", "errors" ], "title": "Processing", "type": "object" }, "ProcessingStatus": { "enum": [ "queued", "processing", "handled", "error", "no_handlers", "skipped" ], "title": "ProcessingStatus", "type": "string" }, "ProcessingTask": { "properties": { "id": { "format": "uuid", "title": "Id", "type": "string" }, "status": { "title": "Status", "type": "string" } }, "required": [ "id", "status" ], "title": "ProcessingTask", "type": "object" }, "ProcessorCreate": { "additionalProperties": false, "properties": { "code": { "description": "Python defining def process(event: dict) -> list[dict] | None. Each returned dict is {stream, kind, data, key?}: stream is an output stream's id or name, kind the new event's kind, data its body. Return None or [] to write nothing. No secrets: the code gets none and every reader of the stream sees it.", "minLength": 1, "title": "Code", "type": "string" }, "event_filter": { "$ref": "#/components/schemas/EventFilter", "description": "Which events the code runs on; empty runs it on every event." }, "output_stream_ids": { "description": "Streams the code may write to; never the input.", "items": { "format": "uuid", "type": "string" }, "minItems": 1, "title": "Output Stream Ids", "type": "array" } }, "required": [ "output_stream_ids", "code" ], "title": "ProcessorCreate", "type": "object" }, "ProcessorUpdate": { "additionalProperties": false, "properties": { "code": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "description": "Python defining def process(event: dict) -> list[dict] | None. Each returned dict is {stream, kind, data, key?}: stream is an output stream's id or name, kind the new event's kind, data its body. Return None or [] to write nothing. No secrets: the code gets none and every reader of the stream sees it.", "title": "Code" }, "event_filter": { "anyOf": [ { "$ref": "#/components/schemas/EventFilter" }, { "type": "null" } ], "description": "New filter; null keeps it." }, "output_stream_ids": { "anyOf": [ { "items": { "format": "uuid", "type": "string" }, "minItems": 1, "type": "array" }, { "type": "null" } ], "description": "New output streams; null keeps them.", "title": "Output Stream Ids" } }, "title": "ProcessorUpdate", "type": "object" }, "ProjectAgentRef": { "properties": { "id": { "format": "uuid", "title": "Id", "type": "string" }, "name": { "title": "Name", "type": "string" } }, "required": [ "id", "name" ], "title": "ProjectAgentRef", "type": "object" }, "ProjectCreate": { "additionalProperties": false, "description": "Payload for creating a project.\n\nA project is a workspace-scoped container that groups skills, agents,\nMCP server instances, and uploaded files under a shared identity and\noptional parent project.", "properties": { "description": { "anyOf": [ { "maxLength": 1000, "type": "string" }, { "type": "null" } ], "description": "Short summary of the project's purpose.", "title": "Description" }, "instructions": { "anyOf": [ { "maxLength": 20000, "type": "string" }, { "type": "null" } ], "description": "System-level instructions or notes shared across the project's agents.", "title": "Instructions" }, "name": { "description": "Human-readable project name (unique per workspace).", "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" }, "parent_project_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "UUID of the parent project, if this is a sub-project.", "title": "Parent Project Id" } }, "required": [ "name" ], "title": "ProjectCreate", "type": "object" }, "ProjectFileDownloadResponse": { "properties": { "path": { "title": "Path", "type": "string" }, "url": { "title": "Url", "type": "string" } }, "required": [ "url", "path" ], "title": "ProjectFileDownloadResponse", "type": "object" }, "ProjectFileInfo": { "properties": { "last_modified": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Modified" }, "path": { "title": "Path", "type": "string" }, "size": { "title": "Size", "type": "integer" } }, "required": [ "path", "size" ], "title": "ProjectFileInfo", "type": "object" }, "ProjectFileListResponse": { "properties": { "files": { "items": { "$ref": "#/components/schemas/ProjectFileInfo" }, "title": "Files", "type": "array" } }, "required": [ "files" ], "title": "ProjectFileListResponse", "type": "object" }, "ProjectMcpInstanceRef": { "properties": { "id": { "format": "uuid", "title": "Id", "type": "string" }, "name": { "title": "Name", "type": "string" } }, "required": [ "id", "name" ], "title": "ProjectMcpInstanceRef", "type": "object" }, "ProjectResponse": { "properties": { "agents": { "default": [], "items": { "$ref": "#/components/schemas/ProjectAgentRef" }, "title": "Agents", "type": "array" }, "created_by": { "title": "Created By", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "instructions": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Instructions" }, "mcp_instances": { "default": [], "items": { "$ref": "#/components/schemas/ProjectMcpInstanceRef" }, "title": "Mcp Instances", "type": "array" }, "name": { "title": "Name", "type": "string" }, "parent_project_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Parent Project Id" }, "skills": { "default": [], "items": { "$ref": "#/components/schemas/ProjectSkillRef" }, "title": "Skills", "type": "array" }, "workspace_id": { "title": "Workspace Id", "type": "string" } }, "required": [ "id", "workspace_id", "created_by", "name", "description", "instructions", "parent_project_id" ], "title": "ProjectResponse", "type": "object" }, "ProjectSkillRef": { "properties": { "id": { "format": "uuid", "title": "Id", "type": "string" }, "name": { "title": "Name", "type": "string" } }, "required": [ "id", "name" ], "title": "ProjectSkillRef", "type": "object" }, "ProjectUpdate": { "additionalProperties": false, "description": "Patch payload for a project. All fields optional \u2014 unset = unchanged.", "properties": { "description": { "anyOf": [ { "maxLength": 1000, "type": "string" }, { "type": "null" } ], "description": "New project description.", "title": "Description" }, "instructions": { "anyOf": [ { "maxLength": 20000, "type": "string" }, { "type": "null" } ], "description": "New project-level instructions.", "title": "Instructions" }, "name": { "description": "New project name.", "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" }, "parent_project_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "New parent project UUID, or null to detach.", "title": "Parent Project Id" } }, "title": "ProjectUpdate", "type": "object" }, "ProviderConfigCreate": { "additionalProperties": false, "description": "Payload for creating an LLM provider configuration.", "properties": { "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Secret API key for the provider. Stored encrypted in the secret manager; never returned in responses. May be empty for proxies that accept keyless traffic \u2014 the backend suppresses the Authorization header when this is empty.", "title": "Api Key" }, "api_key_secret_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "Use an existing workspace secret as the API key instead of supplying one here. Mutually exclusive with api_key. The secret keeps its own lifecycle: several configurations may share it, and it cannot be deleted while any of them still points at it.", "title": "Api Key Secret Id" }, "description": { "anyOf": [ { "maxLength": 1000, "type": "string" }, { "type": "null" } ], "description": "Optional human-readable description of this configuration.", "title": "Description" }, "endpoint_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Optional custom endpoint URL (e.g. for self-hosted or proxied providers). Leave unset to use the provider's default.", "title": "Endpoint Url" }, "is_public": { "default": false, "description": "If True, the configuration is visible to all workspace members; otherwise it is scoped to the creator.", "title": "Is Public", "type": "boolean" }, "name": { "description": "Human-readable label for this provider configuration.", "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" }, "provider_spec_id": { "description": "UUID of the provider specification (e.g. OpenAI, Anthropic) this configuration targets. Look up via list_specs.", "format": "uuid", "title": "Provider Spec Id", "type": "string" } }, "required": [ "provider_spec_id", "name" ], "title": "ProviderConfigCreate", "type": "object" }, "ProviderConfigResponse": { "properties": { "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "created_by": { "title": "Created By", "type": "string" }, "endpoint_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Endpoint Url" }, "id": { "title": "Id", "type": "string" }, "is_active": { "title": "Is Active", "type": "boolean" }, "is_public": { "title": "Is Public", "type": "boolean" }, "managed_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Managed By" }, "model_instance_ids": { "default": [], "items": { "type": "string" }, "title": "Model Instance Ids", "type": "array" }, "name": { "title": "Name", "type": "string" }, "provider_spec_id": { "title": "Provider Spec Id", "type": "string" }, "provider_spec_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider Spec Key" }, "provider_spec_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider Spec Name" }, "requires_api_key": { "default": true, "title": "Requires Api Key", "type": "boolean" }, "updated_at": { "format": "date-time", "title": "Updated At", "type": "string" }, "workspace_id": { "title": "Workspace Id", "type": "string" } }, "required": [ "id", "provider_spec_id", "name", "endpoint_url", "workspace_id", "created_by", "is_active", "is_public", "created_at", "updated_at" ], "title": "ProviderConfigResponse", "type": "object" }, "ProviderConfigUpdate": { "additionalProperties": false, "description": "Patch payload for an existing provider configuration. Unset = unchanged.", "properties": { "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "New API key. Replaces the previously stored secret. Send an empty string to clear the key for keyless custom endpoints.", "title": "Api Key" }, "api_key_secret_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "Point this configuration at an existing workspace secret instead. Mutually exclusive with api_key.", "title": "Api Key Secret Id" }, "description": { "anyOf": [ { "maxLength": 1000, "type": "string" }, { "type": "null" } ], "description": "New description for the configuration.", "title": "Description" }, "endpoint_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "New endpoint URL, or empty string to clear.", "title": "Endpoint Url" }, "is_active": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "Activate or deactivate the configuration.", "title": "Is Active" }, "is_public": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "Toggle workspace-wide visibility.", "title": "Is Public" }, "name": { "anyOf": [ { "maxLength": 255, "minLength": 1, "type": "string" }, { "type": "null" } ], "description": "New human-readable label for the configuration.", "title": "Name" } }, "title": "ProviderConfigUpdate", "type": "object" }, "ProviderSpecResponse": { "properties": { "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "icon": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Icon" }, "icon_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Icon Url" }, "id": { "title": "Id", "type": "string" }, "is_builtin": { "title": "Is Builtin", "type": "boolean" }, "name": { "title": "Name", "type": "string" }, "provider_key": { "title": "Provider Key", "type": "string" }, "provider_type": { "title": "Provider Type", "type": "string" }, "updated_at": { "format": "date-time", "title": "Updated At", "type": "string" } }, "required": [ "id", "provider_key", "name", "description", "provider_type", "icon", "icon_url", "is_builtin", "created_at", "updated_at" ], "title": "ProviderSpecResponse", "type": "object" }, "ProviderSpecWithModelsResponse": { "properties": { "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "icon": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Icon" }, "icon_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Icon Url" }, "id": { "title": "Id", "type": "string" }, "is_builtin": { "title": "Is Builtin", "type": "boolean" }, "models": { "items": { "$ref": "#/components/schemas/agentarea_api__api__v1__provider_specs__ModelSpecResponse" }, "title": "Models", "type": "array" }, "name": { "title": "Name", "type": "string" }, "provider_key": { "title": "Provider Key", "type": "string" }, "provider_type": { "title": "Provider Type", "type": "string" }, "updated_at": { "format": "date-time", "title": "Updated At", "type": "string" } }, "required": [ "id", "provider_key", "name", "description", "provider_type", "icon", "icon_url", "is_builtin", "created_at", "updated_at", "models" ], "title": "ProviderSpecWithModelsResponse", "type": "object" }, "QueryParamInput": { "additionalProperties": false, "description": "One query parameter sent with every request of an OpenAPI connection.\n\nA secret value (an API key the upstream takes as ``?api_key=``) is stored\nencrypted in the secret manager and never returned. A configured parameter\nwins over a same-named one the agent passes.", "properties": { "name": { "description": "Query parameter name. Allowed characters: letters, digits, '-', '_', '.', '[', ']'.", "maxLength": 256, "minLength": 1, "title": "Name", "type": "string" }, "secret": { "default": true, "description": "Store the value encrypted and never return it. Set false for plain values.", "title": "Secret", "type": "boolean" }, "value": { "default": "", "description": "Parameter value, URL-encoded when sent. On update, an empty value for a secret parameter keeps the value already stored under that name.", "maxLength": 8192, "title": "Value", "type": "string" } }, "required": [ "name" ], "title": "QueryParamInput", "type": "object" }, "QueryParamOutput": { "description": "Query parameter metadata returned in API responses (secret values are masked).", "properties": { "name": { "title": "Name", "type": "string" }, "secret": { "title": "Secret", "type": "boolean" }, "value": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Value" } }, "required": [ "name", "secret" ], "title": "QueryParamOutput", "type": "object" }, "RegistryCreate": { "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "mode": { "default": "mirror", "description": "'mirror' copies content at sync; 'upstream' keeps only the index", "enum": [ "mirror", "upstream" ], "title": "Mode", "type": "string" }, "name": { "description": "Human-readable registry name", "title": "Name", "type": "string" }, "recommendation_priority": { "anyOf": [ { "minimum": 0.0, "type": "integer" }, { "type": "null" } ], "description": "Ordering weight for the 'recommended' catalog sort; lower comes first. Keeps a curated system catalog ahead of a bulk/community mirror. Omit to take the platform default.", "title": "Recommendation Priority" }, "registry_type": { "description": "Catalog entity type: one of ('mcp_servers', 'skills', 'llm_providers', 'llm_models', 'agents', 'bundles', 'source_types')", "title": "Registry Type", "type": "string" }, "source_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "GitHub sources: the folder whose skill folders are indexed", "title": "Source Path" }, "source_ref": { "anyOf": [ { "maxLength": 255, "type": "string" }, { "type": "null" } ], "description": "GitHub sources: branch, tag or commit to read", "title": "Source Ref" }, "source_type": { "description": "Source mode: 'url', 'github', 'api', or platform-managed 'managed'", "title": "Source Type", "type": "string" }, "source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Registry source URL; omitted when source_type is 'managed'", "title": "Source Url" }, "trust": { "default": "official", "description": "Trust label on every catalog card", "enum": [ "official", "verified", "community", "private" ], "title": "Trust", "type": "string" } }, "required": [ "name", "registry_type", "source_type" ], "title": "RegistryCreate", "type": "object" }, "RegistryItemResponse": { "properties": { "category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Category" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "external_id": { "title": "External Id", "type": "string" }, "featured": { "default": false, "title": "Featured", "type": "boolean" }, "hosting": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Hosting" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "installed_entity_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Installed Entity Id" }, "installed_version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Installed Version" }, "name": { "title": "Name", "type": "string" }, "pricing": { "anyOf": [ { "$ref": "#/components/schemas/CatalogItemPricingResponse" }, { "type": "null" } ] }, "registry_id": { "format": "uuid", "title": "Registry Id", "type": "string" }, "registry_mode": { "anyOf": [ { "enum": [ "mirror", "upstream" ], "type": "string" }, { "type": "null" } ], "title": "Registry Mode" }, "registry_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Registry Name" }, "registry_scope": { "anyOf": [ { "enum": [ "platform", "workspace" ], "type": "string" }, { "type": "null" } ], "title": "Registry Scope" }, "registry_trust": { "enum": [ "official", "verified", "community", "private" ], "title": "Registry Trust", "type": "string" }, "spec": { "additionalProperties": true, "title": "Spec", "type": "object" }, "tags": { "items": { "type": "string" }, "title": "Tags", "type": "array" }, "update_available": { "title": "Update Available", "type": "boolean" }, "updated_at": { "format": "date-time", "title": "Updated At", "type": "string" }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Version" }, "workspace_connections": { "anyOf": [ { "items": { "$ref": "#/components/schemas/CatalogConnection" }, "type": "array" }, { "type": "null" } ], "title": "Workspace Connections" } }, "required": [ "id", "registry_id", "external_id", "name", "description", "version", "spec", "tags", "installed_entity_id", "update_available", "installed_version", "registry_trust", "created_at", "updated_at" ], "title": "RegistryItemResponse", "type": "object" }, "RegistryResponse": { "properties": { "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "credentials_secret_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Credentials Secret Id" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "is_active": { "title": "Is Active", "type": "boolean" }, "item_count": { "title": "Item Count", "type": "integer" }, "last_sync_error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Sync Error" }, "last_synced_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Last Synced At" }, "mode": { "enum": [ "mirror", "upstream" ], "title": "Mode", "type": "string" }, "name": { "title": "Name", "type": "string" }, "recommendation_priority": { "title": "Recommendation Priority", "type": "integer" }, "registry_type": { "title": "Registry Type", "type": "string" }, "scope": { "enum": [ "platform", "workspace" ], "title": "Scope", "type": "string" }, "source_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Path" }, "source_ref": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Ref" }, "source_type": { "title": "Source Type", "type": "string" }, "source_url": { "title": "Source Url", "type": "string" }, "trust": { "enum": [ "official", "verified", "community", "private" ], "title": "Trust", "type": "string" }, "updated_at": { "format": "date-time", "title": "Updated At", "type": "string" }, "workspace_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Workspace Id" } }, "required": [ "id", "name", "description", "registry_type", "source_type", "source_url", "is_active", "scope", "mode", "trust", "last_synced_at", "last_sync_error", "item_count", "recommendation_priority", "created_at", "updated_at" ], "title": "RegistryResponse", "type": "object" }, "RegistryUpdate": { "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "is_active": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Active" }, "mode": { "anyOf": [ { "enum": [ "mirror", "upstream" ], "type": "string" }, { "type": "null" } ], "title": "Mode" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "recommendation_priority": { "anyOf": [ { "minimum": 0.0, "type": "integer" }, { "type": "null" } ], "title": "Recommendation Priority" }, "source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Url" }, "trust": { "anyOf": [ { "enum": [ "official", "verified", "community", "private" ], "type": "string" }, { "type": "null" } ], "title": "Trust" } }, "title": "RegistryUpdate", "type": "object" }, "RelationshipItem": { "properties": { "direct": { "title": "Direct", "type": "boolean" }, "fanout": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Fanout" }, "namespace": { "title": "Namespace", "type": "string" }, "object": { "title": "Object", "type": "string" }, "object_name": { "title": "Object Name", "type": "string" }, "relation": { "title": "Relation", "type": "string" }, "subject": { "title": "Subject", "type": "string" }, "subject_kind": { "enum": [ "agent", "user", "workspace" ], "title": "Subject Kind", "type": "string" }, "subject_name": { "title": "Subject Name", "type": "string" } }, "required": [ "namespace", "object", "object_name", "relation", "subject", "subject_kind", "subject_name", "direct" ], "title": "RelationshipItem", "type": "object" }, "RelationshipWriteRequest": { "properties": { "namespace": { "title": "Namespace", "type": "string" }, "object": { "title": "Object", "type": "string" }, "relation": { "title": "Relation", "type": "string" }, "subject_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Subject Id" }, "subject_set": { "anyOf": [ { "$ref": "#/components/schemas/SubjectSetBody" }, { "type": "null" } ] } }, "required": [ "namespace", "object", "relation" ], "title": "RelationshipWriteRequest", "type": "object" }, "RelationshipsResponse": { "properties": { "count": { "title": "Count", "type": "integer" }, "relationships": { "items": { "$ref": "#/components/schemas/RelationshipItem" }, "title": "Relationships", "type": "array" } }, "required": [ "relationships", "count" ], "title": "RelationshipsResponse", "type": "object" }, "ResolveHop": { "properties": { "color": { "title": "Color", "type": "string" }, "id": { "title": "Id", "type": "string" }, "kind": { "title": "Kind", "type": "string" }, "name": { "title": "Name", "type": "string" } }, "required": [ "id", "name", "kind", "color" ], "title": "ResolveHop", "type": "object" }, "ResolvePath": { "properties": { "hops": { "items": { "$ref": "#/components/schemas/ResolveHop" }, "title": "Hops", "type": "array" }, "relation": { "title": "Relation", "type": "string" }, "rels": { "items": { "type": "string" }, "title": "Rels", "type": "array" } }, "required": [ "relation", "hops", "rels" ], "title": "ResolvePath", "type": "object" }, "ResolveRequest": { "properties": { "resource_id": { "title": "Resource Id", "type": "string" }, "resource_kind": { "enum": [ "skill", "collection", "mcp", "agent" ], "title": "Resource Kind", "type": "string" }, "subject_id": { "title": "Subject Id", "type": "string" } }, "required": [ "subject_id", "resource_kind", "resource_id" ], "title": "ResolveRequest", "type": "object" }, "ResolveResponse": { "properties": { "allowed": { "title": "Allowed", "type": "boolean" }, "effective_relation": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Effective Relation" }, "paths": { "items": { "$ref": "#/components/schemas/ResolvePath" }, "title": "Paths", "type": "array" }, "verb": { "title": "Verb", "type": "string" } }, "required": [ "allowed", "effective_relation", "verb", "paths" ], "title": "ResolveResponse", "type": "object" }, "RestoredFileResponse": { "properties": { "archived_current": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Trash path of the file that occupied `path` and was archived to make room for the restore; null when the path was free.", "title": "Archived Current" }, "path": { "title": "Path", "type": "string" }, "restored_from": { "title": "Restored From", "type": "string" } }, "required": [ "path", "restored_from" ], "title": "RestoredFileResponse", "type": "object" }, "RunExecutionConfig": { "additionalProperties": false, "description": "Caller-requested execution ceiling; governance may only tighten it.", "properties": { "max_model_turns": { "description": "Maximum LLM/model turns requested for this run.", "exclusiveMinimum": 0.0, "title": "Max Model Turns", "type": "integer" } }, "required": [ "max_model_turns" ], "title": "RunExecutionConfig", "type": "object" }, "SandboxFileItem": { "properties": { "path": { "title": "Path", "type": "string" } }, "required": [ "path" ], "title": "SandboxFileItem", "type": "object" }, "SandboxFileListResponse": { "properties": { "items": { "items": { "$ref": "#/components/schemas/SandboxFileItem" }, "title": "Items", "type": "array" }, "total": { "title": "Total", "type": "integer" } }, "required": [ "items", "total" ], "title": "SandboxFileListResponse", "type": "object" }, "SandboxListResponse": { "additionalProperties": false, "properties": { "items": { "items": { "$ref": "#/components/schemas/SandboxSummary" }, "title": "Items", "type": "array" }, "total": { "title": "Total", "type": "integer" } }, "required": [ "items", "total" ], "title": "SandboxListResponse", "type": "object" }, "SandboxResources": { "additionalProperties": false, "properties": { "cpu": { "title": "Cpu", "type": "string" }, "memory": { "title": "Memory", "type": "string" } }, "required": [ "cpu", "memory" ], "title": "SandboxResources", "type": "object" }, "SandboxSummary": { "additionalProperties": false, "properties": { "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "expires_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Expires At" }, "id": { "title": "Id", "type": "string" }, "isolation": { "title": "Isolation", "type": "string" }, "provider": { "title": "Provider", "type": "string" }, "resources": { "$ref": "#/components/schemas/SandboxResources" }, "state": { "title": "State", "type": "string" }, "task_id": { "title": "Task Id", "type": "string" } }, "required": [ "id", "provider", "task_id", "state", "created_at", "expires_at", "resources", "isolation" ], "title": "SandboxSummary", "type": "object" }, "Schedule": { "properties": { "frequent": { "items": { "$ref": "#/components/schemas/FrequentSchedule" }, "title": "Frequent", "type": "array" }, "horizon_days": { "title": "Horizon Days", "type": "integer" }, "runs": { "items": { "$ref": "#/components/schemas/ScheduledRun" }, "title": "Runs", "type": "array" } }, "required": [ "horizon_days", "runs", "frequent" ], "title": "Schedule", "type": "object" }, "ScheduleTaskCreate": { "description": "A task to run once, at a time the caller picks.", "properties": { "attachments": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Attachments" }, "description": { "title": "Description", "type": "string" }, "end_user_id": { "anyOf": [ { "maxLength": 256, "minLength": 1, "type": "string" }, { "type": "null" } ], "description": "The caller's own id for the end user this task runs for. Only API keys and service clients may set it.", "title": "End User Id" }, "execution": { "anyOf": [ { "$ref": "#/components/schemas/RunExecutionConfig" }, { "type": "null" } ] }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "Trusted task metadata for tool servers, e.g. {\"chatId\": \"...\"}. At most 4096 bytes of JSON. Only API keys and service clients may set it.", "title": "Metadata" }, "parameters": { "additionalProperties": true, "title": "Parameters", "type": "object" }, "project_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Project Id" }, "requires_human_approval": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "title": "Requires Human Approval" }, "scheduled_at": { "format": "date-time", "title": "Scheduled At", "type": "string" }, "task_policy": { "anyOf": [ { "$ref": "#/components/schemas/PolicyDocument" }, { "type": "null" } ] }, "webhook": { "anyOf": [ { "$ref": "#/components/schemas/TaskWebhook" }, { "type": "null" } ], "description": "POSTed on task.completed, task.failed and task.cancelled with the task's total_cost, tokens_used, end_user_id and metadata. Only API keys and service clients may set it." } }, "required": [ "description", "scheduled_at" ], "title": "ScheduleTaskCreate", "type": "object" }, "ScheduledRun": { "description": "One upcoming run: a cron trigger firing or a task booked for later.\n\nExactly one of `trigger_id` and `task_id` is set.", "properties": { "agent_id": { "format": "uuid", "title": "Agent Id", "type": "string" }, "agent_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Name" }, "fires_at": { "format": "date-time", "title": "Fires At", "type": "string" }, "task_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Task Id" }, "title": { "title": "Title", "type": "string" }, "trigger_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Trigger Id" } }, "required": [ "fires_at", "agent_id", "title" ], "title": "ScheduledRun", "type": "object" }, "ScopedSpendCap-Input": { "additionalProperties": false, "description": "A cap on part of the spend: one kind, client, connection or tool of a connection.\n\n``category`` counts only model (``llm``) or tool (``tools``) lines. ``period``\n``run`` sums the run's own lines; absent, the calendar month's. ``own_agent``\nnarrows it further to the calling agent's lines: the rule was bound to that\nagent. ``currency`` is the cap's currency, the billing currency when absent; it\nsums only lines in it. Absent fields are left out of the snapshot, so a cap\nthat sets none serializes as it did before they existed.", "properties": { "amount_usd": { "anyOf": [ { "minimum": 0.0, "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" } ], "title": "Amount Usd" }, "category": { "anyOf": [ { "enum": [ "llm", "tools" ], "type": "string" }, { "type": "null" } ], "title": "Category" }, "client_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Client Id" }, "connection_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Connection Id" }, "currency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Currency" }, "own_agent": { "default": false, "title": "Own Agent", "type": "boolean" }, "period": { "anyOf": [ { "const": "run", "type": "string" }, { "type": "null" } ], "title": "Period" }, "tool": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tool" } }, "required": [ "amount_usd" ], "title": "ScopedSpendCap", "type": "object" }, "ScopedSpendCap-Output": { "additionalProperties": false, "description": "A cap on part of the spend: one kind, client, connection or tool of a connection.\n\n``category`` counts only model (``llm``) or tool (``tools``) lines. ``period``\n``run`` sums the run's own lines; absent, the calendar month's. ``own_agent``\nnarrows it further to the calling agent's lines: the rule was bound to that\nagent. ``currency`` is the cap's currency, the billing currency when absent; it\nsums only lines in it. Absent fields are left out of the snapshot, so a cap\nthat sets none serializes as it did before they existed.", "properties": { "amount_usd": { "title": "Amount Usd", "type": "string" }, "category": { "anyOf": [ { "enum": [ "llm", "tools" ], "type": "string" }, { "type": "null" } ], "title": "Category" }, "client_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Client Id" }, "connection_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Connection Id" }, "currency": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Currency" }, "own_agent": { "default": false, "title": "Own Agent", "type": "boolean" }, "period": { "anyOf": [ { "const": "run", "type": "string" }, { "type": "null" } ], "title": "Period" }, "tool": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tool" } }, "required": [ "amount_usd" ], "title": "ScopedSpendCap", "type": "object" }, "SecretConsumer": { "properties": { "consumer_id": { "description": "Id of the using entity.", "title": "Consumer Id", "type": "string" }, "consumer_type": { "description": "Kind of thing using the secret, e.g. provider_config.", "title": "Consumer Type", "type": "string" }, "field": { "description": "Which slot on that entity \u2014 a header name, an env var.", "title": "Field", "type": "string" } }, "required": [ "consumer_type", "consumer_id", "field" ], "title": "SecretConsumer", "type": "object" }, "SecretCreate": { "additionalProperties": false, "properties": { "description": { "anyOf": [ { "maxLength": 1000, "type": "string" }, { "type": "null" } ], "title": "Description" }, "name": { "description": "2-64 characters: lowercase letters, digits, '-' and '_', starting and ending with a letter or digit. Prefixes the platform uses for its own secrets are rejected.", "title": "Name", "type": "string" }, "value": { "description": "Stored encrypted; never returned.", "minLength": 1, "title": "Value", "type": "string" } }, "required": [ "name", "value" ], "title": "SecretCreate", "type": "object" }, "SecretDescriptionUpdate": { "additionalProperties": false, "properties": { "description": { "anyOf": [ { "maxLength": 1000, "type": "string" }, { "type": "null" } ], "title": "Description" } }, "title": "SecretDescriptionUpdate", "type": "object" }, "SecretOwner": { "description": "The connection a managed secret belongs to.", "properties": { "field": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Which slot on the owner this fills \u2014 an env var, a header name.", "title": "Field" }, "id": { "description": "Its id, for deep-linking to it.", "title": "Id", "type": "string" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Its display name, or null when the owner no longer exists.", "title": "Name" }, "type": { "description": "Kind of owner, e.g. mcp_instance or provider_config.", "title": "Type", "type": "string" } }, "required": [ "type", "id" ], "title": "SecretOwner", "type": "object" }, "SecretRef": { "additionalProperties": false, "description": "A workspace secret named instead of its value; the value stays where it is.", "properties": { "secret_id": { "format": "uuid", "title": "Secret Id", "type": "string" } }, "required": [ "secret_id" ], "title": "SecretRef", "type": "object" }, "SecretResponse": { "description": "A secret's metadata. The value is never part of this.", "properties": { "created_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created At" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "name": { "description": "Unique within the workspace.", "title": "Name", "type": "string" }, "owner": { "anyOf": [ { "$ref": "#/components/schemas/SecretOwner" }, { "type": "null" } ], "description": "Set when a connection holds this secret on the user's behalf. Such a secret is read-only here and is changed through its owner." }, "updated_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Updated At" }, "used_by": { "items": { "$ref": "#/components/schemas/SecretConsumer" }, "title": "Used By", "type": "array" } }, "required": [ "id", "name" ], "title": "SecretResponse", "type": "object" }, "SecretValueUpdate": { "additionalProperties": false, "properties": { "value": { "description": "Replaces the stored value.", "minLength": 1, "title": "Value", "type": "string" } }, "required": [ "value" ], "title": "SecretValueUpdate", "type": "object" }, "SetupField": { "additionalProperties": false, "description": "A single value the user must provide before the package can run.\n\nThis is the generalized analogue of a Claude plugin ``userConfig`` entry\nand mirrors the existing MCP ``env_schema`` (KeyValueInput) shape.", "properties": { "default": { "anyOf": [ {}, { "type": "null" } ], "title": "Default" }, "help": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Help text shown beneath the field.", "title": "Help" }, "key": { "description": "Stable identifier referenced via ${setup.key}.", "minLength": 1, "title": "Key", "type": "string" }, "label": { "description": "Human-readable label rendered in the form.", "minLength": 1, "title": "Label", "type": "string" }, "max": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Upper bound for type='number'.", "title": "Max" }, "min": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Lower bound for type='number'.", "title": "Min" }, "options": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "Choices for type='select'.", "title": "Options" }, "required": { "default": false, "title": "Required", "type": "boolean" }, "type": { "$ref": "#/components/schemas/SetupFieldType", "default": "string" } }, "required": [ "key", "label" ], "title": "SetupField", "type": "object" }, "SetupFieldType": { "description": "Input widget / storage hint for a setup field.", "enum": [ "secret", "string", "number", "boolean", "select" ], "title": "SetupFieldType", "type": "string" }, "SkillContentResponse": { "description": "Skill content response model.", "properties": { "content": { "title": "Content", "type": "string" }, "id": { "title": "Id", "type": "string" }, "name": { "title": "Name", "type": "string" } }, "required": [ "id", "name", "content" ], "title": "SkillContentResponse", "type": "object" }, "SkillCreateRequest": { "description": "Request to create a skill.", "properties": { "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Raw markdown content", "title": "Content" }, "description": { "anyOf": [ { "maxLength": 1000, "type": "string" }, { "type": "null" } ], "description": "Optional description override", "title": "Description" }, "github_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "GitHub repository URL", "title": "Github Url" }, "name": { "anyOf": [ { "maxLength": 255, "type": "string" }, { "type": "null" } ], "description": "Optional name override", "title": "Name" } }, "title": "SkillCreateRequest", "type": "object" }, "SkillFileResponse": { "description": "Skill file info response model.", "properties": { "path": { "title": "Path", "type": "string" }, "size": { "title": "Size", "type": "integer" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url" } }, "required": [ "path", "size" ], "title": "SkillFileResponse", "type": "object" }, "SkillFilesResponse": { "description": "Skill files list response model.", "properties": { "files": { "items": { "$ref": "#/components/schemas/SkillFileResponse" }, "title": "Files", "type": "array" }, "skill_id": { "title": "Skill Id", "type": "string" } }, "required": [ "skill_id", "files" ], "title": "SkillFilesResponse", "type": "object" }, "SkillMemberAddRequest": { "description": "Request to add a child skill member.", "properties": { "child_skill_id": { "description": "ID of the child skill to add", "format": "uuid", "title": "Child Skill Id", "type": "string" }, "dependencies": { "description": "IDs of sibling children that must run before this one", "items": { "type": "string" }, "title": "Dependencies", "type": "array" }, "is_required": { "default": true, "description": "Whether this child is required", "title": "Is Required", "type": "boolean" }, "order": { "default": 0, "description": "Execution order hint (a 32-bit integer)", "maximum": 2147483647.0, "minimum": -2147483648.0, "title": "Order", "type": "integer" } }, "required": [ "child_skill_id" ], "title": "SkillMemberAddRequest", "type": "object" }, "SkillMemberResponse": { "description": "Skill member response model.", "properties": { "child_skill_id": { "title": "Child Skill Id", "type": "string" }, "dependencies": { "items": { "type": "string" }, "title": "Dependencies", "type": "array" }, "is_required": { "title": "Is Required", "type": "boolean" }, "order": { "title": "Order", "type": "integer" }, "parent_skill_id": { "title": "Parent Skill Id", "type": "string" } }, "required": [ "parent_skill_id", "child_skill_id", "order", "is_required", "dependencies" ], "title": "SkillMemberResponse", "type": "object" }, "SkillRef": { "properties": { "id": { "title": "Id", "type": "string" }, "name": { "title": "Name", "type": "string" } }, "required": [ "id", "name" ], "title": "SkillRef", "type": "object" }, "SkillResponse": { "description": "Skill response model.", "properties": { "created_at": { "title": "Created At", "type": "string" }, "customized": { "default": false, "title": "Customized", "type": "boolean" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "id": { "title": "Id", "type": "string" }, "is_catalog": { "default": false, "title": "Is Catalog", "type": "boolean" }, "name": { "title": "Name", "type": "string" }, "network_scope": { "title": "Network Scope", "type": "string" }, "registry_item_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Registry Item Id" }, "registry_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Registry Name" }, "registry_scope": { "anyOf": [ { "enum": [ "platform", "workspace" ], "type": "string" }, { "type": "null" } ], "title": "Registry Scope" }, "registry_trust": { "anyOf": [ { "enum": [ "official", "verified", "community", "private" ], "type": "string" }, { "type": "null" } ], "title": "Registry Trust" }, "removed_upstream": { "default": false, "title": "Removed Upstream", "type": "boolean" }, "slug": { "title": "Slug", "type": "string" }, "source_type": { "title": "Source Type", "type": "string" }, "source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Url" }, "update_available": { "default": false, "title": "Update Available", "type": "boolean" }, "updated_at": { "title": "Updated At", "type": "string" }, "workspace_id": { "title": "Workspace Id", "type": "string" } }, "required": [ "id", "name", "slug", "description", "source_type", "source_url", "network_scope", "workspace_id", "created_at", "updated_at" ], "title": "SkillResponse", "type": "object" }, "SkillUpdateAllResponse": { "description": "One result per installed skill that had an update.", "properties": { "results": { "items": { "$ref": "#/components/schemas/SkillUpdateResultResponse" }, "title": "Results", "type": "array" } }, "required": [ "results" ], "title": "SkillUpdateAllResponse", "type": "object" }, "SkillUpdateRequest": { "description": "Request to update a skill.", "properties": { "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "New content (only for content-type skills)", "title": "Content" }, "description": { "anyOf": [ { "maxLength": 1000, "type": "string" }, { "type": "null" } ], "description": "New description", "title": "Description" }, "name": { "anyOf": [ { "maxLength": 255, "minLength": 1, "type": "string" }, { "type": "null" } ], "description": "New name", "title": "Name" } }, "title": "SkillUpdateRequest", "type": "object" }, "SkillUpdateResultResponse": { "description": "What updating one installed skill did.", "properties": { "error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error" }, "name": { "title": "Name", "type": "string" }, "skill": { "anyOf": [ { "$ref": "#/components/schemas/SkillResponse" }, { "type": "null" } ] }, "skill_id": { "title": "Skill Id", "type": "string" }, "status": { "enum": [ "updated", "up_to_date", "customized", "failed" ], "title": "Status", "type": "string" } }, "required": [ "skill_id", "name", "status" ], "title": "SkillUpdateResultResponse", "type": "object" }, "SkillVersionResponse": { "description": "One package a skill pointed at; the last is what it runs now.", "properties": { "catalog_version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Catalog Version" }, "created_at": { "title": "Created At", "type": "string" }, "created_by": { "title": "Created By", "type": "string" }, "current": { "title": "Current", "type": "boolean" }, "digest": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Digest" }, "id": { "title": "Id", "type": "string" }, "reason": { "enum": [ "create", "edit", "install", "update", "rollback", "migrate", "refresh", "repin" ], "title": "Reason", "type": "string" } }, "required": [ "id", "digest", "reason", "created_by", "created_at", "current" ], "title": "SkillVersionResponse", "type": "object" }, "SkippedItem": { "properties": { "external_id": { "title": "External Id", "type": "string" }, "reason": { "title": "Reason", "type": "string" } }, "required": [ "external_id", "reason" ], "title": "SkippedItem", "type": "object" }, "SkippedModelResponse": { "properties": { "missing": { "items": { "type": "string" }, "title": "Missing", "type": "array" }, "model_name": { "title": "Model Name", "type": "string" } }, "required": [ "model_name", "missing" ], "title": "SkippedModelResponse", "type": "object" }, "SourceCreate": { "additionalProperties": false, "description": "A webhook or poll source of a catalog entry on an existing stream.", "properties": { "config": { "additionalProperties": { "type": "string" }, "description": "The type's plain settings, e.g. shop_id.", "title": "Config", "type": "object" }, "credentials": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "$ref": "#/components/schemas/SecretRef" } ] }, "description": "The type's credential fields, each a value or {secret_id} of a workspace secret. Write-only: never returned.", "title": "Credentials", "type": "object" }, "event_templates": { "anyOf": [ { "$ref": "#/components/schemas/EventOverrides" }, { "type": "null" } ], "description": "This source's own kind, key and session_key templates ({body:a.b}, {header:x}, {first_key:a|b}), in place of the type's. Without a key nothing is deduplicated." }, "kind": { "$ref": "#/components/schemas/SourceKind", "default": "webhook", "description": "webhook: the provider posts to the source's URL; poll: the platform fetches." }, "source_type": { "description": "A slug of GET /streams/source-types.", "maxLength": 50, "minLength": 1, "title": "Source Type", "type": "string" } }, "required": [ "source_type" ], "title": "SourceCreate", "type": "object" }, "SourceCreated": { "properties": { "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "event_templates": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "This source's own kind / key / session_key templates.", "title": "Event Templates" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "issued": { "additionalProperties": { "type": "string" }, "description": "Credentials generated because they were left out; shown this once only.", "title": "Issued", "type": "object" }, "kind": { "description": "webhook or poll", "title": "Kind", "type": "string" }, "poll_error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Poll Error" }, "polled_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Polled At" }, "registered": { "default": false, "description": "The provider was pointed at webhook_url (entries with a registration).", "title": "Registered", "type": "boolean" }, "source_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The catalog slug of GET /streams/source-types.", "title": "Source Type" }, "webhook_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Webhook Id" }, "webhook_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Public URL the provider posts to; null for a poll source.", "title": "Webhook Url" } }, "required": [ "id", "kind", "source_type", "webhook_id", "webhook_url", "created_at" ], "title": "SourceCreated", "type": "object" }, "SourceField": { "additionalProperties": false, "description": "A credential or setting a member fills in for a source of this type.", "properties": { "format": { "default": "token", "enum": [ "token", "whsec" ], "title": "Format", "type": "string" }, "issued": { "default": false, "title": "Issued", "type": "boolean" }, "key": { "title": "Key", "type": "string" }, "label": { "title": "Label", "type": "string" }, "placeholder": { "default": "", "title": "Placeholder", "type": "string" }, "required": { "default": true, "title": "Required", "type": "boolean" } }, "required": [ "key", "label" ], "title": "SourceField", "type": "object" }, "SourceKind": { "enum": [ "webhook", "poll", "platform" ], "title": "SourceKind", "type": "string" }, "SourceTypeResponse": { "properties": { "config": { "items": { "$ref": "#/components/schemas/SourceField" }, "title": "Config", "type": "array" }, "continues_sessions": { "description": "Default of a trigger's session.continue for this type.", "title": "Continues Sessions", "type": "boolean" }, "credentials": { "description": "Secret fields: write-only, held by reference, never returned.", "items": { "$ref": "#/components/schemas/SourceField" }, "title": "Credentials", "type": "array" }, "delivery": { "description": "webhook, poll or both; platform for the platform stream, which no member adds", "title": "Delivery", "type": "string" }, "description": { "title": "Description", "type": "string" }, "event": { "$ref": "#/components/schemas/SourceTypeTemplates" }, "events": { "description": "What the provider can send, to enable at the provider; not a filter.", "items": { "type": "string" }, "title": "Events", "type": "array" }, "icon": { "title": "Icon", "type": "string" }, "icon_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Icon Url" }, "name": { "title": "Name", "type": "string" }, "replies": { "description": "A task started by its event can answer where it came from.", "title": "Replies", "type": "boolean" }, "slug": { "title": "Slug", "type": "string" }, "verification_header": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Verification Header" }, "verification_scheme": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Verification Scheme" } }, "required": [ "slug", "name", "description", "icon", "icon_url", "delivery", "credentials", "config", "events", "event", "verification_scheme", "verification_header", "continues_sessions", "replies" ], "title": "SourceTypeResponse", "type": "object" }, "SourceTypeTemplates": { "properties": { "key": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Key" }, "kind": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ], "title": "Kind" }, "occurred_at": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Occurred At" }, "sender": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Sender" }, "session_key": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Session Key" } }, "required": [ "kind", "key", "session_key", "sender", "occurred_at" ], "title": "SourceTypeTemplates", "type": "object" }, "SpecPreviewRequest": { "properties": { "spec_content": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Spec Content" }, "spec_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Spec Url" } }, "title": "SpecPreviewRequest", "type": "object" }, "SpecPreviewResponse": { "properties": { "base_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Base Url" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Title" }, "tools": { "default": [], "items": { "additionalProperties": { "type": "string" }, "type": "object" }, "title": "Tools", "type": "array" }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Version" } }, "title": "SpecPreviewResponse", "type": "object" }, "SpendCard": { "properties": { "cap_usd": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cap Usd" }, "mtd_estimate_usd": { "default": "0", "title": "Mtd Estimate Usd", "type": "string" }, "mtd_usd": { "title": "Mtd Usd", "type": "string" }, "not_covered": { "items": { "$ref": "#/components/schemas/CurrencySpend" }, "title": "Not Covered", "type": "array" }, "pct_of_cap": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Pct Of Cap" }, "projected_eom_usd": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Projected Eom Usd" }, "projection_method": { "default": "linear-mtd", "title": "Projection Method", "type": "string" }, "today_usd": { "title": "Today Usd", "type": "string" } }, "required": [ "today_usd", "mtd_usd", "cap_usd", "pct_of_cap", "projected_eom_usd" ], "title": "SpendCard", "type": "object" }, "StreamCreate": { "additionalProperties": false, "properties": { "description": { "default": "", "maxLength": 1000, "title": "Description", "type": "string" }, "name": { "description": "Name, unique in the workspace.", "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" } }, "required": [ "name" ], "title": "StreamCreate", "type": "object" }, "StreamEventDetailResponse": { "properties": { "attachments": { "items": { "$ref": "#/components/schemas/EventAttachmentResponse" }, "title": "Attachments", "type": "array" }, "body_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Download link for data.body_ref; null without one.", "title": "Body Url" }, "causation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Causation Id" }, "correlation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Correlation Id" }, "data": { "additionalProperties": true, "description": "{headers, body, body_ref}: the request as sent.", "title": "Data", "type": "object" }, "depth": { "title": "Depth", "type": "integer" }, "event_id": { "format": "uuid", "title": "Event Id", "type": "string" }, "handlers": { "description": "One per subscription that reacted so far; the rest are still to come.", "items": { "$ref": "#/components/schemas/HandlerResponse" }, "title": "Handlers", "type": "array" }, "key": { "title": "Key", "type": "string" }, "kind": { "title": "Kind", "type": "string" }, "occurred_at": { "format": "date-time", "title": "Occurred At", "type": "string" }, "outcomes": { "description": "One per subscription that took the event; empty means nobody listened.", "items": { "$ref": "#/components/schemas/OutcomeResponse" }, "title": "Outcomes", "type": "array" }, "processing": { "anyOf": [ { "$ref": "#/components/schemas/Processing" }, { "type": "null" } ], "description": "What the platform did with it; on the workspace feed." }, "received_at": { "format": "date-time", "title": "Received At", "type": "string" }, "sender": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sender" }, "sequence": { "title": "Sequence", "type": "integer" }, "session_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Session Key" }, "source_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Source Id" }, "source_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Type" }, "stream_id": { "format": "uuid", "title": "Stream Id", "type": "string" }, "v": { "default": 1, "title": "V", "type": "integer" } }, "required": [ "sequence", "event_id", "stream_id", "source_id", "source_type", "kind", "key", "session_key", "sender", "received_at", "occurred_at", "depth", "correlation_id", "causation_id", "data", "body_url", "attachments", "outcomes", "handlers" ], "title": "StreamEventDetailResponse", "type": "object" }, "StreamEventPage": { "properties": { "events": { "items": { "$ref": "#/components/schemas/StreamEventResponse" }, "title": "Events", "type": "array" }, "next_after": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "description": "With ?after=: pass as ?after= for the next page; null at the end.", "title": "Next After" }, "next_before": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "description": "Without ?after=: pass as ?before= for older events; null at the start.", "title": "Next Before" } }, "required": [ "events" ], "title": "StreamEventPage", "type": "object" }, "StreamEventResponse": { "description": "The event envelope (ADR-0040 \u00a72) and how each subscription reacted.", "properties": { "attachments": { "items": { "$ref": "#/components/schemas/EventAttachmentResponse" }, "title": "Attachments", "type": "array" }, "body_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Download link for data.body_ref; null without one.", "title": "Body Url" }, "causation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Causation Id" }, "correlation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Correlation Id" }, "data": { "additionalProperties": true, "description": "{headers, body, body_ref}: the request as sent.", "title": "Data", "type": "object" }, "depth": { "title": "Depth", "type": "integer" }, "event_id": { "format": "uuid", "title": "Event Id", "type": "string" }, "key": { "title": "Key", "type": "string" }, "kind": { "title": "Kind", "type": "string" }, "occurred_at": { "format": "date-time", "title": "Occurred At", "type": "string" }, "outcomes": { "description": "One per subscription that took the event; empty means nobody listened.", "items": { "$ref": "#/components/schemas/OutcomeResponse" }, "title": "Outcomes", "type": "array" }, "processing": { "anyOf": [ { "$ref": "#/components/schemas/Processing" }, { "type": "null" } ], "description": "What the platform did with it; on the workspace feed." }, "received_at": { "format": "date-time", "title": "Received At", "type": "string" }, "sender": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sender" }, "sequence": { "title": "Sequence", "type": "integer" }, "session_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Session Key" }, "source_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Source Id" }, "source_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Type" }, "stream_id": { "format": "uuid", "title": "Stream Id", "type": "string" }, "v": { "default": 1, "title": "V", "type": "integer" } }, "required": [ "sequence", "event_id", "stream_id", "source_id", "source_type", "kind", "key", "session_key", "sender", "received_at", "occurred_at", "depth", "correlation_id", "causation_id", "data", "body_url", "attachments", "outcomes" ], "title": "StreamEventResponse", "type": "object" }, "StreamResponse": { "properties": { "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "created_by": { "title": "Created By", "type": "string" }, "description": { "title": "Description", "type": "string" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "kind": { "title": "Kind", "type": "string" }, "name": { "title": "Name", "type": "string" } }, "required": [ "id", "name", "description", "kind", "created_by", "created_at" ], "title": "StreamResponse", "type": "object" }, "StreamSourceResponse": { "properties": { "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "event_templates": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "This source's own kind / key / session_key templates.", "title": "Event Templates" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "kind": { "description": "webhook or poll", "title": "Kind", "type": "string" }, "poll_error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Poll Error" }, "polled_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Polled At" }, "registered": { "default": false, "description": "The provider was pointed at webhook_url (entries with a registration).", "title": "Registered", "type": "boolean" }, "source_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The catalog slug of GET /streams/source-types.", "title": "Source Type" }, "webhook_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Webhook Id" }, "webhook_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Public URL the provider posts to; null for a poll source.", "title": "Webhook Url" } }, "required": [ "id", "kind", "source_type", "webhook_id", "webhook_url", "created_at" ], "title": "StreamSourceResponse", "type": "object" }, "SubjectSetBody": { "properties": { "namespace": { "title": "Namespace", "type": "string" }, "object": { "title": "Object", "type": "string" }, "relation": { "title": "Relation", "type": "string" } }, "required": [ "namespace", "object", "relation" ], "title": "SubjectSetBody", "type": "object" }, "SubscriptionResponse": { "properties": { "code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "A processor's Python (def process(event)); null otherwise.", "title": "Code" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "filter": { "additionalProperties": true, "title": "Filter", "type": "object" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "kind": { "title": "Kind", "type": "string" }, "output_stream_ids": { "items": { "format": "uuid", "type": "string" }, "title": "Output Stream Ids", "type": "array" }, "status": { "title": "Status", "type": "string" }, "trigger_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Trigger Id" } }, "required": [ "id", "kind", "trigger_id", "filter", "output_stream_ids", "status", "created_at" ], "title": "SubscriptionResponse", "type": "object" }, "TaskArtifactItem": { "description": "A file explicitly published from a live task sandbox.", "properties": { "content_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content Type" }, "created_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Created At" }, "download_url": { "title": "Download Url", "type": "string" }, "id": { "title": "Id", "type": "string" }, "name": { "title": "Name", "type": "string" }, "path": { "title": "Path", "type": "string" }, "sha256": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sha256" }, "size": { "title": "Size", "type": "integer" } }, "required": [ "id", "path", "name", "size", "content_type", "sha256", "created_at", "download_url" ], "title": "TaskArtifactItem", "type": "object" }, "TaskCommandPayload": { "properties": { "budget_usd": { "anyOf": [ { "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" }, { "type": "null" } ], "title": "Budget Usd" }, "command": { "title": "Command", "type": "string" }, "message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Message" }, "message_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Message Id" }, "model_instance_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Instance Id" } }, "required": [ "command" ], "title": "TaskCommandPayload", "type": "object" }, "TaskCreate": { "properties": { "attachments": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Attachments" }, "description": { "title": "Description", "type": "string" }, "end_user_id": { "anyOf": [ { "maxLength": 256, "minLength": 1, "type": "string" }, { "type": "null" } ], "description": "The caller's own id for the end user this task runs for. Only API keys and service clients may set it.", "title": "End User Id" }, "execution": { "anyOf": [ { "$ref": "#/components/schemas/RunExecutionConfig" }, { "type": "null" } ] }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "Trusted task metadata for tool servers, e.g. {\"chatId\": \"...\"}. At most 4096 bytes of JSON. Only API keys and service clients may set it.", "title": "Metadata" }, "parameters": { "additionalProperties": true, "title": "Parameters", "type": "object" }, "project_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Project Id" }, "requires_human_approval": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "title": "Requires Human Approval" }, "task_policy": { "anyOf": [ { "$ref": "#/components/schemas/PolicyDocument" }, { "type": "null" } ] }, "webhook": { "anyOf": [ { "$ref": "#/components/schemas/TaskWebhook" }, { "type": "null" } ], "description": "POSTed on task.completed, task.failed and task.cancelled with the task's total_cost, tokens_used, end_user_id and metadata. Only API keys and service clients may set it." } }, "required": [ "description" ], "title": "TaskCreate", "type": "object" }, "TaskEvent": { "description": "Model for task execution events.", "properties": { "agent_id": { "title": "Agent Id", "type": "string" }, "data": { "additionalProperties": true, "default": {}, "title": "Data", "type": "object" }, "event_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Event Id" }, "event_type": { "title": "Event Type", "type": "string" }, "execution_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Execution Id" }, "id": { "title": "Id", "type": "string" }, "message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Message" }, "metadata": { "additionalProperties": true, "default": {}, "title": "Metadata", "type": "object" }, "seq": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Seq" }, "task_id": { "title": "Task Id", "type": "string" }, "timestamp": { "format": "date-time", "title": "Timestamp", "type": "string" } }, "required": [ "id", "task_id", "agent_id", "timestamp", "event_type" ], "title": "TaskEvent", "type": "object" }, "TaskEventResponse": { "description": "Response model for paginated task events.", "properties": { "events": { "items": { "$ref": "#/components/schemas/TaskEvent" }, "title": "Events", "type": "array" }, "has_next": { "title": "Has Next", "type": "boolean" }, "page": { "title": "Page", "type": "integer" }, "page_size": { "title": "Page Size", "type": "integer" }, "total": { "title": "Total", "type": "integer" } }, "required": [ "events", "total", "page", "page_size", "has_next" ], "title": "TaskEventResponse", "type": "object" }, "TaskInputSubmission": { "additionalProperties": false, "description": "Structured user input submission for a pending workflow input request.", "properties": { "answers": { "additionalProperties": true, "title": "Answers", "type": "object" }, "input_request_id": { "maxLength": 128, "minLength": 1, "title": "Input Request Id", "type": "string" }, "secrets": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "$ref": "#/components/schemas/InputSecretValue" } ] }, "title": "Secrets", "type": "object" } }, "required": [ "input_request_id" ], "title": "TaskInputSubmission", "type": "object" }, "TaskProvenance": { "description": "Why a task exists: who or what started it, and the event that caused it.", "properties": { "causation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Causation Id" }, "correlation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Correlation Id" }, "depth": { "default": 0, "title": "Depth", "type": "integer" }, "origin_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Origin Id" }, "origin_type": { "anyOf": [ { "enum": [ "user", "trigger", "agent", "api" ], "type": "string" }, { "type": "null" } ], "title": "Origin Type" }, "parent_task_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Parent Task Id" } }, "title": "TaskProvenance", "type": "object" }, "TaskResponse": { "properties": { "agent_id": { "format": "uuid", "title": "Agent Id", "type": "string" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "created_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created By" }, "description": { "title": "Description", "type": "string" }, "end_user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "End User Id" }, "error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error" }, "execution_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Execution Id" }, "failure_reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Failure Reason" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "parameters": { "additionalProperties": true, "title": "Parameters", "type": "object" }, "provenance": { "$ref": "#/components/schemas/TaskProvenance" }, "result": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "string" }, { "type": "null" } ], "title": "Result" }, "scheduled_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Scheduled At" }, "status": { "title": "Status", "type": "string" }, "total_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Total Cost" }, "total_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Total Tokens" } }, "required": [ "id", "agent_id", "description", "parameters", "status", "created_at" ], "title": "TaskResponse", "type": "object" }, "TaskSummary": { "description": "Headline rollup for a single task: its run times, answer, error and spend.\n\nRead from the task row and the spend ledger. ``cost`` sums the task's current\nledger lines in ``currency``, the billing currency. ``duration_ms`` runs from the\ntask's first start to its last end, idle waits between turns included.", "properties": { "agent_id": { "format": "uuid", "title": "Agent Id", "type": "string" }, "cost": { "default": 0.0, "title": "Cost", "type": "number" }, "currency": { "title": "Currency", "type": "string" }, "duration_ms": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Duration Ms" }, "ended_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Ended At" }, "final_response": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Final Response" }, "last_error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Error" }, "started_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Started At" }, "status": { "title": "Status", "type": "string" }, "task_id": { "format": "uuid", "title": "Task Id", "type": "string" }, "workspace_id": { "title": "Workspace Id", "type": "string" } }, "required": [ "task_id", "agent_id", "workspace_id", "status", "currency" ], "title": "TaskSummary", "type": "object" }, "TaskWebhook": { "additionalProperties": false, "description": "Where to POST each terminal event of the task, with its cost.", "properties": { "secret": { "anyOf": [ { "maxLength": 512, "minLength": 32, "type": "string" }, { "type": "null" } ], "description": "Signs each delivery as X-AgentArea-Signature: t=,v1=.\">. Write-only: stored in the secret manager.", "title": "Secret" }, "url": { "description": "http(s) URL to POST to.", "maxLength": 2048, "minLength": 1, "title": "Url", "type": "string" } }, "required": [ "url" ], "title": "TaskWebhook", "type": "object" }, "TaskWithAgent": { "description": "Task response with agent information for global task listing.", "properties": { "agent_id": { "format": "uuid", "title": "Agent Id", "type": "string" }, "agent_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Name" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "created_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created By" }, "description": { "title": "Description", "type": "string" }, "end_user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "End User Id" }, "error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error" }, "escalation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Escalation Id" }, "escalation_tool_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Escalation Tool Name" }, "execution_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Execution Id" }, "failure_reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Failure Reason" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "parameters": { "additionalProperties": true, "title": "Parameters", "type": "object" }, "provenance": { "$ref": "#/components/schemas/TaskProvenance" }, "result": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "string" }, { "type": "null" } ], "title": "Result" }, "scheduled_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Scheduled At" }, "status": { "title": "Status", "type": "string" }, "total_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Total Cost" }, "total_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Total Tokens" } }, "required": [ "id", "agent_id", "description", "parameters", "status", "created_at" ], "title": "TaskWithAgent", "type": "object" }, "TelegramLinkRequest": { "properties": { "bot": { "description": "The bot to open the link in", "pattern": "^[A-Za-z0-9_]{5,32}$", "title": "Bot", "type": "string" } }, "required": [ "bot" ], "title": "TelegramLinkRequest", "type": "object" }, "TelegramLinkResponse": { "properties": { "expires_in": { "title": "Expires In", "type": "integer" }, "url": { "title": "Url", "type": "string" } }, "required": [ "url", "expires_in" ], "title": "TelegramLinkResponse", "type": "object" }, "TokenPolicy": { "additionalProperties": false, "description": "Token-related ceilings.", "properties": { "max_tokens": { "anyOf": [ { "exclusiveMinimum": 0.0, "type": "integer" }, { "type": "null" } ], "title": "Max Tokens" }, "max_tokens_per_call": { "anyOf": [ { "exclusiveMinimum": 0.0, "type": "integer" }, { "type": "null" } ], "title": "Max Tokens Per Call" } }, "title": "TokenPolicy", "type": "object" }, "ToolCallApprovalDecision": { "additionalProperties": false, "properties": { "approved": { "title": "Approved", "type": "boolean" }, "comment": { "anyOf": [ { "maxLength": 2000, "type": "string" }, { "type": "null" } ], "title": "Comment" } }, "required": [ "approved" ], "title": "ToolCallApprovalDecision", "type": "object" }, "ToolCallApprovalListResponse": { "properties": { "items": { "items": { "$ref": "#/components/schemas/ToolCallApprovalResponse" }, "title": "Items", "type": "array" }, "page": { "title": "Page", "type": "integer" }, "page_size": { "title": "Page Size", "type": "integer" }, "total": { "title": "Total", "type": "integer" } }, "required": [ "items", "total", "page", "page_size" ], "title": "ToolCallApprovalListResponse", "type": "object" }, "ToolCallApprovalResponse": { "properties": { "arguments": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Arguments" }, "can_decide": { "title": "Can Decide", "type": "boolean" }, "client_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Client Id" }, "client_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Client Name" }, "comment": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Comment" }, "connector": { "title": "Connector", "type": "string" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "decided_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Decided At" }, "decided_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Decided By" }, "expires_at": { "format": "date-time", "title": "Expires At", "type": "string" }, "hint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Hint" }, "id": { "title": "Id", "type": "string" }, "mcp_instance_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Mcp Instance Id" }, "policy_name": { "title": "Policy Name", "type": "string" }, "reason": { "title": "Reason", "type": "string" }, "requested_by": { "title": "Requested By", "type": "string" }, "status": { "$ref": "#/components/schemas/ToolCallApprovalStatus" }, "tool": { "title": "Tool", "type": "string" }, "url": { "title": "Url", "type": "string" } }, "required": [ "id", "status", "requested_by", "client_id", "client_name", "mcp_instance_id", "connector", "tool", "policy_name", "arguments", "reason", "hint", "can_decide", "decided_by", "decided_at", "comment", "expires_at", "created_at", "url" ], "title": "ToolCallApprovalResponse", "type": "object" }, "ToolCallApprovalStatus": { "enum": [ "pending", "approved", "rejected", "consumed", "expired" ], "title": "ToolCallApprovalStatus", "type": "string" }, "ToolMethodResponse": { "description": "One callable method of a code toolset.", "properties": { "description": { "title": "Description", "type": "string" }, "display_name": { "title": "Display Name", "type": "string" }, "effect": { "anyOf": [ { "enum": [ "read", "write", "destructive", "privileged" ], "type": "string" }, { "type": "null" } ], "title": "Effect" }, "name": { "title": "Name", "type": "string" }, "requires_user_confirmation": { "default": false, "title": "Requires User Confirmation", "type": "boolean" } }, "required": [ "name", "display_name", "description" ], "title": "ToolMethodResponse", "type": "object" }, "ToolResponse": { "description": "Unified tool response format.\n\nCode tools carry the catalog metadata the UI needs to group and label them:\n``plane`` separates the agent's own runtime from the platform surface, and\n``effect`` on each method says what a call can break. Without these on the\nwire a client has to hand-maintain a mirror of the toolset registry.", "properties": { "available_methods": { "items": { "$ref": "#/components/schemas/ToolMethodResponse" }, "title": "Available Methods", "type": "array" }, "category": { "default": "", "title": "Category", "type": "string" }, "description": { "title": "Description", "type": "string" }, "display_name": { "default": "", "title": "Display Name", "type": "string" }, "group": { "anyOf": [ { "const": "sandbox", "type": "string" }, { "type": "null" } ], "title": "Group" }, "input_schema": { "additionalProperties": true, "title": "Input Schema", "type": "object" }, "mcp_instance_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Mcp Instance Id" }, "mcp_instance_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Mcp Instance Name" }, "name": { "title": "Name", "type": "string" }, "plane": { "anyOf": [ { "enum": [ "runtime", "build", "operate", "observe", "govern", "federate" ], "type": "string" }, { "type": "null" } ], "title": "Plane" }, "requires_user_confirmation": { "default": false, "title": "Requires User Confirmation", "type": "boolean" }, "type": { "enum": [ "code", "mcp" ], "title": "Type", "type": "string" } }, "required": [ "name", "type", "description" ], "title": "ToolResponse", "type": "object" }, "ToolsPolicy": { "additionalProperties": false, "description": "MCP tool capability restrictions.", "properties": { "allowed": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Allowed" }, "denied": { "items": { "type": "string" }, "title": "Denied", "type": "array" } }, "title": "ToolsPolicy", "type": "object" }, "TriggerBatchWindow": { "additionalProperties": false, "description": "A stream trigger that fires once for the events of a batch (ADR-0040 \u00a74).\n\nThe batch opens with its first event and fires when ``window`` has passed or\n``max_events`` have joined, whichever comes first. Either may be left out;\na batch never holds more than the deployment's cap.", "properties": { "max_events": { "anyOf": [ { "minimum": 2.0, "type": "integer" }, { "type": "null" } ], "description": "Fire as soon as this many events have joined.", "title": "Max Events" }, "window": { "anyOf": [ { "pattern": "^[1-9][0-9]*[smhd]$", "type": "string" }, { "type": "null" } ], "description": "How long a batch stays open after its first event, e.g. '1h'.", "title": "Window" } }, "title": "TriggerBatchWindow", "type": "object" }, "TriggerCreate": { "additionalProperties": false, "description": "Payload for creating a trigger on an existing agent.", "properties": { "agent_id": { "description": "UUID of the agent to invoke when the trigger fires.", "format": "uuid", "title": "Agent Id", "type": "string" }, "batch": { "anyOf": [ { "$ref": "#/components/schemas/TriggerBatchWindow" }, { "type": "null" } ], "description": "Fire once for a batch of events instead of once per event: {\"window\": \"1h\", \"max_events\": 50} fires when the hour has passed or 50 events joined, whichever comes first. Null fires on every event." }, "conditions": { "additionalProperties": true, "description": "Optional conditions evaluated against event data before firing. An LLM condition ({\"type\": \"llm\", \"description\": ...}) must name the chat or decision model instance that evaluates it in \"model_id\"; each sub-condition of a combined condition names its own.", "title": "Conditions", "type": "object" }, "cron_expression": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "5- or 6-field cron expression (required when trigger_type='cron').", "title": "Cron Expression" }, "description": { "default": "", "description": "Short summary of what this trigger does.", "maxLength": 1000, "title": "Description", "type": "string" }, "enabled": { "default": true, "description": "Whether the trigger is active immediately on creation.", "title": "Enabled", "type": "boolean" }, "event_filter": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "Which events of the stream fire it: {\"kinds\": [\"push\"], \"fields\": {\"raw_data.action\": \"opened\"}}. Empty means every event.", "title": "Event Filter" }, "failure_threshold": { "default": 5, "description": "Auto-disable after this many consecutive failed executions.", "maximum": 100.0, "minimum": 1.0, "title": "Failure Threshold", "type": "integer" }, "name": { "description": "Human-readable trigger name.", "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" }, "session": { "anyOf": [ { "$ref": "#/components/schemas/TriggerSession" }, { "type": "null" } ], "description": "What the next event of the same session does: {\"continue\": true, \"idle_timeout\": \"30m\"} joins the running task. Null takes the source type's default." }, "stream_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "Stream whose events fire this trigger (required when trigger_type='stream').", "title": "Stream Id" }, "task_parameters": { "additionalProperties": true, "description": "Parameters merged into the task created when the trigger fires.", "title": "Task Parameters", "type": "object" }, "timezone": { "default": "UTC", "description": "IANA timezone for cron evaluation (e.g. 'UTC', 'America/New_York').", "title": "Timezone", "type": "string" }, "trigger_type": { "description": "'cron' for scheduled, 'stream' to run on the events of a stream (a webhook or a polled provider is a source of a stream).", "enum": [ "cron", "stream" ], "title": "Trigger Type", "type": "string" } }, "required": [ "name", "trigger_type", "agent_id" ], "title": "TriggerCreate", "type": "object" }, "TriggerExecuteRequest": { "description": "Request model for executing a trigger via the event service.", "properties": { "events": { "items": { "additionalProperties": true, "type": "object" }, "title": "Events", "type": "array" } }, "title": "TriggerExecuteRequest", "type": "object" }, "TriggerExecutionResponse": { "description": "Response model for trigger execution data.", "properties": { "cost_usd": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "What the task this run created has spent so far. Null when the run created no task, or the task has not reported a cost yet.", "title": "Cost Usd" }, "error_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Message" }, "executed_at": { "format": "date-time", "title": "Executed At", "type": "string" }, "execution_time_ms": { "title": "Execution Time Ms", "type": "integer" }, "fired_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Principal who asked for this run, when a person did. Null means the trigger fired itself. Resolve the name through GET /v1/principals.", "title": "Fired By" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "run_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Run Id" }, "status": { "title": "Status", "type": "string" }, "task_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Task Id" }, "trigger_data": { "additionalProperties": true, "title": "Trigger Data", "type": "object" }, "trigger_id": { "format": "uuid", "title": "Trigger Id", "type": "string" }, "workflow_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Workflow Id" } }, "required": [ "id", "trigger_id", "executed_at", "status", "execution_time_ms", "trigger_data" ], "title": "TriggerExecutionResponse", "type": "object" }, "TriggerResponse": { "description": "Response model for trigger data.", "properties": { "agent_id": { "format": "uuid", "title": "Agent Id", "type": "string" }, "batch": { "anyOf": [ { "$ref": "#/components/schemas/TriggerBatchWindow" }, { "type": "null" } ], "description": "The batch window it fires per; null fires on every event." }, "conditions": { "additionalProperties": true, "title": "Conditions", "type": "object" }, "consecutive_failures": { "title": "Consecutive Failures", "type": "integer" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "created_by": { "title": "Created By", "type": "string" }, "cron_expression": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cron Expression" }, "description": { "title": "Description", "type": "string" }, "event_filter": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "Which events fire it.", "title": "Event Filter" }, "failure_threshold": { "title": "Failure Threshold", "type": "integer" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "is_active": { "title": "Is Active", "type": "boolean" }, "last_event_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "When the trigger's stream last recorded an event.", "title": "Last Event At" }, "last_execution_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Last Execution At" }, "name": { "title": "Name", "type": "string" }, "needs_new_owner_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Needs New Owner At" }, "next_run_time": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Next Run Time" }, "session": { "anyOf": [ { "$ref": "#/components/schemas/TriggerSession" }, { "type": "null" } ], "description": "What the next event of the same session does; null takes the defaults." }, "status": { "description": "'needs_owner' when the person who configured it can no longer run its agent; the trigger stays stopped until it is enabled again, and the next event re-checks that person's access.", "enum": [ "active", "inactive", "needs_owner" ], "title": "Status", "type": "string" }, "stream_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "Stream whose events fire this trigger.", "title": "Stream Id" }, "task_parameters": { "additionalProperties": true, "title": "Task Parameters", "type": "object" }, "timezone": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Timezone" }, "trigger_type": { "title": "Trigger Type", "type": "string" }, "updated_at": { "format": "date-time", "title": "Updated At", "type": "string" } }, "required": [ "id", "name", "description", "agent_id", "trigger_type", "is_active", "task_parameters", "conditions", "created_at", "updated_at", "created_by", "failure_threshold", "consecutive_failures", "status" ], "title": "TriggerResponse", "type": "object" }, "TriggerRunResponse": { "description": "Result of firing a trigger once by hand.", "properties": { "execution_id": { "format": "uuid", "title": "Execution Id", "type": "string" }, "reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Why the run was skipped, when it was.", "title": "Reason" }, "status": { "description": "'started' when a task was created and is now running. 'skipped' when the trigger's own conditions rejected the run -- a real answer about the trigger, not an error.", "enum": [ "started", "skipped" ], "title": "Status", "type": "string" }, "task_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "The task to watch. Absent when the run was skipped.", "title": "Task Id" }, "trigger_id": { "format": "uuid", "title": "Trigger Id", "type": "string" } }, "required": [ "status", "trigger_id", "execution_id" ], "title": "TriggerRunResponse", "type": "object" }, "TriggerSession": { "additionalProperties": false, "description": "What happens to the next event of the same session (ADR-0040 \u00a74).", "properties": { "continue": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "The next event with the same session_key joins the same task; null takes the source type's default (continue when it has sessions).", "title": "Continue" }, "idle_timeout": { "anyOf": [ { "pattern": "^[0-9]+[smhd]$", "type": "string" }, { "type": "null" } ], "description": "How long the task waits for the next event, e.g. '30m'.", "title": "Idle Timeout" } }, "title": "TriggerSession", "type": "object" }, "TriggerSpec": { "additionalProperties": false, "description": "Everything about a trigger except the agent it fires.\n\nA trigger fires an agent \u2014 on a cron schedule (``trigger_type='cron'``) or on\nthe events of a stream (``trigger_type='stream'``). A webhook or a polled\nprovider is a source of a stream (``streams_create_source``) with a stream\ntrigger on it. Creating an agent takes a list of these, because the agent\ndoes not exist yet when they are written.", "properties": { "batch": { "anyOf": [ { "$ref": "#/components/schemas/TriggerBatchWindow" }, { "type": "null" } ], "description": "Fire once for a batch of events instead of once per event: {\"window\": \"1h\", \"max_events\": 50} fires when the hour has passed or 50 events joined, whichever comes first. Null fires on every event." }, "conditions": { "additionalProperties": true, "description": "Optional conditions evaluated against event data before firing. An LLM condition ({\"type\": \"llm\", \"description\": ...}) must name the chat or decision model instance that evaluates it in \"model_id\"; each sub-condition of a combined condition names its own.", "title": "Conditions", "type": "object" }, "cron_expression": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "5- or 6-field cron expression (required when trigger_type='cron').", "title": "Cron Expression" }, "description": { "default": "", "description": "Short summary of what this trigger does.", "maxLength": 1000, "title": "Description", "type": "string" }, "enabled": { "default": true, "description": "Whether the trigger is active immediately on creation.", "title": "Enabled", "type": "boolean" }, "event_filter": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "Which events of the stream fire it: {\"kinds\": [\"push\"], \"fields\": {\"raw_data.action\": \"opened\"}}. Empty means every event.", "title": "Event Filter" }, "failure_threshold": { "default": 5, "description": "Auto-disable after this many consecutive failed executions.", "maximum": 100.0, "minimum": 1.0, "title": "Failure Threshold", "type": "integer" }, "name": { "description": "Human-readable trigger name.", "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" }, "session": { "anyOf": [ { "$ref": "#/components/schemas/TriggerSession" }, { "type": "null" } ], "description": "What the next event of the same session does: {\"continue\": true, \"idle_timeout\": \"30m\"} joins the running task. Null takes the source type's default." }, "stream_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "Stream whose events fire this trigger (required when trigger_type='stream').", "title": "Stream Id" }, "task_parameters": { "additionalProperties": true, "description": "Parameters merged into the task created when the trigger fires.", "title": "Task Parameters", "type": "object" }, "timezone": { "default": "UTC", "description": "IANA timezone for cron evaluation (e.g. 'UTC', 'America/New_York').", "title": "Timezone", "type": "string" }, "trigger_type": { "description": "'cron' for scheduled, 'stream' to run on the events of a stream (a webhook or a polled provider is a source of a stream).", "enum": [ "cron", "stream" ], "title": "Trigger Type", "type": "string" } }, "required": [ "name", "trigger_type" ], "title": "TriggerSpec", "type": "object" }, "TriggerStatusResponse": { "description": "Response model for trigger status information.", "properties": { "consecutive_failures": { "title": "Consecutive Failures", "type": "integer" }, "is_active": { "title": "Is Active", "type": "boolean" }, "last_execution_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Last Execution At" }, "schedule_info": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Schedule Info" }, "should_disable_due_to_failures": { "title": "Should Disable Due To Failures", "type": "boolean" }, "trigger_id": { "format": "uuid", "title": "Trigger Id", "type": "string" } }, "required": [ "trigger_id", "is_active", "consecutive_failures", "should_disable_due_to_failures" ], "title": "TriggerStatusResponse", "type": "object" }, "TriggerType": { "description": "Types of triggers supported by the system.", "enum": [ "cron", "stream" ], "title": "TriggerType", "type": "string" }, "TriggerUpdate": { "additionalProperties": false, "description": "Patch payload for a trigger. All fields optional \u2014 unset = unchanged.", "properties": { "agent_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Agent Id" }, "batch": { "anyOf": [ { "$ref": "#/components/schemas/TriggerBatchWindow" }, { "type": "null" } ], "description": "Sent as null, the trigger fires on every event again." }, "conditions": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Conditions" }, "cron_expression": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cron Expression" }, "description": { "anyOf": [ { "maxLength": 1000, "type": "string" }, { "type": "null" } ], "title": "Description" }, "enabled": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "Toggle the trigger active state. Maps to ``is_active`` server-side. REST clients may pass either ``enabled`` (canonical) or ``is_active`` (alias).", "title": "Enabled" }, "event_filter": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Event Filter" }, "failure_threshold": { "anyOf": [ { "maximum": 100.0, "minimum": 1.0, "type": "integer" }, { "type": "null" } ], "title": "Failure Threshold" }, "name": { "anyOf": [ { "maxLength": 255, "minLength": 1, "type": "string" }, { "type": "null" } ], "title": "Name" }, "session": { "anyOf": [ { "$ref": "#/components/schemas/TriggerSession" }, { "type": "null" } ] }, "task_parameters": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Task Parameters" }, "timezone": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Timezone" } }, "title": "TriggerUpdate", "type": "object" }, "UpcomingItem": { "properties": { "cron_expression": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cron Expression" }, "fires_at": { "format": "date-time", "title": "Fires At", "type": "string" }, "kind": { "title": "Kind", "type": "string" }, "task_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Task Id" }, "title": { "title": "Title", "type": "string" }, "trigger_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Trigger Id" } }, "required": [ "fires_at", "kind", "title" ], "title": "UpcomingItem", "type": "object" }, "UpdateAllResponse": { "properties": { "errors": { "title": "Errors", "type": "integer" }, "updated": { "title": "Updated", "type": "integer" } }, "required": [ "updated", "errors" ], "title": "UpdateAllResponse", "type": "object" }, "UpdateWalletRequest": { "properties": { "credentials": { "anyOf": [ { "$ref": "#/components/schemas/WalletCredentialsSchema" }, { "type": "null" } ] }, "mpp_config": { "anyOf": [ { "$ref": "#/components/schemas/MPPConfigSchema" }, { "type": "null" } ] }, "service_budget_period": { "anyOf": [ { "$ref": "#/components/schemas/BudgetPeriod" }, { "type": "null" } ] }, "service_budget_usd": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" } ], "ge": "0", "lt": "1000000000000" }, { "type": "null" } ], "title": "Service Budget Usd" }, "status": { "anyOf": [ { "$ref": "#/components/schemas/WalletStatus" }, { "type": "null" } ] }, "wallet_type": { "anyOf": [ { "$ref": "#/components/schemas/WalletType" }, { "type": "null" } ] }, "x402_config": { "anyOf": [ { "$ref": "#/components/schemas/X402ConfigSchema" }, { "type": "null" } ] } }, "title": "UpdateWalletRequest", "type": "object" }, "UploadPlanEntry": { "properties": { "content_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content Type" }, "path": { "title": "Path", "type": "string" }, "sha256": { "title": "Sha256", "type": "string" } }, "required": [ "path", "sha256" ], "title": "UploadPlanEntry", "type": "object" }, "UploadPlanRequest": { "additionalProperties": false, "properties": { "files": { "items": { "$ref": "#/components/schemas/UploadPlanEntry" }, "maxItems": 100, "minItems": 1, "title": "Files", "type": "array" } }, "required": [ "files" ], "title": "UploadPlanRequest", "type": "object" }, "UploadPlanResponse": { "properties": { "uploads": { "items": { "$ref": "#/components/schemas/PlannedUpload" }, "title": "Uploads", "type": "array" } }, "required": [ "uploads" ], "title": "UploadPlanResponse", "type": "object" }, "UrlVariableInput": { "additionalProperties": false, "description": "A secret value substituted into a ``{name}`` placeholder in the base URL path.\n\nThe value is stored encrypted in the secret manager; it is never returned.", "properties": { "name": { "description": "Placeholder name as written in base_url, e.g. 'token' for '{token}'.", "maxLength": 128, "title": "Name", "type": "string" }, "value": { "description": "Secret value. URL-encoded when substituted into the request URL.", "maxLength": 8192, "minLength": 1, "title": "Value", "type": "string" } }, "required": [ "name", "value" ], "title": "UrlVariableInput", "type": "object" }, "ValidateRequest": { "properties": { "endpoint_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "For type=url: the MCP endpoint URL", "title": "Endpoint Url" }, "headers": { "additionalProperties": { "type": "string" }, "title": "Headers", "type": "object" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "type": { "description": "Instance type: url, docker, command", "title": "Type", "type": "string" } }, "required": [ "type" ], "title": "ValidateRequest", "type": "object" }, "ValidationError": { "properties": { "ctx": { "title": "Context", "type": "object" }, "input": { "title": "Input" }, "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "title": "Location", "type": "array" }, "msg": { "title": "Message", "type": "string" }, "type": { "title": "Error Type", "type": "string" } }, "required": [ "loc", "msg", "type" ], "title": "ValidationError", "type": "object" }, "WalletBalanceResponse": { "properties": { "remaining": { "title": "Remaining", "type": "string" }, "service_budget_period": { "title": "Service Budget Period", "type": "string" }, "service_budget_usd": { "title": "Service Budget Usd", "type": "string" }, "total_spent_current_period": { "title": "Total Spent Current Period", "type": "string" } }, "required": [ "service_budget_usd", "service_budget_period", "total_spent_current_period", "remaining" ], "title": "WalletBalanceResponse", "type": "object" }, "WalletCredentialsSchema": { "properties": { "mpp_tempo_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Mpp Tempo Key" }, "x402_private_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "X402 Private Key" } }, "title": "WalletCredentialsSchema", "type": "object" }, "WalletExhaustedBlocker": { "properties": { "agent_id": { "format": "uuid", "title": "Agent Id", "type": "string" }, "agent_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Name" }, "budget_usd": { "title": "Budget Usd", "type": "string" }, "period": { "title": "Period", "type": "string" } }, "required": [ "agent_id", "budget_usd", "period" ], "title": "WalletExhaustedBlocker", "type": "object" }, "WalletResponse": { "properties": { "agent_id": { "title": "Agent Id", "type": "string" }, "created_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Created At" }, "has_credentials": { "default": false, "title": "Has Credentials", "type": "boolean" }, "id": { "title": "Id", "type": "string" }, "mpp_config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Mpp Config" }, "service_budget_period": { "title": "Service Budget Period", "type": "string" }, "service_budget_usd": { "title": "Service Budget Usd", "type": "string" }, "status": { "title": "Status", "type": "string" }, "updated_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Updated At" }, "wallet_type": { "title": "Wallet Type", "type": "string" }, "x402_config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "X402 Config" } }, "required": [ "id", "agent_id", "wallet_type", "service_budget_usd", "service_budget_period", "status" ], "title": "WalletResponse", "type": "object" }, "WalletStatus": { "description": "Wallet operational status.", "enum": [ "active", "disabled" ], "title": "WalletStatus", "type": "string" }, "WalletType": { "description": "Supported wallet types.", "enum": [ "x402", "mpp", "dual" ], "title": "WalletType", "type": "string" }, "WorkspaceDirectoryResponse": { "properties": { "path": { "title": "Path", "type": "string" } }, "required": [ "path" ], "title": "WorkspaceDirectoryResponse", "type": "object" }, "WorkspaceEventPage": { "properties": { "events": { "items": { "$ref": "#/components/schemas/FeedEventResponse" }, "title": "Events", "type": "array" }, "facets": { "anyOf": [ { "$ref": "#/components/schemas/FeedFacetsResponse" }, { "type": "null" } ], "description": "On the first page only (no ?before=)." }, "next_before": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "description": "Pass as ?before= for older events; null at the start.", "title": "Next Before" } }, "required": [ "events" ], "title": "WorkspaceEventPage", "type": "object" }, "WorkspaceFileDownloadResponse": { "properties": { "path": { "title": "Path", "type": "string" }, "url": { "title": "Url", "type": "string" } }, "required": [ "url", "path" ], "title": "WorkspaceFileDownloadResponse", "type": "object" }, "WorkspaceFileInfo": { "properties": { "content_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content Type" }, "last_modified": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Modified" }, "path": { "title": "Path", "type": "string" }, "size": { "title": "Size", "type": "integer" } }, "required": [ "path", "size" ], "title": "WorkspaceFileInfo", "type": "object" }, "WorkspaceFileListResponse": { "properties": { "directories": { "items": { "type": "string" }, "title": "Directories", "type": "array" }, "files": { "items": { "$ref": "#/components/schemas/WorkspaceFileInfo" }, "title": "Files", "type": "array" }, "truncated": { "default": false, "description": "True when the workspace holds more than 10000 objects and only the first 10000 are listed.", "title": "Truncated", "type": "boolean" } }, "required": [ "files" ], "title": "WorkspaceFileListResponse", "type": "object" }, "WorkspaceRegistryCreate": { "additionalProperties": false, "properties": { "credentials_secret_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "A workspace secret holding the token a private source is read with", "title": "Credentials Secret Id" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "mode": { "default": "mirror", "description": "'mirror' stores every skill's content when the registry syncs, so an install needs no network; 'upstream' fetches it on first install. A source read with credentials is mirrored.", "enum": [ "mirror", "upstream" ], "title": "Mode", "type": "string" }, "name": { "maxLength": 255, "minLength": 1, "title": "Name", "type": "string" }, "registry_type": { "default": "skills", "enum": [ "skills", "agents" ], "title": "Registry Type", "type": "string" }, "source_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "GitHub: the folder whose skill folders are indexed; the root if unset", "title": "Source Path" }, "source_ref": { "anyOf": [ { "maxLength": 255, "type": "string" }, { "type": "null" } ], "description": "GitHub: branch, tag or commit; the default branch if unset", "title": "Source Ref" }, "source_type": { "description": "'url': an index in the platform format; 'github': a repository", "enum": [ "url", "github" ], "title": "Source Type", "type": "string" }, "source_url": { "description": "The index URL, or the repository as owner/repo", "minLength": 1, "title": "Source Url", "type": "string" }, "trust": { "default": "private", "enum": [ "private", "community" ], "title": "Trust", "type": "string" } }, "required": [ "name", "source_type", "source_url" ], "title": "WorkspaceRegistryCreate", "type": "object" }, "WorkspaceRegistryRemoved": { "properties": { "kept_items": { "title": "Kept Items", "type": "integer" }, "status": { "enum": [ "deleted", "retired" ], "title": "Status", "type": "string" } }, "required": [ "status", "kept_items" ], "title": "WorkspaceRegistryRemoved", "type": "object" }, "WorkspaceRegistryUpdate": { "additionalProperties": false, "properties": { "credentials_secret_id": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Credentials Secret Id" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "is_active": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Active" }, "mode": { "anyOf": [ { "enum": [ "mirror", "upstream" ], "type": "string" }, { "type": "null" } ], "title": "Mode" }, "name": { "anyOf": [ { "maxLength": 255, "minLength": 1, "type": "string" }, { "type": "null" } ], "title": "Name" }, "source_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Path" }, "source_ref": { "anyOf": [ { "maxLength": 255, "type": "string" }, { "type": "null" } ], "title": "Source Ref" }, "source_url": { "anyOf": [ { "minLength": 1, "type": "string" }, { "type": "null" } ], "title": "Source Url" }, "trust": { "anyOf": [ { "enum": [ "private", "community" ], "type": "string" }, { "type": "null" } ], "title": "Trust" } }, "title": "WorkspaceRegistryUpdate", "type": "object" }, "WorkspaceResponse": { "properties": { "can_administer": { "title": "Can Administer", "type": "boolean" }, "id": { "title": "Id", "type": "string" }, "logo_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Logo Url" }, "name": { "title": "Name", "type": "string" }, "owner_user_id": { "title": "Owner User Id", "type": "string" }, "slug": { "title": "Slug", "type": "string" } }, "required": [ "id", "slug", "name", "owner_user_id", "can_administer" ], "title": "WorkspaceResponse", "type": "object" }, "WorkspaceSettingsResponse": { "properties": { "monthly_cap_usd": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Monthly Cap Usd" } }, "required": [ "monthly_cap_usd" ], "title": "WorkspaceSettingsResponse", "type": "object" }, "WorkspaceSettingsUpdate": { "properties": { "monthly_cap_usd": { "anyOf": [ { "anyOf": [ { "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" } ], "ge": "0" }, { "type": "null" } ], "title": "Monthly Cap Usd" } }, "required": [ "monthly_cap_usd" ], "title": "WorkspaceSettingsUpdate", "type": "object" }, "X402ConfigSchema": { "properties": { "facilitator_url": { "default": "https://x402.org/facilitator", "title": "Facilitator Url", "type": "string" }, "network": { "default": "eip155:8453", "title": "Network", "type": "string" }, "scheme": { "default": "exact", "title": "Scheme", "type": "string" }, "signer_type": { "default": "evm", "title": "Signer Type", "type": "string" } }, "title": "X402ConfigSchema", "type": "object" }, "agentarea_api__api__v1__access_control__SyncResponse": { "properties": { "collections": { "title": "Collections", "type": "integer" }, "written": { "title": "Written", "type": "integer" } }, "required": [ "written", "collections" ], "title": "SyncResponse", "type": "object" }, "agentarea_api__api__v1__model_specs__ModelSpecResponse": { "properties": { "cache_creation_input_cost_per_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cache Creation Input Cost Per Token" }, "cached_input_cost_per_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cached Input Cost Per Token" }, "context_window": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Context Window" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "default_context_strategy": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Context Strategy" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "display_name": { "title": "Display Name", "type": "string" }, "id": { "title": "Id", "type": "string" }, "input_cost_per_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Input Cost Per Token" }, "is_active": { "title": "Is Active", "type": "boolean" }, "kind": { "$ref": "#/components/schemas/ModelKind", "default": "chat" }, "max_output_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Output Tokens" }, "model_name": { "title": "Model Name", "type": "string" }, "output_cost_per_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Output Cost Per Token" }, "provider_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider Key" }, "provider_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider Name" }, "provider_spec_id": { "title": "Provider Spec Id", "type": "string" }, "supports_function_calling": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "title": "Supports Function Calling" }, "supports_reasoning": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "title": "Supports Reasoning" }, "supports_vision": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "title": "Supports Vision" }, "updated_at": { "format": "date-time", "title": "Updated At", "type": "string" } }, "required": [ "id", "provider_spec_id", "model_name", "display_name", "description", "context_window", "default_context_strategy", "is_active", "created_at", "updated_at" ], "title": "ModelSpecResponse", "type": "object" }, "agentarea_api__api__v1__provider_specs__ModelSpecResponse": { "properties": { "cache_creation_input_cost_per_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cache Creation Input Cost Per Token" }, "cached_input_cost_per_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cached Input Cost Per Token" }, "context_window": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Context Window" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "display_name": { "title": "Display Name", "type": "string" }, "id": { "title": "Id", "type": "string" }, "input_cost_per_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Input Cost Per Token" }, "is_active": { "title": "Is Active", "type": "boolean" }, "kind": { "$ref": "#/components/schemas/ModelKind", "default": "chat" }, "max_output_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Output Tokens" }, "model_name": { "title": "Model Name", "type": "string" }, "output_cost_per_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Output Cost Per Token" }, "provider_spec_id": { "title": "Provider Spec Id", "type": "string" }, "supports_function_calling": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "title": "Supports Function Calling" }, "supports_reasoning": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "title": "Supports Reasoning" }, "supports_vision": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "title": "Supports Vision" }, "updated_at": { "format": "date-time", "title": "Updated At", "type": "string" } }, "required": [ "id", "provider_spec_id", "model_name", "display_name", "description", "context_window", "is_active", "created_at", "updated_at" ], "title": "ModelSpecResponse", "type": "object" }, "agentarea_api__api__v1__registries__SyncResponse": { "properties": { "new_specs": { "title": "New Specs", "type": "integer" }, "skipped": { "default": 0, "title": "Skipped", "type": "integer" }, "skipped_items": { "items": { "$ref": "#/components/schemas/SkippedItem" }, "title": "Skipped Items", "type": "array" }, "total": { "title": "Total", "type": "integer" }, "unchanged": { "title": "Unchanged", "type": "integer" }, "updates_flagged": { "title": "Updates Flagged", "type": "integer" } }, "required": [ "new_specs", "updates_flagged", "unchanged", "total" ], "title": "SyncResponse", "type": "object" } }, "securitySchemes": { "HTTPBearer": { "scheme": "bearer", "type": "http" }, "bearer": { "bearerFormat": "JWT", "description": "JWT Bearer token for authentication", "scheme": "bearer", "type": "http" } } }, "info": { "description": "Modular and extensible framework for building AI agents. This API requires JWT Bearer token authentication for most endpoints. Include your JWT token in the Authorization header. Public endpoints include /, /health, /docs, /redoc, and /openapi.json.", "title": "AgentArea API", "version": "0.1.0" }, "openapi": "3.1.0", "paths": { "/.well-known/jwks.json": { "get": { "description": "Proxy JWKS so token verification works against our API URL.", "operationId": "hydra_jwks_proxy__well_known_jwks_json_get", "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" } }, "security": [ { "bearer": [] } ], "summary": "Hydra Jwks Proxy", "tags": [ "oauth-as" ] } }, "/.well-known/oauth-authorization-server": { "get": { "description": "RFC 8414: serve Hydra's OIDC config at the standard AS discovery path.\n\nMCP clients (Cursor) look for /.well-known/oauth-authorization-server on the\nresource's AS URL, which is this API, so we serve Hydra's document here with\nthe endpoints we proxy rewritten to point at us.", "operationId": "oauth_authorization_server_metadata__well_known_oauth_authorization_server_get", "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" } }, "security": [ { "bearer": [] } ], "summary": "Oauth Authorization Server Metadata", "tags": [ "oauth-as" ] } }, "/.well-known/oauth-protected-resource": { "get": { "description": "The root location, which is what our own ``WWW-Authenticate`` points at.", "operationId": "oauth_protected_resource_metadata__well_known_oauth_protected_resource_get", "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" } }, "security": [ { "bearer": [] } ], "summary": "Oauth Protected Resource Metadata", "tags": [ "oauth-as" ] } }, "/.well-known/oauth-protected-resource/{resource_path}": { "get": { "description": "The RFC 9728 \u00a73.1 location, which strict clients derive from the resource URI.\n\nRestricted to the endpoints we actually protect: a catch-all would answer\nfor any path and claim this API protects resources it does not serve.", "operationId": "oauth_protected_resource_metadata_by_path__well_known_oauth_protected_resource__resource_path__get", "parameters": [ { "in": "path", "name": "resource_path", "required": true, "schema": { "title": "Resource Path", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "bearer": [] } ], "summary": "Oauth Protected Resource Metadata By Path", "tags": [ "oauth-as" ] } }, "/health": { "get": { "description": "Health check endpoint.", "operationId": "health_health_get", "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" } }, "security": [ { "bearer": [] } ], "summary": "Health" } }, "/oauth2/auth": { "get": { "description": "Redirect the browser to Hydra's actual /oauth2/auth endpoint.\n\nUnlike the other OAuth2 endpoints which we proxy server-side, the auth\nendpoint MUST be a browser redirect because Hydra sets session cookies\nduring the authorization flow. If we proxy it, the cookies land on our\ndomain (localhost:8000) but Hydra's subsequent redirects go to its own\ndomain (localhost:4444), losing the cookies and breaking the flow.", "operationId": "hydra_auth_redirect_oauth2_auth_get", "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" } }, "security": [ { "bearer": [] } ], "summary": "Hydra Auth Redirect", "tags": [ "oauth-as" ] } }, "/oauth2/register": { "post": { "description": "Dynamic Client Registration (RFC 7591) \u2014 proxy to Hydra admin API.\n\nHydra's own public DCR lets the registering client pick its grants and\naudience; this proxy registers through the admin API instead so it can fix\nthem. Hydra's public DCR must stay disabled, or it bypasses this endpoint.\n\nWe inject server-side defaults:\n - skip_consent: true \u2014 MCP clients accessing their own workspace don't need consent\n - audience: [AGENTAREA_API_URL] \u2014 ensures issued JWTs have the correct audience for validation\n - grant_types / scope \u2014 so the client can refresh instead of re-authorizing", "operationId": "hydra_dcr_proxy_oauth2_register_post", "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" } }, "security": [ { "bearer": [] } ], "summary": "Hydra Dcr Proxy", "tags": [ "oauth-as" ] } }, "/oauth2/{path}": { "delete": { "description": "Proxy all /oauth2/* requests through to Hydra (excluding /register handled above).", "operationId": "hydra_oauth2_proxy_oauth2__path__delete", "parameters": [ { "in": "path", "name": "path", "required": true, "schema": { "title": "Path", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "bearer": [] } ], "summary": "Hydra Oauth2 Proxy", "tags": [ "oauth-as" ] }, "get": { "description": "Proxy all /oauth2/* requests through to Hydra (excluding /register handled above).", "operationId": "hydra_oauth2_proxy_oauth2__path__get", "parameters": [ { "in": "path", "name": "path", "required": true, "schema": { "title": "Path", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "bearer": [] } ], "summary": "Hydra Oauth2 Proxy", "tags": [ "oauth-as" ] }, "patch": { "description": "Proxy all /oauth2/* requests through to Hydra (excluding /register handled above).", "operationId": "hydra_oauth2_proxy_oauth2__path__patch", "parameters": [ { "in": "path", "name": "path", "required": true, "schema": { "title": "Path", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "bearer": [] } ], "summary": "Hydra Oauth2 Proxy", "tags": [ "oauth-as" ] }, "post": { "description": "Proxy all /oauth2/* requests through to Hydra (excluding /register handled above).", "operationId": "hydra_oauth2_proxy_oauth2__path__post", "parameters": [ { "in": "path", "name": "path", "required": true, "schema": { "title": "Path", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "bearer": [] } ], "summary": "Hydra Oauth2 Proxy", "tags": [ "oauth-as" ] }, "put": { "description": "Proxy all /oauth2/* requests through to Hydra (excluding /register handled above).", "operationId": "hydra_oauth2_proxy_oauth2__path__put", "parameters": [ { "in": "path", "name": "path", "required": true, "schema": { "title": "Path", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "bearer": [] } ], "summary": "Hydra Oauth2 Proxy", "tags": [ "oauth-as" ] } }, "/v1/agents/{agent_id}/.well-known/": { "get": { "description": "Agent-specific well-known endpoints index.", "operationId": "get_agent_well_known_index_v1_agents__agent_id___well_known__get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": true, "title": "Response Get Agent Well Known Index V1 Agents Agent Id Well Known Get", "type": "object" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "bearer": [] } ], "summary": "Get Agent Well Known Index", "tags": [ "v1", "public" ] } }, "/v1/agents/{agent_id}/.well-known/a2a-info.json": { "get": { "description": "Agent-specific A2A protocol information.\n\nProvides A2A protocol information specific to this agent.", "operationId": "get_agent_a2a_info_v1_agents__agent_id___well_known_a2a_info_json_get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": true, "title": "Response Get Agent A2A Info V1 Agents Agent Id Well Known A2A Info Json Get", "type": "object" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "bearer": [] } ], "summary": "Get Agent A2A Info", "tags": [ "v1", "public" ] } }, "/v1/agents/{agent_id}/.well-known/agent-card.json": { "get": { "description": "The agent card under the API host; its endpoint is on the API host too.", "operationId": "get_agent_well_known_card_v1_agents__agent_id___well_known_agent_card_json_get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "bearer": [] } ], "summary": "Get Agent Well Known Card", "tags": [ "v1", "public" ] } }, "/v1/agents/{agent_id}/a2a/rpc": { "post": { "description": "Serve one A2A JSON-RPC call (plain JSON, or SSE for the streaming methods).", "operationId": "handle_agent_jsonrpc_v1_agents__agent_id__a2a_rpc_post", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Handle Agent Jsonrpc", "tags": [ "v1", "protected" ] } }, "/v1/agents/{agent_id}/a2a/well-known": { "get": { "description": "The agent card, also served at ``.well-known/agent-card.json``.", "operationId": "get_agent_well_known_v1_agents__agent_id__a2a_well_known_get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "title": "Agent Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Agent Well Known", "tags": [ "v1", "protected" ] } }, "/v1/invitations/accept": { "post": { "description": "Accept an invitation as the authenticated user.\n\nAn invitation sent to an email address is only accepted by the account\nsigned in under that address. Idempotent for the same acceptor.\n\nThe invitation is committed as accepted before membership is granted, and\nit grants membership only until that grant is recorded: a graph outage on\nthe first call is retried, a replay of a used link grants nothing, and a\nremoval racing the accept wins.", "operationId": "accept_invitation_v1_invitations_accept_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AcceptInvitationBody" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AcceptInvitationResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Accept Invitation", "tags": [ "v1", "protected", "workspace-invitations" ] } }, "/v1/invitations/preview": { "post": { "description": "Describe an invitation the caller could accept: workspace, inviter, expiry.\n\nThe token travels in the body so it stays out of access logs.", "operationId": "preview_invitation_v1_invitations_preview_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InvitationPreviewBody" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InvitationPreviewResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Preview Invitation", "tags": [ "v1", "protected", "workspace-invitations" ] } }, "/v1/mcp/{instance_id}/mcp": { "delete": { "description": "Reverse-proxy MCP Streamable HTTP traffic to the instance's upstream.", "operationId": "proxy_instance_v1_mcp__instance_id__mcp_delete", "parameters": [ { "in": "path", "name": "instance_id", "required": true, "schema": { "title": "Instance Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Proxy Instance", "tags": [ "v1", "protected", "mcp-proxy" ] }, "get": { "description": "Reverse-proxy MCP Streamable HTTP traffic to the instance's upstream.", "operationId": "proxy_instance_v1_mcp__instance_id__mcp_get", "parameters": [ { "in": "path", "name": "instance_id", "required": true, "schema": { "title": "Instance Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Proxy Instance", "tags": [ "v1", "protected", "mcp-proxy" ] }, "post": { "description": "Reverse-proxy MCP Streamable HTTP traffic to the instance's upstream.", "operationId": "proxy_instance_v1_mcp__instance_id__mcp_post", "parameters": [ { "in": "path", "name": "instance_id", "required": true, "schema": { "title": "Instance Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Proxy Instance", "tags": [ "v1", "protected", "mcp-proxy" ] } }, "/v1/me/external-identities": { "get": { "operationId": "list_external_identities_v1_me_external_identities_get", "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/ExternalIdentityResponse" }, "title": "Response List External Identities V1 Me External Identities Get", "type": "array" } } }, "description": "Successful Response" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List External Identities", "tags": [ "v1", "protected", "external-identities" ] } }, "/v1/me/external-identities/telegram/link": { "post": { "description": "A deep link that offers the caller's account to whoever opens it in Telegram.", "operationId": "start_telegram_link_v1_me_external_identities_telegram_link_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TelegramLinkRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TelegramLinkResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Start Telegram Link", "tags": [ "v1", "protected", "external-identities" ] } }, "/v1/me/external-identities/{identity_id}": { "delete": { "operationId": "unlink_external_identity_v1_me_external_identities__identity_id__delete", "parameters": [ { "in": "path", "name": "identity_id", "required": true, "schema": { "format": "uuid", "title": "Identity Id", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Unlink External Identity", "tags": [ "v1", "protected", "external-identities" ] } }, "/v1/oauth/callback": { "get": { "description": "The provider's redirect back: park the code and send the browser to finish.\n\nRequires no session \u2014 the user is mid-redirect from the provider. Whoever\nfollows a provider URL lands here, not only the person authorize returned\nit to, so nothing is attached until that person finishes.", "operationId": "oauth_callback_v1_oauth_callback_get", "parameters": [ { "in": "query", "name": "code", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Code" } }, { "in": "query", "name": "state", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "State" } }, { "in": "query", "name": "error", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error" } }, { "in": "query", "name": "error_description", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Description" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "bearer": [] } ], "summary": "Oauth Callback", "tags": [ "v1", "public", "oauth-connect" ] } }, "/v1/oauth/finish": { "post": { "description": "Exchange a returned code and attach the credential, for the flow's own starter.", "operationId": "oauth_finish_v1_oauth_finish_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuthFinishRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuthFinishResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Oauth Finish", "tags": [ "v1", "protected", "oauth-connect" ] } }, "/v1/pricing/currency": { "get": { "description": "Return the billing currency of this deployment.", "operationId": "get_pricing_currency_v1_pricing_currency_get", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PricingCurrencyResponse" } } }, "description": "Successful Response" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Pricing Currency", "tags": [ "v1", "protected", "pricing" ] } }, "/v1/workspaces": { "get": { "description": "List every workspace the current user can reach (personal + joined).\n\nProvisions the caller's personal workspace on first call, so a brand\nnew user always gets at least one entry. Baseline governance policies are\nseeded by the workspace-creation hook (see ``get_workspace_service``).", "operationId": "list_workspaces_v1_workspaces_get", "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/WorkspaceResponse" }, "title": "Response List Workspaces V1 Workspaces Get", "type": "array" } } }, "description": "Successful Response" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Workspaces", "tags": [ "v1", "protected", "workspaces" ] }, "post": { "description": "Create a new shared workspace owned by the current user.\n\nProvisions the workspace row (baseline governance policies are seeded by\nthe creation hook in ``get_workspace_service``) and grants the creator\nmembership in the relationship graph so the workspace immediately shows up\nin their accessible list and the switcher.", "operationId": "create_workspace_v1_workspaces_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWorkspaceBody" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Workspace", "tags": [ "v1", "protected", "workspaces" ] } }, "/v1/workspaces/{workspace}/a2a/agent-cards": { "post": { "description": "The card published at an A2A agent's address.", "operationId": "read_agent_card_v1_a2a_agent_cards_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentCardLookup" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentCardSummary" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Read Agent Card", "tags": [ "v1", "protected", "a2a" ] } }, "/v1/workspaces/{workspace}/access-control/check": { "post": { "description": "Check whether a subject has a permission on a resource.", "operationId": "check_permission_v1_access_control_check_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CheckRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CheckResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Check Permission", "tags": [ "v1", "protected", "access-control" ] } }, "/v1/workspaces/{workspace}/access-control/graph": { "get": { "description": "Return the full authorization graph for the current workspace.", "operationId": "get_graph_v1_access_control_graph_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GraphResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Graph", "tags": [ "v1", "protected", "access-control" ] } }, "/v1/workspaces/{workspace}/access-control/relationships": { "delete": { "description": "Revoke a resource-ownership relation from the configured graph backend.\n\nIdempotent: revoking a grant that is already gone answers 204 without\ntouching the graph or the audit trail.", "operationId": "delete_relationship_v1_access_control_relationships_delete", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RelationshipWriteRequest" } } }, "required": true }, "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Relationship", "tags": [ "v1", "protected", "access-control" ] }, "get": { "description": "List resource-ownership grants enriched with display names.\n\nGrants live on ``resource:`` objects; each is mapped back onto the DB\nentity (agent / skill collection / MCP server / skill) it represents. The\noptional ``namespace`` filter restricts results to one entity kind.", "operationId": "list_relationships_v1_access_control_relationships_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "namespace", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Namespace" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RelationshipsResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Relationships", "tags": [ "v1", "protected", "access-control" ] }, "post": { "description": "Grant a resource-ownership relation via the configured graph backend.\n\nIdempotent: a grant the subject already holds (also under a legacy alias\nsuch as ``viewers`` for ``reader``) succeeds without changing the graph,\nand is not audited again.", "operationId": "create_relationship_v1_access_control_relationships_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RelationshipWriteRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "additionalProperties": true, "title": "Response Create Relationship V1 Access Control Relationships Post", "type": "object" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Relationship", "tags": [ "v1", "protected", "access-control" ] } }, "/v1/workspaces/{workspace}/access-control/resolve": { "post": { "description": "Resolve why (and how) a subject can access a resource.\n\n``allowed`` is computed via the graph backend; ``paths`` are derived from the\ndirect ``resource`` grants matching the subject so the UI can render the\nderivation. Grants inherited through ``project``/``role`` still affect\n``allowed`` but are not expanded into hops here.", "operationId": "resolve_access_v1_access_control_resolve_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResolveRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResolveResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Resolve Access", "tags": [ "v1", "protected", "access-control" ] } }, "/v1/workspaces/{workspace}/access-control/sync": { "post": { "description": "Mirror workspace membership into the graph backend (idempotent).\n\nResource ownership is granted at create time by ``grant_resource_owner`` and\nwas backfilled onto the ``resource`` model, so this endpoint only ensures the\nworkspace-member tuples that gate group defaults are present.", "operationId": "sync_grants_v1_access_control_sync_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/agentarea_api__api__v1__access_control__SyncResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Sync Grants", "tags": [ "v1", "protected", "access-control" ] } }, "/v1/workspaces/{workspace}/agents": { "get": { "description": "List the agents in this workspace the caller may read.\n\nThe workspace column narrows the query to one tenant; the graph then decides\nwhich of those rows this caller sees. A plain member reads them all through\nthe root-project role their membership grants, so the two answers usually\nagree -- the point is that revoking that role now actually removes the rows,\ninstead of leaving a tuple nobody consults.", "operationId": "list_agents_v1_agents_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AgentResponse" }, "title": "Response List Agents V1 Agents Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Agents", "tags": [ "v1", "protected", "agents" ] } }, "/v1/workspaces/{workspace}/agents/": { "get": { "description": "List the agents in this workspace the caller may read.\n\nThe workspace column narrows the query to one tenant; the graph then decides\nwhich of those rows this caller sees. A plain member reads them all through\nthe root-project role their membership grants, so the two answers usually\nagree -- the point is that revoking that role now actually removes the rows,\ninstead of leaving a tuple nobody consults.", "operationId": "list_agents_v1_agents__get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AgentResponse" }, "title": "Response List Agents V1 Agents Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Agents", "tags": [ "v1", "protected", "agents" ] }, "post": { "description": "Create a new agent, and the triggers that start it, in one request.\n\nEvery trigger is checked before anything is written. If creating one still\nfails, the triggers already made and the agent are removed again, so the\ncaller never ends up with an agent that silently lacks a schedule or channel.", "operationId": "create_agent_v1_agents__post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentCreateRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Agent", "tags": [ "v1", "protected", "agents" ] } }, "/v1/workspaces/{workspace}/agents/presets": { "get": { "description": "Starting points for a new agent: tools, skills, triggers and an instruction.", "operationId": "list_agent_presets_v1_agents_presets_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AgentPresetResponse" }, "title": "Response List Agent Presets V1 Agents Presets Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Agent Presets", "tags": [ "v1", "protected", "agents" ] } }, "/v1/workspaces/{workspace}/agents/tools": { "get": { "description": "Get all available tools across all types.\n\nReturns a unified list of tools from:\n- Code tools (static, YAML-based)\n- MCP tools (dynamic, from running instances)\n\nQuery Parameters:\n include: Comma-separated tool types (default: \"code,mcp\")\n mcp_instance_id: Filter MCP tools by instance (optional)\n\nExample:\n GET /v1/agents/tools?include=code,mcp\n GET /v1/agents/tools?include=code\n GET /v1/agents/tools?include=mcp&mcp_instance_id={uuid}", "operationId": "get_all_tools_v1_agents_tools_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Comma-separated list of tool types to include (code, mcp)", "in": "query", "name": "include", "required": false, "schema": { "default": "code,mcp", "description": "Comma-separated list of tool types to include (code, mcp)", "title": "Include", "type": "string" } }, { "description": "Filter MCP tools by specific instance ID", "in": "query", "name": "mcp_instance_id", "required": false, "schema": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "Filter MCP tools by specific instance ID", "title": "Mcp Instance Id" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/ToolResponse" }, "title": "Response Get All Tools V1 Agents Tools Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get All Tools", "tags": [ "v1", "protected", "agents" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}": { "delete": { "description": "Delete an agent (by UUID or workspace-scoped slug).", "operationId": "delete_agent_v1_agents__agent_id__delete", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "title": "Agent Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Agent", "tags": [ "v1", "protected", "agents" ] }, "get": { "description": "Get an agent by UUID or workspace-scoped slug (tenant or catalog).", "operationId": "get_agent_v1_agents__agent_id__get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "title": "Agent Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Agent", "tags": [ "v1", "protected", "agents" ] }, "patch": { "description": "Update an agent (by UUID or workspace-scoped slug).", "operationId": "update_agent_v1_agents__agent_id__patch", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "title": "Agent Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentUpdate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Agent", "tags": [ "v1", "protected", "agents" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/install": { "post": { "description": "Add a built-in catalog agent to the workspace (copy-on-write fork).\n\nResolves a catalog agent by UUID or slug and materializes a tenant copy.\nIdempotent: returns the existing workspace copy if already installed. A\npolicy rule refusing the item's registry answers 403.", "operationId": "install_agent_v1_agents__agent_id__install_post", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "title": "Agent Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Install Agent", "tags": [ "v1", "protected", "agents" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/overview": { "get": { "description": "Aggregate stats + upcoming work for one agent; 404 if it is not in the workspace.", "operationId": "get_agent_overview_v1_agents__agent_id__overview_get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentOverviewResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Agent Overview", "tags": [ "v1", "protected", "dashboard" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/tasks/": { "get": { "description": "List all tasks for the specified agent.\n\nAccess Control:\n Returns all tasks within the current user's workspace (workspace isolation).\n All users in the same workspace can see all workspace tasks.", "operationId": "list_agent_tasks_v1_agents__agent_id__tasks__get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Filter by task status", "in": "query", "name": "status", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by task status", "title": "Status" } }, { "description": "Maximum number of tasks to return", "in": "query", "name": "limit", "required": false, "schema": { "default": 100, "description": "Maximum number of tasks to return", "maximum": 1000, "minimum": 1, "title": "Limit", "type": "integer" } }, { "description": "Number of tasks to skip", "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "description": "Number of tasks to skip", "maximum": 1000000000, "minimum": 0, "title": "Offset", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/TaskResponse" }, "title": "Response List Agent Tasks V1 Agents Agent Id Tasks Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Agent Tasks", "tags": [ "v1", "protected", "agent-tasks" ] }, "post": { "description": "Create and execute a task for the specified agent with real-time SSE stream.", "operationId": "create_task_for_agent_with_stream_v1_agents__agent_id__tasks__post", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Keep the stream open through the follow-up window (up to 30 minutes) and relay follow-up turns. By default the stream ends at the turn's terminal event (task.completed, task.failed, task.cancelled); read follow-ups from GET .../tasks/{task_id}/events/stream.", "in": "query", "name": "follow", "required": false, "schema": { "default": false, "description": "Keep the stream open through the follow-up window (up to 30 minutes) and relay follow-up turns. By default the stream ends at the turn's terminal event (task.completed, task.failed, task.cancelled); read follow-ups from GET .../tasks/{task_id}/events/stream.", "title": "Follow", "type": "boolean" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskCreate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Task For Agent With Stream", "tags": [ "v1", "protected", "agent-tasks" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/tasks/schedule": { "post": { "description": "Create a task that runs once at an absolute future time.\n\nDeliberately not the streaming sibling of ``POST /``: there is nothing to\nstream until the run starts, which may be days away. Repeating schedules\nare cron triggers, not tasks.", "operationId": "schedule_task_for_agent_v1_agents__agent_id__tasks_schedule_post", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScheduleTaskCreate" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Schedule Task For Agent", "tags": [ "v1", "protected", "agent-tasks" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/tasks/sync": { "post": { "description": "Create and execute a task for the specified agent (synchronous response).", "operationId": "create_task_for_agent_sync_v1_agents__agent_id__tasks_sync_post", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskCreate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Task For Agent Sync", "tags": [ "v1", "protected", "agent-tasks" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/tasks/{task_id}": { "delete": { "description": "Cancel a specific task workflow for the specified agent.", "operationId": "cancel_agent_task_v1_agents__agent_id__tasks__task_id__delete", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Cancel Agent Task", "tags": [ "v1", "protected", "agent-tasks" ] }, "get": { "description": "Get a specific task for the specified agent.", "operationId": "get_agent_task_v1_agents__agent_id__tasks__task_id__get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Agent Task", "tags": [ "v1", "protected", "agent-tasks" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/tasks/{task_id}/a2ui/action": { "post": { "description": "Send an A2UI user action to a running task workflow.", "operationId": "send_a2ui_action_v1_agents__agent_id__tasks__task_id__a2ui_action_post", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/A2UIActionPayload" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Send A2Ui Action", "tags": [ "v1", "protected", "agent-tasks" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/tasks/{task_id}/artifacts": { "get": { "description": "List files the agent explicitly published as durable artifacts.\n\nWorkspace-scoped: the task must belong to the caller's workspace, or we\nreturn 404. Each item carries an AgentArea API download URL, so access\nstays behind our auth, audit, and workspace checks instead of exposing\nobject-storage URLs directly.", "operationId": "list_task_artifacts_v1_agents__agent_id__tasks__task_id__artifacts_get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "expires_in", "required": false, "schema": { "default": 3600, "maximum": 86400, "minimum": 60, "title": "Expires In", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/TaskArtifactItem" }, "title": "Response List Task Artifacts V1 Agents Agent Id Tasks Task Id Artifacts Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Task Artifacts", "tags": [ "v1", "protected", "agent-tasks" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/tasks/{task_id}/artifacts/files/{artifact_path}": { "get": { "description": "Stream a task artifact through the AgentArea API.", "operationId": "download_task_artifact_v1_agents__agent_id__tasks__task_id__artifacts_files__artifact_path__get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "in": "path", "name": "artifact_path", "required": true, "schema": { "title": "Artifact Path", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Download Task Artifact", "tags": [ "v1", "protected", "agent-tasks" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/tasks/{task_id}/command": { "post": { "description": "Send a command to a running task workflow.", "operationId": "send_task_command_v1_agents__agent_id__tasks__task_id__command_post", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskCommandPayload" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Send Task Command", "tags": [ "v1", "protected", "agent-tasks" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/tasks/{task_id}/escalations": { "get": { "description": "The escalations awaiting this caller's decision, with the exact arguments.\n\nThe event log redacts tool arguments, since a command can carry an inline\nsecret; the caller reads them here only where they may resolve the escalation.", "operationId": "list_pending_escalations_v1_agents__agent_id__tasks__task_id__escalations_get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/PendingEscalationResponse" }, "title": "Response List Pending Escalations V1 Agents Agent Id Tasks Task Id Escalations Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Pending Escalations", "tags": [ "v1", "protected", "agent-tasks" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/tasks/{task_id}/events": { "get": { "description": "One page of the task's feed from its log: event rows and the messages a person sent.", "operationId": "get_task_events_v1_agents__agent_id__tasks__task_id__events_get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Page number", "in": "query", "name": "page", "required": false, "schema": { "default": 1, "description": "Page number", "maximum": 1000000, "minimum": 1, "title": "Page", "type": "integer" } }, { "description": "Number of events per page", "in": "query", "name": "page_size", "required": false, "schema": { "default": 50, "description": "Number of events per page", "maximum": 100, "minimum": 1, "title": "Page Size", "type": "integer" } }, { "description": "Filter by event type", "in": "query", "name": "event_type", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by event type", "title": "Event Type" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskEventResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Task Events", "tags": [ "v1", "protected", "agent-tasks" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/tasks/{task_id}/events/stream": { "get": { "description": "Stream real-time task execution events via Server-Sent Events.", "operationId": "stream_task_events_v1_agents__agent_id__tasks__task_id__events_stream_get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Include incremental llm.call.chunk token events in the stream", "in": "query", "name": "include_chunks", "required": false, "schema": { "default": true, "description": "Include incremental llm.call.chunk token events in the stream", "title": "Include Chunks", "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Stream Task Events", "tags": [ "v1", "protected", "agent-tasks" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/tasks/{task_id}/input": { "post": { "description": "Submit structured user input to a workflow waiting on request_user_input.\n\nSecret values are written to the workspace secret manager at the API boundary.\nOnly secret refs are sent to Temporal/LLM context.", "operationId": "submit_task_input_v1_agents__agent_id__tasks__task_id__input_post", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskInputSubmission" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Submit Task Input", "tags": [ "v1", "protected", "agent-tasks" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/tasks/{task_id}/pause": { "post": { "description": "Pause a specific task workflow for the specified agent.", "operationId": "pause_agent_task_v1_agents__agent_id__tasks__task_id__pause_post", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Pause Agent Task", "tags": [ "v1", "protected", "agent-tasks" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/tasks/{task_id}/resolve-escalation": { "post": { "description": "Resolve a tool escalation for the specified task workflow.", "operationId": "resolve_task_escalation_v1_agents__agent_id__tasks__task_id__resolve_escalation_post", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EscalationResolution" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Resolve Task Escalation", "tags": [ "v1", "protected", "agent-tasks" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/tasks/{task_id}/resume": { "post": { "description": "Resume a paused task workflow for the specified agent.", "operationId": "resume_agent_task_v1_agents__agent_id__tasks__task_id__resume_post", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Resume Agent Task", "tags": [ "v1", "protected", "agent-tasks" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/tasks/{task_id}/retry": { "post": { "description": "Re-run the turn a failed task ended on, on the same conversation.\n\nA new run of the task continues its conversation with no new message, so\nthe model is called again on the input that failed; the run records a\n``task.retried`` event.", "operationId": "retry_agent_task_v1_agents__agent_id__tasks__task_id__retry_post", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Retry Agent Task", "tags": [ "v1", "protected", "agent-tasks" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/tasks/{task_id}/sandbox/files": { "get": { "description": "Inspect regular files in the existing live sandbox without recreating it.", "operationId": "list_task_sandbox_files_v1_agents__agent_id__tasks__task_id__sandbox_files_get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "prefix", "required": false, "schema": { "default": "", "title": "Prefix", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SandboxFileListResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Task Sandbox Files", "tags": [ "v1", "protected", "agent-tasks" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/tasks/{task_id}/sandbox/files/{file_path}": { "get": { "description": "Read one file from the existing live sandbox without recreating it.", "operationId": "read_task_sandbox_file_v1_agents__agent_id__tasks__task_id__sandbox_files__file_path__get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "in": "path", "name": "file_path", "required": true, "schema": { "title": "File Path", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Read Task Sandbox File", "tags": [ "v1", "protected", "agent-tasks" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/tasks/{task_id}/status": { "get": { "description": "Get the execution status of a specific task workflow.", "operationId": "get_agent_task_status_v1_agents__agent_id__tasks__task_id__status_get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Agent Task Status", "tags": [ "v1", "protected", "agent-tasks" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/tasks/{task_id}/summary": { "get": { "description": "Per-task rollup from the task row and the spend ledger.\n\nWorkspace-scoped: the task must belong to the caller's workspace and\nthe agent must match, or we return 404 (same shape as other task\nendpoints \u2014 no information leak).", "operationId": "get_task_summary_v1_agents__agent_id__tasks__task_id__summary_get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskSummary" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Task Summary", "tags": [ "v1", "protected", "agent-tasks" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/wallet": { "delete": { "description": "Delete wallet and associated credentials.", "operationId": "delete_wallet_v1_agents__agent_id__wallet_delete", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Wallet", "tags": [ "v1", "protected", "wallet" ] }, "get": { "description": "Get wallet configuration for an agent (no decrypted credentials).", "operationId": "get_wallet_v1_agents__agent_id__wallet_get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WalletResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Wallet", "tags": [ "v1", "protected", "wallet" ] }, "post": { "description": "Create a wallet for an agent.", "operationId": "create_wallet_v1_agents__agent_id__wallet_post", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWalletRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WalletResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Wallet", "tags": [ "v1", "protected", "wallet" ] }, "put": { "description": "Update wallet configuration.", "operationId": "update_wallet_v1_agents__agent_id__wallet_put", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateWalletRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WalletResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Wallet", "tags": [ "v1", "protected", "wallet" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/wallet/balance": { "get": { "description": "Get current service budget status.", "operationId": "get_wallet_balance_v1_agents__agent_id__wallet_balance_get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WalletBalanceResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Wallet Balance", "tags": [ "v1", "protected", "wallet" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/wallet/fund": { "post": { "description": "Update the service budget amount.", "operationId": "fund_wallet_v1_agents__agent_id__wallet_fund_post", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FundWalletRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WalletResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Fund Wallet", "tags": [ "v1", "protected", "wallet" ] } }, "/v1/workspaces/{workspace}/agents/{agent_id}/wallet/payments": { "get": { "description": "Get paginated payment history for an agent.", "operationId": "get_payment_history_v1_agents__agent_id__wallet_payments_get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Filter by protocol (x402, mpp)", "in": "query", "name": "protocol", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by protocol (x402, mpp)", "title": "Protocol" } }, { "description": "Filter by status", "in": "query", "name": "status", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by status", "title": "Status" } }, { "description": "Filter from date", "in": "query", "name": "from_date", "required": false, "schema": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Filter from date", "title": "From Date" } }, { "description": "Filter to date", "in": "query", "name": "to_date", "required": false, "schema": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Filter to date", "title": "To Date" } }, { "in": "query", "name": "page", "required": false, "schema": { "default": 1, "maximum": 1000000, "minimum": 1, "title": "Page", "type": "integer" } }, { "in": "query", "name": "page_size", "required": false, "schema": { "default": 50, "maximum": 200, "minimum": 1, "title": "Page Size", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaginatedPaymentsResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Payment History", "tags": [ "v1", "protected", "wallet" ] } }, "/v1/workspaces/{workspace}/api-keys/": { "get": { "description": "List the API keys the caller may see: all of the workspace's for an admin, else their own.", "operationId": "list_api_keys_v1_api_keys__get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Only the keys bound to this agent", "in": "query", "name": "agent_id", "required": false, "schema": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "Only the keys bound to this agent", "title": "Agent Id" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/APIKeyResponse" }, "title": "Response List Api Keys V1 Api Keys Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Api Keys", "tags": [ "v1", "protected", "api-keys" ] }, "post": { "description": "Create a new API key. The raw ``token`` value is returned once \u2014 store it securely.", "operationId": "create_api_key_v1_api_keys__post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/APIKeyCreateRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/APIKeyCreateResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Api Key", "tags": [ "v1", "protected", "api-keys" ] } }, "/v1/workspaces/{workspace}/api-keys/{token_id}": { "delete": { "description": "Immediately revoke an API key.\n\nThe key's creator, or a workspace admin. The repository is scoped to the\nworkspace, not to the caller, so without this a member could cut off a\ncolleague's integrations.", "operationId": "revoke_api_key_v1_api_keys__token_id__delete", "parameters": [ { "in": "path", "name": "token_id", "required": true, "schema": { "format": "uuid", "title": "Token Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Revoke Api Key", "tags": [ "v1", "protected", "api-keys" ] }, "get": { "description": "Get a single API key by ID.\n\nSomeone else's key answers 404 to a member, as a missing one does, so the\nids of colleagues' keys cannot be confirmed.", "operationId": "get_api_key_v1_api_keys__token_id__get", "parameters": [ { "in": "path", "name": "token_id", "required": true, "schema": { "format": "uuid", "title": "Token Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/APIKeyResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Api Key", "tags": [ "v1", "protected", "api-keys" ] } }, "/v1/workspaces/{workspace}/audit-logs/": { "get": { "description": "List audit events for the current workspace.", "operationId": "list_audit_logs_v1_audit_logs__get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Filter by action (e.g. agent.create)", "in": "query", "name": "action", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by action (e.g. agent.create)", "title": "Action" } }, { "description": "Filter by actor ID", "in": "query", "name": "actor_id", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by actor ID", "title": "Actor Id" } }, { "description": "Filter by resource type", "in": "query", "name": "resource_type", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by resource type", "title": "Resource Type" } }, { "description": "Filter by resource ID", "in": "query", "name": "resource_id", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by resource ID", "title": "Resource Id" } }, { "description": "Events after this time (ISO 8601)", "in": "query", "name": "since", "required": false, "schema": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Events after this time (ISO 8601)", "title": "Since" } }, { "description": "Events before this time (ISO 8601)", "in": "query", "name": "until", "required": false, "schema": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Events before this time (ISO 8601)", "title": "Until" } }, { "description": "Cursor for pagination", "in": "query", "name": "cursor", "required": false, "schema": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "Cursor for pagination", "title": "Cursor" } }, { "description": "Max events to return", "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "description": "Max events to return", "maximum": 100, "minimum": 1, "title": "Limit", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuditLogListResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Audit Logs", "tags": [ "v1", "protected", "audit" ] } }, "/v1/workspaces/{workspace}/bundles/analyze": { "post": { "description": "Parse and analyze a bundle source, returning a non-destructive preview.", "operationId": "analyze_bundle_v1_bundles_analyze_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AnalyzeRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImportPreview" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Analyze Bundle", "tags": [ "v1", "protected", "bundles" ] } }, "/v1/workspaces/{workspace}/bundles/install": { "post": { "description": "Install a canonical bundle: MCP instances, skills, agents and automations.\n\nAll or nothing: a failure removes whatever this install had created. A\nbundle or setup value that is invalid answers 422 (``code: bundle_invalid``);\nany other install failure answers 400 (``code: bundle_install_failed``). Both\nare problem+json with the message in ``detail`` and the blocking ``issues``.", "operationId": "install_bundle_v1_bundles_install_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InstallRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InstallResult" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Install Bundle", "tags": [ "v1", "protected", "bundles" ] } }, "/v1/workspaces/{workspace}/clients/": { "get": { "operationId": "list_clients_v1_clients__get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 100, "maximum": 1000, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "maximum": 1000000000, "minimum": 0, "title": "Offset", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/ClientResponse" }, "title": "Response List Clients V1 Clients Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Clients", "tags": [ "v1", "protected", "clients" ] }, "post": { "operationId": "create_client_v1_clients__post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientCreate" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Client", "tags": [ "v1", "protected", "clients" ] } }, "/v1/workspaces/{workspace}/clients/platform-toolsets": { "get": { "description": "Platform toolsets a client can carry, with the methods each can leave out.", "operationId": "list_platform_toolsets_v1_clients_platform_toolsets_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/PlatformToolsetResponse" }, "title": "Response List Platform Toolsets V1 Clients Platform Toolsets Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Platform Toolsets", "tags": [ "v1", "protected", "clients" ] } }, "/v1/workspaces/{workspace}/clients/{client_id}": { "delete": { "operationId": "delete_client_v1_clients__client_id__delete", "parameters": [ { "in": "path", "name": "client_id", "required": true, "schema": { "format": "uuid", "title": "Client Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Client", "tags": [ "v1", "protected", "clients" ] }, "get": { "operationId": "get_client_v1_clients__client_id__get", "parameters": [ { "in": "path", "name": "client_id", "required": true, "schema": { "format": "uuid", "title": "Client Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Client", "tags": [ "v1", "protected", "clients" ] }, "patch": { "operationId": "update_client_v1_clients__client_id__patch", "parameters": [ { "in": "path", "name": "client_id", "required": true, "schema": { "format": "uuid", "title": "Client Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientUpdate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ClientResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Client", "tags": [ "v1", "protected", "clients" ] } }, "/v1/workspaces/{workspace}/clients/{client_id}/mcp-instances": { "post": { "operationId": "add_mcp_instance_to_client_v1_clients__client_id__mcp_instances_post", "parameters": [ { "in": "path", "name": "client_id", "required": true, "schema": { "format": "uuid", "title": "Client Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/McpInstanceAssociationBody" } } }, "required": true }, "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Add Mcp Instance To Client", "tags": [ "v1", "protected", "clients" ] } }, "/v1/workspaces/{workspace}/clients/{client_id}/mcp-instances/{mcp_instance_id}": { "delete": { "operationId": "remove_mcp_instance_from_client_v1_clients__client_id__mcp_instances__mcp_instance_id__delete", "parameters": [ { "in": "path", "name": "client_id", "required": true, "schema": { "format": "uuid", "title": "Client Id", "type": "string" } }, { "in": "path", "name": "mcp_instance_id", "required": true, "schema": { "format": "uuid", "title": "Mcp Instance Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Remove Mcp Instance From Client", "tags": [ "v1", "protected", "clients" ] } }, "/v1/workspaces/{workspace}/clients/{client_id}/openapi-connections": { "post": { "operationId": "add_openapi_connection_to_client_v1_clients__client_id__openapi_connections_post", "parameters": [ { "in": "path", "name": "client_id", "required": true, "schema": { "format": "uuid", "title": "Client Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OpenAPIConnectionAssociationBody" } } }, "required": true }, "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Add Openapi Connection To Client", "tags": [ "v1", "protected", "clients" ] } }, "/v1/workspaces/{workspace}/clients/{client_id}/openapi-connections/{connection_id}": { "delete": { "operationId": "remove_openapi_connection_from_client_v1_clients__client_id__openapi_connections__connection_id__delete", "parameters": [ { "in": "path", "name": "client_id", "required": true, "schema": { "format": "uuid", "title": "Client Id", "type": "string" } }, { "in": "path", "name": "connection_id", "required": true, "schema": { "format": "uuid", "title": "Connection Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Remove Openapi Connection From Client", "tags": [ "v1", "protected", "clients" ] } }, "/v1/workspaces/{workspace}/clients/{client_id}/platform-toolsets": { "post": { "operationId": "add_platform_toolset_to_client_v1_clients__client_id__platform_toolsets_post", "parameters": [ { "in": "path", "name": "client_id", "required": true, "schema": { "format": "uuid", "title": "Client Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PlatformToolsetAssociationBody" } } }, "required": true }, "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Add Platform Toolset To Client", "tags": [ "v1", "protected", "clients" ] } }, "/v1/workspaces/{workspace}/clients/{client_id}/platform-toolsets/{toolset}": { "delete": { "description": "Detach a toolset by the namespace the client lists it under.", "operationId": "remove_platform_toolset_from_client_v1_clients__client_id__platform_toolsets__toolset__delete", "parameters": [ { "in": "path", "name": "client_id", "required": true, "schema": { "format": "uuid", "title": "Client Id", "type": "string" } }, { "in": "path", "name": "toolset", "required": true, "schema": { "title": "Toolset", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Remove Platform Toolset From Client", "tags": [ "v1", "protected", "clients" ] } }, "/v1/workspaces/{workspace}/clients/{client_id}/skills": { "post": { "operationId": "add_skill_to_client_v1_clients__client_id__skills_post", "parameters": [ { "in": "path", "name": "client_id", "required": true, "schema": { "format": "uuid", "title": "Client Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationBody" } } }, "required": true }, "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Add Skill To Client", "tags": [ "v1", "protected", "clients" ] } }, "/v1/workspaces/{workspace}/clients/{client_id}/skills/{skill_id}": { "delete": { "operationId": "remove_skill_from_client_v1_clients__client_id__skills__skill_id__delete", "parameters": [ { "in": "path", "name": "client_id", "required": true, "schema": { "format": "uuid", "title": "Client Id", "type": "string" } }, { "in": "path", "name": "skill_id", "required": true, "schema": { "format": "uuid", "title": "Skill Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Remove Skill From Client", "tags": [ "v1", "protected", "clients" ] } }, "/v1/workspaces/{workspace}/dashboard": { "get": { "description": "Aggregate workspace state for the operator dashboard.", "operationId": "get_dashboard_v1_dashboard_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DashboardResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Dashboard", "tags": [ "v1", "protected", "dashboard" ] } }, "/v1/workspaces/{workspace}/export": { "get": { "description": "Export the current workspace in the canonical Bundle YAML format.\n\nThe output is accepted by the bundle Analyze and Install flow and can\ninclude agents, MCPs, skills, cron automations, and supported webhook\nchannels. MCP credentials and Telegram tokens are setup-field references,\nnever exported values. Provider configurations are not represented by the\nBundle schema; configure them separately in the destination workspace.\n\nThe response is served as ``text/plain`` so generated API clients receive\nthe YAML body as a string.", "operationId": "export_workspace_config_v1_export_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "text/plain": { "schema": { "type": "string" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Export Workspace Config", "tags": [ "v1", "protected", "workspace-config" ] } }, "/v1/workspaces/{workspace}/files": { "get": { "description": "List the files a person put in the workspace.\n\nWhat a task produced is not among them: a task's files belong to that run\nand are browsed on the task itself, so they stay out of the workspace view\neven though ``tasks/{id}/workspace/{path}`` remains readable by that name.", "operationId": "list_workspace_files_v1_files_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceFileListResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Workspace Files", "tags": [ "v1", "protected", "files" ] } }, "/v1/workspaces/{workspace}/files/directories": { "post": { "description": "Persist an empty workspace folder as a trailing-slash object marker.", "operationId": "create_workspace_directory_v1_files_directories_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWorkspaceDirectoryRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceDirectoryResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Workspace Directory", "tags": [ "v1", "protected", "files" ] } }, "/v1/workspaces/{workspace}/files/download/{file_path}": { "get": { "description": "Stream a workspace file through the AgentArea API.", "operationId": "stream_workspace_file_v1_files_download__file_path__get", "parameters": [ { "in": "path", "name": "file_path", "required": true, "schema": { "title": "File Path", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Stream Workspace File", "tags": [ "v1", "protected", "files" ] } }, "/v1/workspaces/{workspace}/files/history": { "get": { "description": "Return the provenance trail for a workspace file, newest event first.", "operationId": "workspace_file_history_v1_files_history_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "path", "required": true, "schema": { "title": "Path", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ArtifactHistoryResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Workspace File History", "tags": [ "v1", "protected", "files" ] } }, "/v1/workspaces/{workspace}/files/move": { "post": { "description": "Relocate a workspace file or folder to another path.\n\nA folder is a key prefix rather than an object, so moving one walks every\nkey beneath it \u2014 including the trailing-slash marker that keeps an empty\nfolder visible in the listing. Reserved prefixes are refused at both ends:\n``tasks/`` belongs to a task's committed manifest, and ``.trash/`` is the\nrestore endpoint's alone.", "operationId": "move_workspace_file_v1_files_move_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MoveWorkspaceFileRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MovedFileResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Move Workspace File", "tags": [ "v1", "protected", "files" ] } }, "/v1/workspaces/{workspace}/files/restore/{file_path}": { "post": { "description": "Move an archived file back to the path it was archived from.\n\nA file that has taken that path since is archived first, as a delete would,\nand its trash path comes back as ``archived_current`` \u2014 a restore never\ndestroys anything. A path a write could not take (a file among its parents,\na folder at it) is a 409.", "operationId": "restore_workspace_file_v1_files_restore__file_path__post", "parameters": [ { "in": "path", "name": "file_path", "required": true, "schema": { "title": "File Path", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RestoredFileResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Restore Workspace File", "tags": [ "v1", "protected", "files" ] } }, "/v1/workspaces/{workspace}/files/upload-url": { "post": { "description": "Mint a presigned PUT for a task attachment uploaded directly to the store.\n\nThe client-declared sha256 is bound into the signature as ``ChecksumSHA256``,\nso the object store rejects a body that does not hash to it \u2014 the upload is\ncontent-verified without the API ever seeing the bytes. The returned ``ref``\nis what the task-create endpoint takes as an attachment.", "operationId": "create_attachment_upload_url_v1_files_upload_url_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PresignUploadRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PresignUploadResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Attachment Upload Url", "tags": [ "v1", "protected", "files" ] } }, "/v1/workspaces/{workspace}/files/upload-urls": { "post": { "description": "Diff a client's ``{path, sha256}`` manifest against workspace storage.\n\nFiles already stored under the same digest come back ``unchanged``; the\nrest get a presigned PUT bound to their digest, so the bytes go straight to\nthe object store. This is what ``agentarea files sync`` calls, and the same\nplan the MCP ``workspace_files.upload_urls`` tool returns.", "operationId": "plan_workspace_uploads_v1_files_upload_urls_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UploadPlanRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UploadPlanResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Plan Workspace Uploads", "tags": [ "v1", "protected", "files" ] } }, "/v1/workspaces/{workspace}/files/{file_path}": { "delete": { "description": "Archive a workspace file instead of destroying it.\n\nThe object moves under ``.trash/{timestamp}/`` and disappears from the\nlisting, so a mistaken delete is always recoverable through\n:func:`restore_workspace_file`. Task-owned and staging paths are not\ndeletable here: they belong to a task's committed manifest, not to the\nworkspace library.", "operationId": "delete_workspace_file_v1_files__file_path__delete", "parameters": [ { "in": "path", "name": "file_path", "required": true, "schema": { "title": "File Path", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ArchivedFileResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Workspace File", "tags": [ "v1", "protected", "files" ] }, "get": { "operationId": "download_workspace_file_v1_files__file_path__get", "parameters": [ { "in": "path", "name": "file_path", "required": true, "schema": { "title": "File Path", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceFileDownloadResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Download Workspace File", "tags": [ "v1", "protected", "files" ] } }, "/v1/workspaces/{workspace}/governance/effective-policy/preview": { "post": { "description": "Compute effective policy from rules without persisting a snapshot.\n\nUseful for UIs that need to show the merged workspace/agent/task ceiling\nbefore the user commits a task creation.", "operationId": "preview_effective_policy_v1_governance_effective_policy_preview_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EffectivePolicyPreviewRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EffectivePolicyResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Preview Effective Policy", "tags": [ "v1", "protected", "governance" ] } }, "/v1/workspaces/{workspace}/governance/task-policy-snapshots/{task_id}": { "get": { "description": "Read the effective governance policy persisted before workflow dispatch.", "operationId": "get_task_policy_snapshot_v1_governance_task_policy_snapshots__task_id__get", "parameters": [ { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EffectivePolicyResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Task Policy Snapshot", "tags": [ "v1", "protected", "governance" ] } }, "/v1/workspaces/{workspace}/inbox/": { "get": { "description": "List tasks requiring user attention.\n\nReturns tasks with actionable statuses (waiting_for_approval, completed, failed),\nnewest call for attention first: when an ended run ended, when a waiting task\nbegan to wait. Includes total count for badge/pagination.", "operationId": "get_inbox_items_v1_inbox__get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Filter to a specific inbox status", "in": "query", "name": "status", "required": false, "schema": { "anyOf": [ { "enum": [ "waiting_for_approval", "waiting_for_input", "completed", "failed" ], "type": "string" }, { "type": "null" } ], "description": "Filter to a specific inbox status", "title": "Status" } }, { "description": "Filter by agent ID", "in": "query", "name": "agent_id", "required": false, "schema": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "Filter by agent ID", "title": "Agent Id" } }, { "in": "query", "name": "page", "required": false, "schema": { "default": 1, "maximum": 1000000, "minimum": 1, "title": "Page", "type": "integer" } }, { "in": "query", "name": "page_size", "required": false, "schema": { "default": 100, "maximum": 200, "minimum": 1, "title": "Page Size", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InboxResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Inbox Items", "tags": [ "v1", "protected", "inbox" ] } }, "/v1/workspaces/{workspace}/inbox/decisions": { "get": { "description": "Answered approval requests, newest first: who decided what, and when.\n\nRead from the audit trail, where the tool audit records every decision.", "operationId": "list_approval_decisions_v1_inbox_decisions_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "page", "required": false, "schema": { "default": 1, "maximum": 1000000, "minimum": 1, "title": "Page", "type": "integer" } }, { "in": "query", "name": "page_size", "required": false, "schema": { "default": 50, "maximum": 200, "minimum": 1, "title": "Page Size", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApprovalDecisionsResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Approval Decisions", "tags": [ "v1", "protected", "inbox" ] } }, "/v1/workspaces/{workspace}/invitations": { "get": { "description": "List pending invitations for the workspace. Tokens are NOT returned.", "operationId": "list_invitations_v1_invitations_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/InvitationResponse" }, "title": "Response List Invitations V1 Invitations Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Invitations", "tags": [ "v1", "protected", "workspace-invitations" ] }, "post": { "description": "Create an invitation link for the given workspace.\n\nThe plaintext ``token`` is returned exactly once in the response.\nThe caller delivers it however they want (link, email, Slack).", "operationId": "create_invitation_v1_invitations_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateInvitationBody" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InvitationCreatedResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Invitation", "tags": [ "v1", "protected", "workspace-invitations" ] } }, "/v1/workspaces/{workspace}/invitations/{invitation_id}": { "delete": { "description": "Revoke a pending invitation. Idempotent \u2014 already-resolved invitations are no-ops.", "operationId": "revoke_invitation_v1_invitations__invitation_id__delete", "parameters": [ { "in": "path", "name": "invitation_id", "required": true, "schema": { "format": "uuid", "title": "Invitation Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Revoke Invitation", "tags": [ "v1", "protected", "workspace-invitations" ] } }, "/v1/workspaces/{workspace}/logo": { "delete": { "description": "Remove the workspace logo; the workspace shows its initials again.", "operationId": "delete_workspace_logo_v1_logo_delete", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Workspace Logo", "tags": [ "v1", "protected", "workspaces" ] }, "put": { "description": "Set the workspace logo, replacing and deleting any previous one.", "operationId": "upload_workspace_logo_v1_logo_put", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_upload_workspace_logo_v1_logo_put" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Upload Workspace Logo", "tags": [ "v1", "protected", "workspaces" ] } }, "/v1/workspaces/{workspace}/mcp-auth-configs/": { "get": { "description": "List all MCP auth configs in the workspace.", "operationId": "list_mcp_auth_configs_v1_mcp_auth_configs__get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/MCPAuthConfigResponse" }, "title": "Response List Mcp Auth Configs V1 Mcp Auth Configs Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Mcp Auth Configs", "tags": [ "v1", "protected", "mcp-auth-configs" ] }, "post": { "description": "Create a new MCP authentication configuration.", "operationId": "create_mcp_auth_config_v1_mcp_auth_configs__post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPAuthConfigCreateRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPAuthConfigResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Mcp Auth Config", "tags": [ "v1", "protected", "mcp-auth-configs" ] } }, "/v1/workspaces/{workspace}/mcp-auth-configs/{config_id}": { "delete": { "operationId": "delete_mcp_auth_config_v1_mcp_auth_configs__config_id__delete", "parameters": [ { "in": "path", "name": "config_id", "required": true, "schema": { "format": "uuid", "title": "Config Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Mcp Auth Config", "tags": [ "v1", "protected", "mcp-auth-configs" ] }, "get": { "operationId": "get_mcp_auth_config_v1_mcp_auth_configs__config_id__get", "parameters": [ { "in": "path", "name": "config_id", "required": true, "schema": { "format": "uuid", "title": "Config Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPAuthConfigResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Mcp Auth Config", "tags": [ "v1", "protected", "mcp-auth-configs" ] }, "put": { "operationId": "update_mcp_auth_config_v1_mcp_auth_configs__config_id__put", "parameters": [ { "in": "path", "name": "config_id", "required": true, "schema": { "format": "uuid", "title": "Config Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPAuthConfigUpdateRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPAuthConfigResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Mcp Auth Config", "tags": [ "v1", "protected", "mcp-auth-configs" ] } }, "/v1/workspaces/{workspace}/mcp-oauth-links/": { "post": { "description": "Store OAuth provider config for a container MCP instance.", "operationId": "create_oauth_link_v1_mcp_oauth_links__post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuthLinkCreateRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuthLinkResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Oauth Link", "tags": [ "v1", "protected", "mcp-oauth-links" ] } }, "/v1/workspaces/{workspace}/mcp-oauth-links/instance/{instance_id}": { "get": { "description": "List all OAuth links for a given MCP server instance.", "operationId": "list_oauth_links_for_instance_v1_mcp_oauth_links_instance__instance_id__get", "parameters": [ { "in": "path", "name": "instance_id", "required": true, "schema": { "format": "uuid", "title": "Instance Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/OAuthLinkResponse" }, "title": "Response List Oauth Links For Instance V1 Mcp Oauth Links Instance Instance Id Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Oauth Links For Instance", "tags": [ "v1", "protected", "mcp-oauth-links" ] } }, "/v1/workspaces/{workspace}/mcp-oauth-links/{link_id}": { "delete": { "description": "Immediately revoke an OAuth-protected link.", "operationId": "revoke_oauth_link_v1_mcp_oauth_links__link_id__delete", "parameters": [ { "in": "path", "name": "link_id", "required": true, "schema": { "format": "uuid", "title": "Link Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Revoke Oauth Link", "tags": [ "v1", "protected", "mcp-oauth-links" ] }, "get": { "operationId": "get_oauth_link_v1_mcp_oauth_links__link_id__get", "parameters": [ { "in": "path", "name": "link_id", "required": true, "schema": { "format": "uuid", "title": "Link Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuthLinkResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Oauth Link", "tags": [ "v1", "protected", "mcp-oauth-links" ] } }, "/v1/workspaces/{workspace}/mcp-server-instances/": { "get": { "description": "List all MCP server instances in the workspace.", "operationId": "list_mcp_server_instances_v1_mcp_server_instances__get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/MCPServerInstanceResponse" }, "title": "Response List Mcp Server Instances V1 Mcp Server Instances Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Mcp Server Instances", "tags": [ "v1", "protected", "mcp-server-instances" ] }, "post": { "description": "Create a new MCP server instance.\n\nReturns 201 for url (synchronous verification completed).\nReturns 202 for docker/command (background verification in progress).", "operationId": "create_mcp_server_instance_v1_mcp_server_instances__post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPServerInstanceCreate" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPServerInstanceResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Mcp Server Instance", "tags": [ "v1", "protected", "mcp-server-instances" ] } }, "/v1/workspaces/{workspace}/mcp-server-instances/check": { "post": { "description": "Check if an MCP server instance configuration is valid via the Go manager.", "operationId": "check_mcp_server_instance_configuration_v1_mcp_server_instances_check_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "title": "Data", "type": "object" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" }, "503": { "description": "The MCP manager that validates configurations is unreachable" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Check Mcp Server Instance Configuration", "tags": [ "v1", "protected", "mcp-server-instances" ] } }, "/v1/workspaces/{workspace}/mcp-server-instances/health/containers": { "get": { "description": "Health of this workspace's MCP workloads.\n\nThe manager also has a route that answers for every workload it runs, which is\nthe wrong thing to hand a caller: its rows carry service names and container\nids belonging to other workspaces. The instance list comes from the\nworkspace-scoped service instead, and only those ids are asked about, so the\nanswer cannot name a workload the caller is not entitled to see.\n\nA workload the manager reports as unhealthy, has never heard of, or cannot be\nreached about is a fact about that instance, not a failure of the request: each\nis reported per instance and the endpoint still answers 200.", "operationId": "get_containers_health_v1_mcp_server_instances_health_containers_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPContainersHealthResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Containers Health", "tags": [ "v1", "protected", "mcp-server-instances" ] } }, "/v1/workspaces/{workspace}/mcp-server-instances/validate": { "post": { "description": "Stateless spec validation. For type=url, probes with list_tools (3s budget).", "operationId": "validate_instance_spec_v1_mcp_server_instances_validate_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ValidateRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Validate Instance Spec", "tags": [ "v1", "protected", "mcp-server-instances" ] } }, "/v1/workspaces/{workspace}/mcp-server-instances/validate-connection": { "post": { "description": "Test a connection to an MCP server without creating an instance.\n\n``server_id`` (optional) is the catalog spec being connected; with it, an\nauth failure also reports the spec endpoint's ``auth_methods``.", "operationId": "validate_connection_v1_mcp_server_instances_validate_connection_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "title": "Data", "type": "object" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Validate Connection", "tags": [ "v1", "protected", "mcp-server-instances" ] } }, "/v1/workspaces/{workspace}/mcp-server-instances/with-spec": { "post": { "description": "Create an MCP server spec and instance in one transaction.", "operationId": "create_mcp_server_connection_v1_mcp_server_instances_with_spec_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPServerConnectionCreateRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPServerInstanceResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Mcp Server Connection", "tags": [ "v1", "protected", "mcp-server-instances" ] } }, "/v1/workspaces/{workspace}/mcp-server-instances/{instance_id}": { "delete": { "operationId": "delete_mcp_server_instance_v1_mcp_server_instances__instance_id__delete", "parameters": [ { "in": "path", "name": "instance_id", "required": true, "schema": { "format": "uuid", "title": "Instance Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Mcp Server Instance", "tags": [ "v1", "protected", "mcp-server-instances" ] }, "get": { "operationId": "get_mcp_server_instance_v1_mcp_server_instances__instance_id__get", "parameters": [ { "in": "path", "name": "instance_id", "required": true, "schema": { "format": "uuid", "title": "Instance Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPServerInstanceResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Mcp Server Instance", "tags": [ "v1", "protected", "mcp-server-instances" ] }, "patch": { "operationId": "update_mcp_server_instance_v1_mcp_server_instances__instance_id__patch", "parameters": [ { "in": "path", "name": "instance_id", "required": true, "schema": { "format": "uuid", "title": "Instance Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPServerInstanceUpdate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPServerInstanceResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Mcp Server Instance", "tags": [ "v1", "protected", "mcp-server-instances" ] } }, "/v1/workspaces/{workspace}/mcp-server-instances/{instance_id}/consumers": { "get": { "description": "List agents in the workspace that attach this MCP instance, with their enabled tools.\n\nA read-only reverse lookup over the agents' ``tools`` JSON. Which tools need\nconfirmation is not read from that JSON \u2014 it lives in approval policy rules,\nthe single source of truth \u2014 so it is resolved from there per agent.", "operationId": "list_mcp_server_instance_consumers_v1_mcp_server_instances__instance_id__consumers_get", "parameters": [ { "in": "path", "name": "instance_id", "required": true, "schema": { "format": "uuid", "title": "Instance Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/MCPInstanceConsumer" }, "title": "Response List Mcp Server Instance Consumers V1 Mcp Server Instances Instance Id Consumers Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Mcp Server Instance Consumers", "tags": [ "v1", "protected", "mcp-server-instances" ] } }, "/v1/workspaces/{workspace}/mcp-server-instances/{instance_id}/discover-tools": { "post": { "description": "Re-discover the tools exposed by an MCP server instance.\n\nRe-runs verification (which calls list_tools on the server using any\nOAuth/API-key credentials linked via auth_config_id) and persists the\nrefreshed tool list. Returns {tools, verification}.", "operationId": "discover_mcp_server_instance_tools_v1_mcp_server_instances__instance_id__discover_tools_post", "parameters": [ { "in": "path", "name": "instance_id", "required": true, "schema": { "format": "uuid", "title": "Instance Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Discover Mcp Server Instance Tools", "tags": [ "v1", "protected", "mcp-server-instances" ] } }, "/v1/workspaces/{workspace}/mcp-server-instances/{instance_id}/environment": { "get": { "operationId": "get_instance_environment_v1_mcp_server_instances__instance_id__environment_get", "parameters": [ { "in": "path", "name": "instance_id", "required": true, "schema": { "format": "uuid", "title": "Instance Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Instance Environment", "tags": [ "v1", "protected", "mcp-server-instances" ] } }, "/v1/workspaces/{workspace}/mcp-server-instances/{instance_id}/oauth-link": { "post": { "operationId": "create_oauth_link_v1_mcp_server_instances__instance_id__oauth_link_post", "parameters": [ { "in": "path", "name": "instance_id", "required": true, "schema": { "format": "uuid", "title": "Instance Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": true, "title": "Data", "type": "object" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Oauth Link", "tags": [ "v1", "protected", "mcp-server-instances" ] } }, "/v1/workspaces/{workspace}/mcp-server-instances/{instance_id}/oauth-links": { "get": { "operationId": "list_oauth_links_v1_mcp_server_instances__instance_id__oauth_links_get", "parameters": [ { "in": "path", "name": "instance_id", "required": true, "schema": { "format": "uuid", "title": "Instance Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Oauth Links", "tags": [ "v1", "protected", "mcp-server-instances" ] } }, "/v1/workspaces/{workspace}/mcp-server-instances/{instance_id}/probe": { "post": { "description": "Probe a URL-type MCP instance to detect its auth requirements.", "operationId": "probe_instance_auth_v1_mcp_server_instances__instance_id__probe_post", "parameters": [ { "in": "path", "name": "instance_id", "required": true, "schema": { "format": "uuid", "title": "Instance Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Probe Instance Auth", "tags": [ "v1", "protected", "mcp-server-instances" ] } }, "/v1/workspaces/{workspace}/mcp-server-instances/{instance_id}/test-auth": { "post": { "description": "Test the authentication configuration attached to an MCP server instance.", "operationId": "run_test_auth_v1_mcp_server_instances__instance_id__test_auth_post", "parameters": [ { "in": "path", "name": "instance_id", "required": true, "schema": { "format": "uuid", "title": "Instance Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Run Test Auth", "tags": [ "v1", "protected", "mcp-server-instances" ] } }, "/v1/workspaces/{workspace}/mcp-server-instances/{instance_id}/verify": { "post": { "description": "Run verification on an MCP server instance and return the fresh result synchronously.\n\nHTTP 200 regardless of verification outcome \u2014 the call itself succeeded.\nCheck verification.status in the response to determine success/failure.", "operationId": "verify_mcp_server_instance_v1_mcp_server_instances__instance_id__verify_post", "parameters": [ { "in": "path", "name": "instance_id", "required": true, "schema": { "format": "uuid", "title": "Instance Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Verify Mcp Server Instance", "tags": [ "v1", "protected", "mcp-server-instances" ] } }, "/v1/workspaces/{workspace}/mcp-servers/": { "get": { "operationId": "list_mcp_servers_v1_mcp_servers__get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "status", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status" } }, { "in": "query", "name": "is_public", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Public" } }, { "in": "query", "name": "tag", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tag" } }, { "description": "Return exactly these specs, workspace or catalog, e.g. the specs of the instances a page shows. At most 100 per request.", "in": "query", "name": "ids", "required": false, "schema": { "anyOf": [ { "items": { "format": "uuid", "type": "string" }, "maxItems": 100, "type": "array" }, { "type": "null" } ], "description": "Return exactly these specs, workspace or catalog, e.g. the specs of the instances a page shows. At most 100 per request.", "title": "Ids" } }, { "in": "query", "name": "page", "required": false, "schema": { "default": 1, "maximum": 1000000, "minimum": 1, "title": "Page", "type": "integer" } }, { "in": "query", "name": "page_size", "required": false, "schema": { "default": 50, "maximum": 100, "minimum": 1, "title": "Page Size", "type": "integer" } }, { "in": "query", "name": "search", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Search" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaginatedResponse_MCPServerResponse_" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Mcp Servers", "tags": [ "v1", "protected", "mcp-servers" ] }, "post": { "operationId": "create_mcp_server_v1_mcp_servers__post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPServerCreate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPServerResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Mcp Server", "tags": [ "v1", "protected", "mcp-servers" ] } }, "/v1/workspaces/{workspace}/mcp-servers/{server_id}": { "delete": { "operationId": "delete_mcp_server_v1_mcp_servers__server_id__delete", "parameters": [ { "in": "path", "name": "server_id", "required": true, "schema": { "title": "Server Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Mcp Server", "tags": [ "v1", "protected", "mcp-servers" ] }, "get": { "operationId": "get_mcp_server_v1_mcp_servers__server_id__get", "parameters": [ { "in": "path", "name": "server_id", "required": true, "schema": { "title": "Server Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPServerResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Mcp Server", "tags": [ "v1", "protected", "mcp-servers" ] }, "patch": { "operationId": "update_mcp_server_v1_mcp_servers__server_id__patch", "parameters": [ { "in": "path", "name": "server_id", "required": true, "schema": { "title": "Server Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPServerUpdate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPServerResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Mcp Server", "tags": [ "v1", "protected", "mcp-servers" ] } }, "/v1/workspaces/{workspace}/mcp-servers/{server_id}/deploy": { "post": { "operationId": "deploy_mcp_server_v1_mcp_servers__server_id__deploy_post", "parameters": [ { "in": "path", "name": "server_id", "required": true, "schema": { "title": "Server Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Deploy Mcp Server", "tags": [ "v1", "protected", "mcp-servers" ] } }, "/v1/workspaces/{workspace}/members": { "get": { "operationId": "list_members_v1_members_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/MemberResponse" }, "title": "Response List Members V1 Members Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Members", "tags": [ "v1", "protected", "workspace-invitations" ] } }, "/v1/workspaces/{workspace}/members/{user_id}": { "delete": { "description": "Remove a member from the workspace.\n\nThe owner keeps their access until ownership moves, and the last member\ncannot leave \u2014 either would strand the workspace and everything in it.\n202 means the membership has ended but the member still has access until\nthe revocation, which is retried until it succeeds, reaches the graph.", "operationId": "remove_member_v1_members__user_id__delete", "parameters": [ { "in": "path", "name": "user_id", "required": true, "schema": { "maxLength": 255, "minLength": 1, "title": "User Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "202": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MemberRemovalPendingResponse" } } }, "description": "Membership ended; graph access is still being revoked" }, "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Remove Member", "tags": [ "v1", "protected", "workspace-invitations" ] } }, "/v1/workspaces/{workspace}/model-instances/": { "get": { "description": "List model instances, optionally only those whose model is of ``kind``.", "operationId": "list_model_instances_v1_model_instances__get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "provider_config_id", "required": false, "schema": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Provider Config Id" } }, { "in": "query", "name": "model_spec_id", "required": false, "schema": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Model Spec Id" } }, { "in": "query", "name": "is_active", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Active" } }, { "in": "query", "name": "kind", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/ModelKind" }, { "type": "null" } ], "title": "Kind" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/ModelInstanceResponse" }, "title": "Response List Model Instances V1 Model Instances Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Model Instances", "tags": [ "v1", "protected", "model-instances" ] }, "post": { "description": "Create a new model instance.", "operationId": "create_model_instance_v1_model_instances__post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModelInstanceCreate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModelInstanceResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Model Instance", "tags": [ "v1", "protected", "model-instances" ] } }, "/v1/workspaces/{workspace}/model-instances/bulk": { "post": { "description": "Create many model instances in a single request.\n\nPartial-success semantics: each item is created independently and per-item\nfailures are returned in `failed` rather than aborting the whole batch.\nUse this from UIs that let users select N models from a discovered list to\navoid N HTTP round-trips.", "operationId": "create_model_instances_bulk_v1_model_instances_bulk_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModelInstanceBulkCreateRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModelInstanceBulkCreateResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Model Instances Bulk", "tags": [ "v1", "protected", "model-instances" ] } }, "/v1/workspaces/{workspace}/model-instances/test": { "post": { "description": "Test a model instance configuration before creating it.", "operationId": "validate_model_instance_v1_model_instances_test_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModelInstanceTestRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModelInstanceTestResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Validate Model Instance", "tags": [ "v1", "protected", "model-instances" ] } }, "/v1/workspaces/{workspace}/model-instances/{instance_id}": { "delete": { "description": "Delete a model instance.", "operationId": "delete_model_instance_v1_model_instances__instance_id__delete", "parameters": [ { "in": "path", "name": "instance_id", "required": true, "schema": { "format": "uuid", "title": "Instance Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Model Instance", "tags": [ "v1", "protected", "model-instances" ] }, "get": { "description": "Get a specific model instance.", "operationId": "get_model_instance_v1_model_instances__instance_id__get", "parameters": [ { "in": "path", "name": "instance_id", "required": true, "schema": { "format": "uuid", "title": "Instance Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModelInstanceResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Model Instance", "tags": [ "v1", "protected", "model-instances" ] } }, "/v1/workspaces/{workspace}/model-specs/": { "get": { "description": "List model specifications with optional filtering.", "operationId": "list_model_specs_v1_model_specs__get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "provider_spec_id", "required": false, "schema": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Provider Spec Id" } }, { "in": "query", "name": "is_active", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Active" } }, { "in": "query", "name": "kind", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/ModelKind" }, { "type": "null" } ], "title": "Kind" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/agentarea_api__api__v1__model_specs__ModelSpecResponse" }, "title": "Response List Model Specs V1 Model Specs Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Model Specs", "tags": [ "v1", "protected", "model-specs" ] }, "post": { "description": "Create a new model specification.", "operationId": "create_model_spec_v1_model_specs__post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModelSpecCreate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/agentarea_api__api__v1__model_specs__ModelSpecResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Model Spec", "tags": [ "v1", "protected", "model-specs" ] } }, "/v1/workspaces/{workspace}/model-specs/by-provider/{provider_spec_id}": { "get": { "description": "List all model specifications for a specific provider.", "operationId": "list_model_specs_by_provider_v1_model_specs_by_provider__provider_spec_id__get", "parameters": [ { "in": "path", "name": "provider_spec_id", "required": true, "schema": { "format": "uuid", "title": "Provider Spec Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "is_active", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Active" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/agentarea_api__api__v1__model_specs__ModelSpecResponse" }, "title": "Response List Model Specs By Provider V1 Model Specs By Provider Provider Spec Id Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Model Specs By Provider", "tags": [ "v1", "protected", "model-specs" ] } }, "/v1/workspaces/{workspace}/model-specs/by-provider/{provider_spec_id}/{model_name}": { "get": { "description": "Get a specific model specification by provider and model name.", "operationId": "get_model_spec_by_provider_and_name_v1_model_specs_by_provider__provider_spec_id___model_name__get", "parameters": [ { "in": "path", "name": "provider_spec_id", "required": true, "schema": { "format": "uuid", "title": "Provider Spec Id", "type": "string" } }, { "in": "path", "name": "model_name", "required": true, "schema": { "title": "Model Name", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/agentarea_api__api__v1__model_specs__ModelSpecResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Model Spec By Provider And Name", "tags": [ "v1", "protected", "model-specs" ] } }, "/v1/workspaces/{workspace}/model-specs/upsert": { "post": { "description": "Create or update a model specification by provider and model name.\n\nThis endpoint is useful for bulk operations and bootstrapping.", "operationId": "upsert_model_spec_v1_model_specs_upsert_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModelSpecCreate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/agentarea_api__api__v1__model_specs__ModelSpecResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Upsert Model Spec", "tags": [ "v1", "protected", "model-specs" ] } }, "/v1/workspaces/{workspace}/model-specs/{model_spec_id}": { "delete": { "description": "Delete a model specification.", "operationId": "delete_model_spec_v1_model_specs__model_spec_id__delete", "parameters": [ { "in": "path", "name": "model_spec_id", "required": true, "schema": { "format": "uuid", "title": "Model Spec Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Model Spec", "tags": [ "v1", "protected", "model-specs" ] }, "get": { "description": "Get a specific model specification by ID.", "operationId": "get_model_spec_v1_model_specs__model_spec_id__get", "parameters": [ { "in": "path", "name": "model_spec_id", "required": true, "schema": { "format": "uuid", "title": "Model Spec Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/agentarea_api__api__v1__model_specs__ModelSpecResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Model Spec", "tags": [ "v1", "protected", "model-specs" ] }, "patch": { "description": "Update a model specification.", "operationId": "update_model_spec_v1_model_specs__model_spec_id__patch", "parameters": [ { "in": "path", "name": "model_spec_id", "required": true, "schema": { "format": "uuid", "title": "Model Spec Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModelSpecUpdate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/agentarea_api__api__v1__model_specs__ModelSpecResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Model Spec", "tags": [ "v1", "protected", "model-specs" ] } }, "/v1/workspaces/{workspace}/network/people-access": { "get": { "description": "Inspect current-workspace people's ``agent:execute`` admission.\n\nUses the existing workspace-management authorization gate. Membership and\nownership establish evaluation subjects; this never acts as those users.\nAt most 100 people and 100 agents are evaluated, with ``complete=False``\nwhen either list is truncated. Results assume an authenticated participant\nand do not represent the restrictions of a particular token or task.\n\nAn intentionally disabled membership directory exposes only the persisted\nworkspace owner, with ``directory_status=disabled``, ``total_people=None``\nand ``complete=False``. An enabled directory that fails still returns 503.", "operationId": "get_network_people_access_v1_network_people_access_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NetworkPeopleAccessResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Network People Access", "tags": [ "v1", "protected", "network" ] } }, "/v1/workspaces/{workspace}/network/topology": { "get": { "description": "Get the full network topology for the current workspace.\n\nReturns all agents, skills, MCP instances, and triggers as nodes,\nwith edges representing their relationships.\n\nEach entity type is fetched in its own DB session so the four queries\ncan run concurrently via ``asyncio.gather`` without sharing a single\nasync session (which is not safe for concurrent use).", "operationId": "get_network_topology_v1_network_topology_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NetworkTopologyResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Network Topology", "tags": [ "v1", "protected", "network" ] } }, "/v1/workspaces/{workspace}/oauth/authorize": { "post": { "description": "Start a sign-in and return the provider's authorization URL to send the user to.", "operationId": "oauth_authorize_v1_oauth_authorize_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuthAuthorizeRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuthAuthorizeResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Oauth Authorize", "tags": [ "v1", "protected", "oauth-connect" ] } }, "/v1/workspaces/{workspace}/oauth/preflight": { "get": { "description": "Report whether a connection can be authorized, and with what.\n\nEvery outcome is a 200: \"this server has no OAuth\" is an answer the UI\nrenders, not a failure it has to decode.", "operationId": "oauth_preflight_v1_oauth_preflight_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "MCP instance to inspect", "in": "query", "name": "instance_id", "required": false, "schema": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "MCP instance to inspect", "title": "Instance Id" } }, { "description": "Catalog MCP spec to inspect before any instance exists", "in": "query", "name": "server_id", "required": false, "schema": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "Catalog MCP spec to inspect before any instance exists", "title": "Server Id" } }, { "description": "Catalog API to inspect before connecting it", "in": "query", "name": "catalog_item_id", "required": false, "schema": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "Catalog API to inspect before connecting it", "title": "Catalog Item Id" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuthPreflightResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Oauth Preflight", "tags": [ "v1", "protected", "oauth-connect" ] } }, "/v1/workspaces/{workspace}/openapi-connections/": { "get": { "operationId": "list_connections_v1_openapi_connections__get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "status", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status" } }, { "in": "query", "name": "search", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Search" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 100, "maximum": 1000, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "maximum": 1000000000, "minimum": 0, "title": "Offset", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/OpenAPIConnectionResponse" }, "title": "Response List Connections V1 Openapi Connections Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Connections", "tags": [ "v1", "protected", "openapi-connections" ] }, "post": { "operationId": "create_connection_v1_openapi_connections__post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OpenAPIConnectionCreate" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OpenAPIConnectionResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Connection", "tags": [ "v1", "protected", "openapi-connections" ] } }, "/v1/workspaces/{workspace}/openapi-connections/preview-spec": { "post": { "description": "Fetch/parse an OpenAPI spec and return metadata + tools without creating a connection.\n\nThe service dependency ensures authentication is enforced.", "operationId": "preview_spec_v1_openapi_connections_preview_spec_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpecPreviewRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpecPreviewResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Preview Spec", "tags": [ "v1", "protected", "openapi-connections" ] } }, "/v1/workspaces/{workspace}/openapi-connections/{connection_id}": { "delete": { "operationId": "delete_connection_v1_openapi_connections__connection_id__delete", "parameters": [ { "in": "path", "name": "connection_id", "required": true, "schema": { "format": "uuid", "title": "Connection Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Connection", "tags": [ "v1", "protected", "openapi-connections" ] }, "get": { "operationId": "get_connection_v1_openapi_connections__connection_id__get", "parameters": [ { "in": "path", "name": "connection_id", "required": true, "schema": { "format": "uuid", "title": "Connection Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OpenAPIConnectionResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Connection", "tags": [ "v1", "protected", "openapi-connections" ] }, "patch": { "operationId": "update_connection_v1_openapi_connections__connection_id__patch", "parameters": [ { "in": "path", "name": "connection_id", "required": true, "schema": { "format": "uuid", "title": "Connection Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OpenAPIConnectionUpdate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OpenAPIConnectionResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Connection", "tags": [ "v1", "protected", "openapi-connections" ] } }, "/v1/workspaces/{workspace}/openapi-connections/{connection_id}/discover-tools": { "post": { "operationId": "discover_tools_v1_openapi_connections__connection_id__discover_tools_post", "parameters": [ { "in": "path", "name": "connection_id", "required": true, "schema": { "format": "uuid", "title": "Connection Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Discover Tools", "tags": [ "v1", "protected", "openapi-connections" ] } }, "/v1/workspaces/{workspace}/policies": { "get": { "description": "List policy rules in the current workspace.", "operationId": "list_policy_rules_v1_policies_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "subject_type", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/PolicySubjectType" }, { "type": "null" } ], "title": "Subject Type" } }, { "in": "query", "name": "subject_id", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Subject Id" } }, { "in": "query", "name": "effect", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/PolicyEffect" }, { "type": "null" } ], "title": "Effect" } }, { "in": "query", "name": "target", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Target" } }, { "in": "query", "name": "enabled", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Enabled" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/PolicyRuleResponse" }, "title": "Response List Policy Rules V1 Policies Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Policy Rules", "tags": [ "v1", "protected", "policies" ] }, "post": { "description": "Create a policy rule in the current workspace.", "operationId": "create_policy_rule_v1_policies_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyRuleCreateRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyRuleResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Policy Rule", "tags": [ "v1", "protected", "policies" ] } }, "/v1/workspaces/{workspace}/policies/{rule_id}": { "delete": { "description": "Delete a policy rule.", "operationId": "delete_policy_rule_v1_policies__rule_id__delete", "parameters": [ { "in": "path", "name": "rule_id", "required": true, "schema": { "format": "uuid", "title": "Rule Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Policy Rule", "tags": [ "v1", "protected", "policies" ] }, "get": { "description": "Read one policy rule in the current workspace.", "operationId": "get_policy_rule_v1_policies__rule_id__get", "parameters": [ { "in": "path", "name": "rule_id", "required": true, "schema": { "format": "uuid", "title": "Rule Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyRuleResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Policy Rule", "tags": [ "v1", "protected", "policies" ] }, "patch": { "description": "Partially update a policy rule.", "operationId": "update_policy_rule_v1_policies__rule_id__patch", "parameters": [ { "in": "path", "name": "rule_id", "required": true, "schema": { "format": "uuid", "title": "Rule Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyRuleUpdateRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyRuleResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Policy Rule", "tags": [ "v1", "protected", "policies" ] } }, "/v1/workspaces/{workspace}/principals": { "get": { "description": "Resolve the given ids. Unresolvable ids are absent from the response.", "operationId": "resolve_principals_v1_principals_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Principal ids to resolve", "in": "query", "name": "ids", "required": false, "schema": { "description": "Principal ids to resolve", "items": { "type": "string" }, "title": "Ids", "type": "array" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/PrincipalResponse" }, "title": "Response Resolve Principals V1 Principals Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Resolve Principals", "tags": [ "v1", "protected", "principals" ] } }, "/v1/workspaces/{workspace}/projects/": { "get": { "description": "List all projects in the current workspace.", "operationId": "list_projects_v1_projects__get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 100, "maximum": 1000, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "maximum": 1000000000, "minimum": 0, "title": "Offset", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/ProjectResponse" }, "title": "Response List Projects V1 Projects Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Projects", "tags": [ "v1", "protected", "projects" ] }, "post": { "description": "Create a new project.", "operationId": "create_project_v1_projects__post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectCreate" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Project", "tags": [ "v1", "protected", "projects" ] } }, "/v1/workspaces/{workspace}/projects/{project_id}": { "delete": { "description": "Delete a project.", "operationId": "delete_project_v1_projects__project_id__delete", "parameters": [ { "in": "path", "name": "project_id", "required": true, "schema": { "format": "uuid", "title": "Project Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Project", "tags": [ "v1", "protected", "projects" ] }, "get": { "description": "Get a specific project by ID.", "operationId": "get_project_v1_projects__project_id__get", "parameters": [ { "in": "path", "name": "project_id", "required": true, "schema": { "format": "uuid", "title": "Project Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Project", "tags": [ "v1", "protected", "projects" ] }, "patch": { "description": "Update a project's fields.", "operationId": "update_project_v1_projects__project_id__patch", "parameters": [ { "in": "path", "name": "project_id", "required": true, "schema": { "format": "uuid", "title": "Project Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectUpdate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Project", "tags": [ "v1", "protected", "projects" ] } }, "/v1/workspaces/{workspace}/projects/{project_id}/agents": { "post": { "description": "Add an agent to a project.", "operationId": "add_agent_to_project_v1_projects__project_id__agents_post", "parameters": [ { "in": "path", "name": "project_id", "required": true, "schema": { "format": "uuid", "title": "Project Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationBody" } } }, "required": true }, "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Add Agent To Project", "tags": [ "v1", "protected", "projects" ] } }, "/v1/workspaces/{workspace}/projects/{project_id}/agents/{agent_id}": { "delete": { "description": "Remove an agent from a project.", "operationId": "remove_agent_from_project_v1_projects__project_id__agents__agent_id__delete", "parameters": [ { "in": "path", "name": "project_id", "required": true, "schema": { "format": "uuid", "title": "Project Id", "type": "string" } }, { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Remove Agent From Project", "tags": [ "v1", "protected", "projects" ] } }, "/v1/workspaces/{workspace}/projects/{project_id}/files": { "get": { "description": "List files under the project's prefix.", "operationId": "list_project_files_v1_projects__project_id__files_get", "parameters": [ { "in": "path", "name": "project_id", "required": true, "schema": { "format": "uuid", "title": "Project Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectFileListResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Project Files", "tags": [ "v1", "protected", "projects" ] } }, "/v1/workspaces/{workspace}/projects/{project_id}/files/download/{file_path}": { "get": { "description": "Stream a project file through the AgentArea API.", "operationId": "stream_project_file_v1_projects__project_id__files_download__file_path__get", "parameters": [ { "in": "path", "name": "project_id", "required": true, "schema": { "format": "uuid", "title": "Project Id", "type": "string" } }, { "in": "path", "name": "file_path", "required": true, "schema": { "title": "File Path", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Stream Project File", "tags": [ "v1", "protected", "projects" ] } }, "/v1/workspaces/{workspace}/projects/{project_id}/files/upload-urls": { "post": { "description": "Diff a ``{path, sha256}`` manifest against a project's files.\n\nPaths are relative to the project and are planned under its prefix, so a\npath that tries to leave it comes back as a per-entry ``error``. The bytes\ngo straight to the object store through the returned presigned PUTs.", "operationId": "plan_project_uploads_v1_projects__project_id__files_upload_urls_post", "parameters": [ { "in": "path", "name": "project_id", "required": true, "schema": { "format": "uuid", "title": "Project Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UploadPlanRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UploadPlanResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Plan Project Uploads", "tags": [ "v1", "protected", "projects" ] } }, "/v1/workspaces/{workspace}/projects/{project_id}/files/{file_path}": { "delete": { "description": "Delete a file from the project's prefix.", "operationId": "delete_project_file_v1_projects__project_id__files__file_path__delete", "parameters": [ { "in": "path", "name": "project_id", "required": true, "schema": { "format": "uuid", "title": "Project Id", "type": "string" } }, { "in": "path", "name": "file_path", "required": true, "schema": { "title": "File Path", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Project File", "tags": [ "v1", "protected", "projects" ] }, "get": { "description": "Return an AgentArea API URL for a project file.", "operationId": "download_project_file_v1_projects__project_id__files__file_path__get", "parameters": [ { "in": "path", "name": "project_id", "required": true, "schema": { "format": "uuid", "title": "Project Id", "type": "string" } }, { "in": "path", "name": "file_path", "required": true, "schema": { "title": "File Path", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProjectFileDownloadResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Download Project File", "tags": [ "v1", "protected", "projects" ] } }, "/v1/workspaces/{workspace}/projects/{project_id}/mcp-instances": { "post": { "description": "Add an MCP server instance to a project.", "operationId": "add_mcp_instance_to_project_v1_projects__project_id__mcp_instances_post", "parameters": [ { "in": "path", "name": "project_id", "required": true, "schema": { "format": "uuid", "title": "Project Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationBody" } } }, "required": true }, "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Add Mcp Instance To Project", "tags": [ "v1", "protected", "projects" ] } }, "/v1/workspaces/{workspace}/projects/{project_id}/mcp-instances/{mcp_instance_id}": { "delete": { "description": "Remove an MCP server instance from a project.", "operationId": "remove_mcp_instance_from_project_v1_projects__project_id__mcp_instances__mcp_instance_id__delete", "parameters": [ { "in": "path", "name": "project_id", "required": true, "schema": { "format": "uuid", "title": "Project Id", "type": "string" } }, { "in": "path", "name": "mcp_instance_id", "required": true, "schema": { "format": "uuid", "title": "Mcp Instance Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Remove Mcp Instance From Project", "tags": [ "v1", "protected", "projects" ] } }, "/v1/workspaces/{workspace}/projects/{project_id}/skills": { "post": { "description": "Add a skill to a project.", "operationId": "add_skill_to_project_v1_projects__project_id__skills_post", "parameters": [ { "in": "path", "name": "project_id", "required": true, "schema": { "format": "uuid", "title": "Project Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssociationBody" } } }, "required": true }, "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Add Skill To Project", "tags": [ "v1", "protected", "projects" ] } }, "/v1/workspaces/{workspace}/projects/{project_id}/skills/{skill_id}": { "delete": { "description": "Remove a skill from a project.", "operationId": "remove_skill_from_project_v1_projects__project_id__skills__skill_id__delete", "parameters": [ { "in": "path", "name": "project_id", "required": true, "schema": { "format": "uuid", "title": "Project Id", "type": "string" } }, { "in": "path", "name": "skill_id", "required": true, "schema": { "format": "uuid", "title": "Skill Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Remove Skill From Project", "tags": [ "v1", "protected", "projects" ] } }, "/v1/workspaces/{workspace}/provider-configs/": { "get": { "description": "List provider configurations.", "operationId": "list_provider_configs_v1_provider_configs__get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "provider_spec_id", "required": false, "schema": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Provider Spec Id" } }, { "in": "query", "name": "is_active", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Active" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/ProviderConfigResponse" }, "title": "Response List Provider Configs V1 Provider Configs Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Provider Configs", "tags": [ "v1", "protected", "provider-configs" ] }, "post": { "description": "Create a new provider configuration.", "operationId": "create_provider_config_v1_provider_configs__post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProviderConfigCreate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProviderConfigResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Provider Config", "tags": [ "v1", "protected", "provider-configs" ] } }, "/v1/workspaces/{workspace}/provider-configs/admin/{provider_key}/logo": { "get": { "description": "Get provider logo via admin route pattern.", "operationId": "get_provider_logo_v1_provider_configs_admin__provider_key__logo_get", "parameters": [ { "in": "path", "name": "provider_key", "required": true, "schema": { "title": "Provider Key", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Provider Logo", "tags": [ "v1", "protected", "provider-configs" ] } }, "/v1/workspaces/{workspace}/provider-configs/discover-preview": { "post": { "description": "Discover models from a provider API using the provided API key, without requiring a saved config.\n\nNot a dry run: the discovered specs, prices included, are persisted so the\ncaller can pick models by id. That makes it a price write.", "operationId": "discover_models_preview_v1_provider_configs_discover_preview_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoverPreviewRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoverPreviewResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Discover Models Preview", "tags": [ "v1", "protected", "provider-configs" ] } }, "/v1/workspaces/{workspace}/provider-configs/with-instances": { "get": { "description": "List provider configurations with their model instances.", "operationId": "list_provider_configs_with_instances_v1_provider_configs_with_instances_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "provider_spec_id", "required": false, "schema": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Provider Spec Id" } }, { "in": "query", "name": "is_active", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Active" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/ProviderConfigResponse" }, "title": "Response List Provider Configs With Instances V1 Provider Configs With Instances Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Provider Configs With Instances", "tags": [ "v1", "protected", "provider-configs" ] } }, "/v1/workspaces/{workspace}/provider-configs/{config_id}": { "delete": { "description": "Delete a provider configuration.", "operationId": "delete_provider_config_v1_provider_configs__config_id__delete", "parameters": [ { "in": "path", "name": "config_id", "required": true, "schema": { "format": "uuid", "title": "Config Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Provider Config", "tags": [ "v1", "protected", "provider-configs" ] }, "get": { "description": "Get a specific provider configuration.", "operationId": "get_provider_config_v1_provider_configs__config_id__get", "parameters": [ { "in": "path", "name": "config_id", "required": true, "schema": { "format": "uuid", "title": "Config Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProviderConfigResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Provider Config", "tags": [ "v1", "protected", "provider-configs" ] }, "patch": { "description": "Partially update a provider configuration.", "operationId": "patch_provider_config_v1_provider_configs__config_id__patch", "parameters": [ { "in": "path", "name": "config_id", "required": true, "schema": { "format": "uuid", "title": "Config Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProviderConfigUpdate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProviderConfigResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Patch Provider Config", "tags": [ "v1", "protected", "provider-configs" ] }, "put": { "description": "Update a provider configuration (full replace via PUT).", "operationId": "update_provider_config_v1_provider_configs__config_id__put", "parameters": [ { "in": "path", "name": "config_id", "required": true, "schema": { "format": "uuid", "title": "Config Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProviderConfigUpdate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProviderConfigResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Provider Config", "tags": [ "v1", "protected", "provider-configs" ] } }, "/v1/workspaces/{workspace}/provider-configs/{config_id}/discover": { "post": { "description": "Discover available models from the provider API and sync to model specs.", "operationId": "discover_models_v1_provider_configs__config_id__discover_post", "parameters": [ { "in": "path", "name": "config_id", "required": true, "schema": { "format": "uuid", "title": "Config Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiscoveryResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Discover Models", "tags": [ "v1", "protected", "provider-configs" ] } }, "/v1/workspaces/{workspace}/provider-specs/": { "get": { "description": "List all provider specifications.", "operationId": "list_provider_specs_v1_provider_specs__get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "is_builtin", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Builtin" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/ProviderSpecResponse" }, "title": "Response List Provider Specs V1 Provider Specs Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Provider Specs", "tags": [ "v1", "protected", "provider-specs" ] } }, "/v1/workspaces/{workspace}/provider-specs/by-key/{provider_key}": { "get": { "description": "Get a provider specification by its key (e.g., 'openai', 'anthropic').", "operationId": "get_provider_spec_by_key_v1_provider_specs_by_key__provider_key__get", "parameters": [ { "in": "path", "name": "provider_key", "required": true, "schema": { "title": "Provider Key", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProviderSpecWithModelsResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Provider Spec By Key", "tags": [ "v1", "protected", "provider-specs" ] } }, "/v1/workspaces/{workspace}/provider-specs/with-models": { "get": { "description": "List all provider specifications with their available models.", "operationId": "list_provider_specs_with_models_v1_provider_specs_with_models_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "is_builtin", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Builtin" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/ProviderSpecWithModelsResponse" }, "title": "Response List Provider Specs With Models V1 Provider Specs With Models Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Provider Specs With Models", "tags": [ "v1", "protected", "provider-specs" ] } }, "/v1/workspaces/{workspace}/provider-specs/{provider_spec_id}": { "get": { "description": "Get a specific provider specification with its models.", "operationId": "get_provider_spec_v1_provider_specs__provider_spec_id__get", "parameters": [ { "in": "path", "name": "provider_spec_id", "required": true, "schema": { "format": "uuid", "title": "Provider Spec Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProviderSpecWithModelsResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Provider Spec", "tags": [ "v1", "protected", "provider-specs" ] } }, "/v1/workspaces/{workspace}/registries/": { "get": { "operationId": "list_registries_v1_registries__get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "active_only", "required": false, "schema": { "default": false, "title": "Active Only", "type": "boolean" } }, { "in": "query", "name": "registry_type", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Registry Type" } }, { "in": "query", "name": "scope", "required": false, "schema": { "anyOf": [ { "enum": [ "platform", "workspace" ], "type": "string" }, { "type": "null" } ], "title": "Scope" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/RegistryResponse" }, "title": "Response List Registries V1 Registries Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Registries", "tags": [ "v1", "protected", "registries" ] }, "post": { "operationId": "create_registry_v1_registries__post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegistryCreate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegistryResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Registry", "tags": [ "v1", "protected", "registries" ] } }, "/v1/workspaces/{workspace}/registries/catalog/browse": { "get": { "description": "Browse one catalog type: filtered, sorted and paged server-side.\n\nPaging every registry of a type separately and merging client-side cannot\nbe made correct -- a single offset has no meaning over the concatenation --\nso the whole type is paged as one ordered result here instead.", "operationId": "browse_catalog_v1_registries_catalog_browse_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Catalog type to browse", "in": "query", "name": "registry_type", "required": true, "schema": { "description": "Catalog type to browse", "title": "Registry Type", "type": "string" } }, { "description": "Free-text filter over name and description", "in": "query", "name": "q", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Free-text filter over name and description", "title": "Q" } }, { "description": "Restrict to one category facet", "in": "query", "name": "category", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Restrict to one category facet", "title": "Category" } }, { "description": "Restrict connections to one protocol. Only valid for registry_type='mcp_servers'.", "in": "query", "name": "protocol", "required": false, "schema": { "anyOf": [ { "enum": [ "mcp", "api" ], "type": "string" }, { "type": "null" } ], "description": "Restrict connections to one protocol. Only valid for registry_type='mcp_servers'.", "title": "Protocol" } }, { "description": "Restrict MCP connections to where they run: 'vendor' (hosted endpoint) or 'agentarea' (package the platform runs). Only valid for registry_type='mcp_servers'.", "in": "query", "name": "hosting", "required": false, "schema": { "anyOf": [ { "enum": [ "vendor", "agentarea" ], "type": "string" }, { "type": "null" } ], "description": "Restrict MCP connections to where they run: 'vendor' (hosted endpoint) or 'agentarea' (package the platform runs). Only valid for registry_type='mcp_servers'.", "title": "Hosting" } }, { "description": "Restrict connections to what using them costs: 'paid' (billed through AgentArea), 'own_key' (the vendor bills the workspace) or 'free'. Only valid for registry_type='mcp_servers'.", "in": "query", "name": "pricing", "required": false, "schema": { "anyOf": [ { "enum": [ "paid", "own_key", "free" ], "type": "string" }, { "type": "null" } ], "description": "Restrict connections to what using them costs: 'paid' (billed through AgentArea), 'own_key' (the vendor bills the workspace) or 'free'. Only valid for registry_type='mcp_servers'.", "title": "Pricing" } }, { "description": "'recommended' (default) or 'name'", "in": "query", "name": "sort", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "'recommended' (default) or 'name'", "title": "Sort" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "maximum": 1000000000, "minimum": 0, "title": "Offset", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CatalogBrowseResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Browse Catalog", "tags": [ "v1", "protected", "registries" ] } }, "/v1/workspaces/{workspace}/registries/catalog/items/{item_id}": { "delete": { "description": "Remove a directly managed catalog definition.", "operationId": "delete_catalog_item_v1_registries_catalog_items__item_id__delete", "parameters": [ { "in": "path", "name": "item_id", "required": true, "schema": { "format": "uuid", "title": "Item Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Catalog Item", "tags": [ "v1", "protected", "registries" ] }, "get": { "operationId": "get_catalog_item_v1_registries_catalog_items__item_id__get", "parameters": [ { "in": "path", "name": "item_id", "required": true, "schema": { "format": "uuid", "title": "Item Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegistryItemResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Catalog Item", "tags": [ "v1", "protected", "registries" ] }, "patch": { "description": "Change a directly managed definition in place.", "operationId": "update_catalog_item_v1_registries_catalog_items__item_id__patch", "parameters": [ { "in": "path", "name": "item_id", "required": true, "schema": { "format": "uuid", "title": "Item Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CatalogItemUpdate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegistryItemResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Catalog Item", "tags": [ "v1", "protected", "registries" ] } }, "/v1/workspaces/{workspace}/registries/catalog/items/{item_id}/update": { "post": { "description": "Apply the latest registry version to this item's entity.", "operationId": "update_item_spec_v1_registries_catalog_items__item_id__update_post", "parameters": [ { "in": "path", "name": "item_id", "required": true, "schema": { "format": "uuid", "title": "Item Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Item Spec", "tags": [ "v1", "protected", "registries" ] } }, "/v1/workspaces/{workspace}/registries/catalog/search": { "get": { "description": "Search across all registry catalogs in the workspace.", "operationId": "search_catalog_v1_registries_catalog_search_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Search query", "in": "query", "name": "q", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Search query", "title": "Q" } }, { "in": "query", "name": "tag", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tag" } }, { "in": "query", "name": "update_available", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Update Available" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "maximum": 1000000000, "minimum": 0, "title": "Offset", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/RegistryItemResponse" }, "title": "Response Search Catalog V1 Registries Catalog Search Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Search Catalog", "tags": [ "v1", "protected", "registries" ] } }, "/v1/workspaces/{workspace}/registries/{registry_id}": { "delete": { "operationId": "delete_registry_v1_registries__registry_id__delete", "parameters": [ { "in": "path", "name": "registry_id", "required": true, "schema": { "format": "uuid", "title": "Registry Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Registry", "tags": [ "v1", "protected", "registries" ] }, "get": { "operationId": "get_registry_v1_registries__registry_id__get", "parameters": [ { "in": "path", "name": "registry_id", "required": true, "schema": { "format": "uuid", "title": "Registry Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegistryResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Registry", "tags": [ "v1", "protected", "registries" ] }, "patch": { "operationId": "update_registry_v1_registries__registry_id__patch", "parameters": [ { "in": "path", "name": "registry_id", "required": true, "schema": { "format": "uuid", "title": "Registry Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegistryUpdate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegistryResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Registry", "tags": [ "v1", "protected", "registries" ] } }, "/v1/workspaces/{workspace}/registries/{registry_id}/items": { "get": { "operationId": "list_registry_items_v1_registries__registry_id__items_get", "parameters": [ { "in": "path", "name": "registry_id", "required": true, "schema": { "format": "uuid", "title": "Registry Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "maximum": 1000000000, "minimum": 0, "title": "Offset", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/RegistryItemResponse" }, "title": "Response List Registry Items V1 Registries Registry Id Items Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Registry Items", "tags": [ "v1", "protected", "registries" ] }, "post": { "description": "Publish one definition without putting catalog data in the OSS image.", "operationId": "create_catalog_item_v1_registries__registry_id__items_post", "parameters": [ { "in": "path", "name": "registry_id", "required": true, "schema": { "format": "uuid", "title": "Registry Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CatalogItemCreate" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegistryItemResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Catalog Item", "tags": [ "v1", "protected", "registries" ] } }, "/v1/workspaces/{workspace}/registries/{registry_id}/sync": { "post": { "description": "Sync: fetch source, auto-create entities for new items, flag version updates.", "operationId": "sync_registry_v1_registries__registry_id__sync_post", "parameters": [ { "in": "path", "name": "registry_id", "required": true, "schema": { "format": "uuid", "title": "Registry Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/agentarea_api__api__v1__registries__SyncResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Sync Registry", "tags": [ "v1", "protected", "registries" ] } }, "/v1/workspaces/{workspace}/registries/{registry_id}/update-all": { "post": { "description": "Bulk-update all items with pending version updates.", "operationId": "update_all_specs_v1_registries__registry_id__update_all_post", "parameters": [ { "in": "path", "name": "registry_id", "required": true, "schema": { "format": "uuid", "title": "Registry Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAllResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update All Specs", "tags": [ "v1", "protected", "registries" ] } }, "/v1/workspaces/{workspace}/sandboxes": { "get": { "description": "Return live provider state for the authenticated workspace only.", "operationId": "list_sandboxes_v1_sandboxes_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SandboxListResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" }, "502": { "description": "The sandbox manager answered with an unusable inventory" }, "503": { "description": "Sandbox inventory is not configured on this deployment, or the sandbox manager is unreachable" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Sandboxes", "tags": [ "v1", "protected", "sandboxes" ] } }, "/v1/workspaces/{workspace}/secrets": { "get": { "description": "Every credential in the workspace the user would recognise as theirs.\n\nTheir own, plus the ones connections hold for them \u2014 the latter read-only.\nValues are not included, here or anywhere.", "operationId": "list_secrets_v1_secrets_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/SecretResponse" }, "title": "Response List Secrets V1 Secrets Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Secrets", "tags": [ "v1", "protected", "secrets" ] }, "post": { "operationId": "create_secret_v1_secrets_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SecretCreate" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SecretResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Secret", "tags": [ "v1", "protected", "secrets" ] } }, "/v1/workspaces/{workspace}/secrets/{secret_id}": { "delete": { "operationId": "delete_secret_v1_secrets__secret_id__delete", "parameters": [ { "in": "path", "name": "secret_id", "required": true, "schema": { "format": "uuid", "title": "Secret Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Secret", "tags": [ "v1", "protected", "secrets" ] }, "get": { "description": "Read one secret's metadata, whether the user owns it or a connection does.\n\nManaged secrets are readable because the list shows them; hiding them here\nwould 404 every row the page invites you to click. They stay unwritable \u2014\nthe write routes below still refuse them.", "operationId": "get_secret_v1_secrets__secret_id__get", "parameters": [ { "in": "path", "name": "secret_id", "required": true, "schema": { "format": "uuid", "title": "Secret Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SecretResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Secret", "tags": [ "v1", "protected", "secrets" ] }, "patch": { "operationId": "update_secret_description_v1_secrets__secret_id__patch", "parameters": [ { "in": "path", "name": "secret_id", "required": true, "schema": { "format": "uuid", "title": "Secret Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SecretDescriptionUpdate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SecretResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Secret Description", "tags": [ "v1", "protected", "secrets" ] } }, "/v1/workspaces/{workspace}/secrets/{secret_id}/value": { "put": { "description": "Replace the stored value. Everything pointing at this secret picks up the new one.", "operationId": "rotate_secret_v1_secrets__secret_id__value_put", "parameters": [ { "in": "path", "name": "secret_id", "required": true, "schema": { "format": "uuid", "title": "Secret Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SecretValueUpdate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SecretResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Rotate Secret", "tags": [ "v1", "protected", "secrets" ] } }, "/v1/workspaces/{workspace}/settings": { "get": { "description": "Read the current workspace's settings (cap, etc).", "operationId": "get_workspace_settings_v1_settings_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceSettingsResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Workspace Settings", "tags": [ "v1", "protected", "dashboard" ] }, "put": { "description": "Upsert the current workspace's monthly spend cap as a policy rule.", "operationId": "update_workspace_settings_v1_settings_put", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceSettingsUpdate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceSettingsResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Workspace Settings", "tags": [ "v1", "protected", "dashboard" ] } }, "/v1/workspaces/{workspace}/skill-collections/": { "get": { "description": "List collections in the current workspace with skill counts.", "operationId": "list_collections_v1_skill_collections__get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/CollectionSummaryResponse" }, "title": "Response List Collections V1 Skill Collections Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Collections", "tags": [ "v1", "protected", "skill-collections" ] }, "post": { "description": "Create a new collection in the current workspace.", "operationId": "create_collection_v1_skill_collections__post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CollectionCreateRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CollectionSummaryResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Collection", "tags": [ "v1", "protected", "skill-collections" ] } }, "/v1/workspaces/{workspace}/skill-collections/{collection_id}": { "delete": { "description": "Delete a collection from the current workspace.", "operationId": "delete_collection_v1_skill_collections__collection_id__delete", "parameters": [ { "in": "path", "name": "collection_id", "required": true, "schema": { "format": "uuid", "title": "Collection Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Collection", "tags": [ "v1", "protected", "skill-collections" ] }, "get": { "description": "Read one collection with its skills.", "operationId": "get_collection_v1_skill_collections__collection_id__get", "parameters": [ { "in": "path", "name": "collection_id", "required": true, "schema": { "format": "uuid", "title": "Collection Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CollectionDetailResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Collection", "tags": [ "v1", "protected", "skill-collections" ] }, "put": { "description": "Update a collection's name and/or description.", "operationId": "update_collection_v1_skill_collections__collection_id__put", "parameters": [ { "in": "path", "name": "collection_id", "required": true, "schema": { "format": "uuid", "title": "Collection Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CollectionUpdateRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CollectionSummaryResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Collection", "tags": [ "v1", "protected", "skill-collections" ] } }, "/v1/workspaces/{workspace}/skill-collections/{collection_id}/skills": { "post": { "description": "Add a skill to a collection.\n\nMembership is organizational metadata stored in ``collection_skills``; it is\nnot an authorization edge, so nothing is written to the relationship graph.", "operationId": "add_skill_to_collection_v1_skill_collections__collection_id__skills_post", "parameters": [ { "in": "path", "name": "collection_id", "required": true, "schema": { "format": "uuid", "title": "Collection Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddSkillRequest" } } }, "required": true }, "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Add Skill To Collection", "tags": [ "v1", "protected", "skill-collections" ] } }, "/v1/workspaces/{workspace}/skill-collections/{collection_id}/skills/{skill_id}": { "delete": { "description": "Remove a skill from a collection.\n\nMembership is organizational metadata stored in ``collection_skills``; it is\nnot an authorization edge, so nothing is removed from the relationship graph.", "operationId": "remove_skill_from_collection_v1_skill_collections__collection_id__skills__skill_id__delete", "parameters": [ { "in": "path", "name": "collection_id", "required": true, "schema": { "format": "uuid", "title": "Collection Id", "type": "string" } }, { "in": "path", "name": "skill_id", "required": true, "schema": { "format": "uuid", "title": "Skill Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Remove Skill From Collection", "tags": [ "v1", "protected", "skill-collections" ] } }, "/v1/workspaces/{workspace}/skills": { "get": { "description": "List skills in the workspace.", "operationId": "list_skills_v1_skills_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Filter by source type", "in": "query", "name": "source_type", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by source type", "title": "Source Type" } }, { "description": "Filter by network scope", "in": "query", "name": "network_scope", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by network scope", "title": "Network Scope" } }, { "description": "Filter registry-created skills", "in": "query", "name": "from_registry", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "Filter registry-created skills", "title": "From Registry" } }, { "description": "Merge in catalog skills not installed in the workspace", "in": "query", "name": "include_catalog", "required": false, "schema": { "default": true, "description": "Merge in catalog skills not installed in the workspace", "title": "Include Catalog", "type": "boolean" } }, { "in": "query", "name": "page", "required": false, "schema": { "default": 1, "maximum": 1000000, "minimum": 1, "title": "Page", "type": "integer" } }, { "in": "query", "name": "page_size", "required": false, "schema": { "default": 50, "maximum": 100, "minimum": 1, "title": "Page Size", "type": "integer" } }, { "in": "query", "name": "search", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Search" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaginatedResponse_SkillResponse_" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Skills", "tags": [ "v1", "protected", "skills" ] }, "post": { "description": "Create a new skill from content or GitHub URL.", "operationId": "create_skill_v1_skills_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SkillCreateRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SkillResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Skill", "tags": [ "v1", "protected", "skills" ] } }, "/v1/workspaces/{workspace}/skills/update-all": { "post": { "description": "Update every installed catalog skill that has an update and was not edited here.", "operationId": "update_all_skills_v1_skills_update_all_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SkillUpdateAllResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update All Skills", "tags": [ "v1", "protected", "skills" ] } }, "/v1/workspaces/{workspace}/skills/upload": { "post": { "description": "Upload a skill package as a ZIP file.", "operationId": "upload_skill_v1_skills_upload_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "name", "required": false, "schema": { "anyOf": [ { "maxLength": 255, "type": "string" }, { "type": "null" } ], "title": "Name" } }, { "in": "query", "name": "description", "required": false, "schema": { "anyOf": [ { "maxLength": 1000, "type": "string" }, { "type": "null" } ], "title": "Description" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_upload_skill_v1_skills_upload_post" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SkillResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Upload Skill", "tags": [ "v1", "protected", "skills" ] } }, "/v1/workspaces/{workspace}/skills/{skill_id}": { "delete": { "description": "Delete a skill.", "operationId": "delete_skill_v1_skills__skill_id__delete", "parameters": [ { "in": "path", "name": "skill_id", "required": true, "schema": { "format": "uuid", "title": "Skill Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Skill", "tags": [ "v1", "protected", "skills" ] }, "get": { "description": "Get a skill by ID (tenant or catalog).", "operationId": "get_skill_v1_skills__skill_id__get", "parameters": [ { "in": "path", "name": "skill_id", "required": true, "schema": { "format": "uuid", "title": "Skill Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SkillResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Skill", "tags": [ "v1", "protected", "skills" ] }, "put": { "description": "Update a skill.", "operationId": "update_skill_v1_skills__skill_id__put", "parameters": [ { "in": "path", "name": "skill_id", "required": true, "schema": { "format": "uuid", "title": "Skill Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SkillUpdateRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SkillResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Skill", "tags": [ "v1", "protected", "skills" ] } }, "/v1/workspaces/{workspace}/skills/{skill_id}/content": { "get": { "description": "Get the main markdown content of a skill (tenant or catalog).", "operationId": "get_skill_content_v1_skills__skill_id__content_get", "parameters": [ { "in": "path", "name": "skill_id", "required": true, "schema": { "format": "uuid", "title": "Skill Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SkillContentResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Skill Content", "tags": [ "v1", "protected", "skills" ] } }, "/v1/workspaces/{workspace}/skills/{skill_id}/files": { "get": { "description": "List all files in a skill package.", "operationId": "list_skill_files_v1_skills__skill_id__files_get", "parameters": [ { "in": "path", "name": "skill_id", "required": true, "schema": { "format": "uuid", "title": "Skill Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "include_urls", "required": false, "schema": { "default": false, "title": "Include Urls", "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SkillFilesResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Skill Files", "tags": [ "v1", "protected", "skills" ] } }, "/v1/workspaces/{workspace}/skills/{skill_id}/files/{path}": { "get": { "description": "Get a file from a skill package.\n\nBy default, returns a redirect to a presigned URL.\nSet redirect=false to get the presigned URL in the response body.", "operationId": "get_skill_file_v1_skills__skill_id__files__path__get", "parameters": [ { "in": "path", "name": "skill_id", "required": true, "schema": { "format": "uuid", "title": "Skill Id", "type": "string" } }, { "in": "path", "name": "path", "required": true, "schema": { "title": "Path", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "redirect", "required": false, "schema": { "default": true, "title": "Redirect", "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Skill File", "tags": [ "v1", "protected", "skills" ] } }, "/v1/workspaces/{workspace}/skills/{skill_id}/flatten": { "get": { "description": "Return child skill IDs in topological execution order.", "operationId": "flatten_skill_members_v1_skills__skill_id__flatten_get", "parameters": [ { "in": "path", "name": "skill_id", "required": true, "schema": { "format": "uuid", "title": "Skill Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "type": "string" }, "title": "Response Flatten Skill Members V1 Skills Skill Id Flatten Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Flatten Skill Members", "tags": [ "v1", "protected", "skills" ] } }, "/v1/workspaces/{workspace}/skills/{skill_id}/install": { "post": { "description": "Add a built-in catalog skill to the workspace: fetch its package and pin it.\n\nA policy rule refusing the item's registry answers 403.", "operationId": "install_skill_v1_skills__skill_id__install_post", "parameters": [ { "in": "path", "name": "skill_id", "required": true, "schema": { "format": "uuid", "title": "Skill Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SkillResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Install Skill", "tags": [ "v1", "protected", "skills" ] } }, "/v1/workspaces/{workspace}/skills/{skill_id}/members": { "get": { "description": "List all child skills of a parent skill bundle.", "operationId": "list_skill_members_v1_skills__skill_id__members_get", "parameters": [ { "in": "path", "name": "skill_id", "required": true, "schema": { "format": "uuid", "title": "Skill Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/SkillMemberResponse" }, "title": "Response List Skill Members V1 Skills Skill Id Members Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Skill Members", "tags": [ "v1", "protected", "skills" ] }, "post": { "description": "Add a child skill to a parent skill bundle.", "operationId": "add_skill_member_v1_skills__skill_id__members_post", "parameters": [ { "in": "path", "name": "skill_id", "required": true, "schema": { "format": "uuid", "title": "Skill Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SkillMemberAddRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SkillMemberResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Add Skill Member", "tags": [ "v1", "protected", "skills" ] } }, "/v1/workspaces/{workspace}/skills/{skill_id}/members/{child_skill_id}": { "delete": { "description": "Remove a child skill from a parent skill bundle.", "operationId": "remove_skill_member_v1_skills__skill_id__members__child_skill_id__delete", "parameters": [ { "in": "path", "name": "skill_id", "required": true, "schema": { "format": "uuid", "title": "Skill Id", "type": "string" } }, { "in": "path", "name": "child_skill_id", "required": true, "schema": { "format": "uuid", "title": "Child Skill Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Remove Skill Member", "tags": [ "v1", "protected", "skills" ] } }, "/v1/workspaces/{workspace}/skills/{skill_id}/update": { "post": { "description": "Move an installed catalog skill to its catalog item's current version.", "operationId": "update_installed_skill_v1_skills__skill_id__update_post", "parameters": [ { "in": "path", "name": "skill_id", "required": true, "schema": { "format": "uuid", "title": "Skill Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Update a skill edited in this workspace, discarding the edit", "in": "query", "name": "discard_changes", "required": false, "schema": { "default": false, "description": "Update a skill edited in this workspace, discarding the edit", "title": "Discard Changes", "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SkillResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Installed Skill", "tags": [ "v1", "protected", "skills" ] } }, "/v1/workspaces/{workspace}/skills/{skill_id}/versions": { "get": { "description": "Every package the skill pointed at, oldest first; the last is the current one.", "operationId": "list_skill_versions_v1_skills__skill_id__versions_get", "parameters": [ { "in": "path", "name": "skill_id", "required": true, "schema": { "format": "uuid", "title": "Skill Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/SkillVersionResponse" }, "title": "Response List Skill Versions V1 Skills Skill Id Versions Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Skill Versions", "tags": [ "v1", "protected", "skills" ] } }, "/v1/workspaces/{workspace}/skills/{skill_id}/versions/{version_id}/rollback": { "post": { "description": "Point the skill at the package one of its versions had; recorded as a new version.", "operationId": "rollback_skill_v1_skills__skill_id__versions__version_id__rollback_post", "parameters": [ { "in": "path", "name": "skill_id", "required": true, "schema": { "format": "uuid", "title": "Skill Id", "type": "string" } }, { "in": "path", "name": "version_id", "required": true, "schema": { "format": "uuid", "title": "Version Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SkillResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Rollback Skill", "tags": [ "v1", "protected", "skills" ] } }, "/v1/workspaces/{workspace}/streams/": { "get": { "operationId": "list_streams_v1_streams__get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 100, "maximum": 1000, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "maximum": 1000000000, "minimum": 0, "title": "Offset", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/StreamResponse" }, "title": "Response List Streams V1 Streams Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Streams", "tags": [ "v1", "protected", "streams" ] }, "post": { "operationId": "create_stream_v1_streams__post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StreamCreate" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StreamResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Stream", "tags": [ "v1", "protected", "streams" ] } }, "/v1/workspaces/{workspace}/streams/events": { "get": { "description": "Every event of the workspace's streams the caller may read, newest first.\n\nEach carries what the platform did with it (``processing``); bodies are\nleft out, the event's own endpoint has them.", "operationId": "list_workspace_events_v1_streams_events_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Newest first, before this sequence.", "in": "query", "name": "before", "required": false, "schema": { "anyOf": [ { "maximum": 9223372036854775807, "minimum": 1, "type": "integer" }, { "type": "null" } ], "description": "Newest first, before this sequence.", "title": "Before" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "stream_id", "required": false, "schema": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Stream Id" } }, { "in": "query", "name": "source_type", "required": false, "schema": { "anyOf": [ { "maxLength": 64, "type": "string" }, { "type": "null" } ], "title": "Source Type" } }, { "description": "An event kind, or a prefix ending in .* (order.*).", "in": "query", "name": "kind", "required": false, "schema": { "anyOf": [ { "maxLength": 255, "type": "string" }, { "type": "null" } ], "description": "An event kind, or a prefix ending in .* (order.*).", "title": "Kind" } }, { "in": "query", "name": "sender", "required": false, "schema": { "anyOf": [ { "maxLength": 512, "type": "string" }, { "type": "null" } ], "title": "Sender" } }, { "in": "query", "name": "session_key", "required": false, "schema": { "anyOf": [ { "maxLength": 512, "type": "string" }, { "type": "null" } ], "title": "Session Key" } }, { "description": "What the platform did with it.", "in": "query", "name": "result", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/ProcessingStatus" }, { "type": "null" } ], "description": "What the platform did with it.", "title": "Result" } }, { "description": "Received at or after.", "in": "query", "name": "since", "required": false, "schema": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Received at or after.", "title": "Since" } }, { "description": "Received before.", "in": "query", "name": "until", "required": false, "schema": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Received before.", "title": "Until" } }, { "description": "False leaves out the platform's own events (source type platform); the first page's counts still include them.", "in": "query", "name": "platform", "required": false, "schema": { "default": true, "description": "False leaves out the platform's own events (source type platform); the first page's counts still include them.", "title": "Platform", "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceEventPage" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Workspace Events", "tags": [ "v1", "protected", "streams" ] } }, "/v1/workspaces/{workspace}/streams/events/live": { "get": { "description": "SSE: ``event.recorded`` (a feed item) as an event arrives, ``event.processing``\n({event_id, processing}) as the platform acts on it. The filters are the feed's;\n``result`` is not applied here, since an event's result changes as it is handled.", "operationId": "stream_workspace_events_v1_streams_events_live_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "stream_id", "required": false, "schema": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "title": "Stream Id" } }, { "in": "query", "name": "source_type", "required": false, "schema": { "anyOf": [ { "maxLength": 64, "type": "string" }, { "type": "null" } ], "title": "Source Type" } }, { "description": "An event kind, or a prefix ending in .* (order.*).", "in": "query", "name": "kind", "required": false, "schema": { "anyOf": [ { "maxLength": 255, "type": "string" }, { "type": "null" } ], "description": "An event kind, or a prefix ending in .* (order.*).", "title": "Kind" } }, { "in": "query", "name": "sender", "required": false, "schema": { "anyOf": [ { "maxLength": 512, "type": "string" }, { "type": "null" } ], "title": "Sender" } }, { "in": "query", "name": "session_key", "required": false, "schema": { "anyOf": [ { "maxLength": 512, "type": "string" }, { "type": "null" } ], "title": "Session Key" } }, { "description": "What the platform did with it.", "in": "query", "name": "result", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/ProcessingStatus" }, { "type": "null" } ], "description": "What the platform did with it.", "title": "Result" } }, { "description": "Received at or after.", "in": "query", "name": "since", "required": false, "schema": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Received at or after.", "title": "Since" } }, { "description": "Received before.", "in": "query", "name": "until", "required": false, "schema": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Received before.", "title": "Until" } }, { "description": "False leaves out the platform's own events (source type platform); the first page's counts still include them.", "in": "query", "name": "platform", "required": false, "schema": { "default": true, "description": "False leaves out the platform's own events (source type platform); the first page's counts still include them.", "title": "Platform", "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} }, "text/event-stream": {} }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Stream Workspace Events", "tags": [ "v1", "protected", "streams" ] } }, "/v1/workspaces/{workspace}/streams/events/{event_id}": { "get": { "description": "One event by its id, whichever stream holds it: what a forward or a cause points at.", "operationId": "get_event_by_id_v1_streams_events__event_id__get", "parameters": [ { "in": "path", "name": "event_id", "required": true, "schema": { "format": "uuid", "title": "Event Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StreamEventDetailResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Event By Id", "tags": [ "v1", "protected", "streams" ] } }, "/v1/workspaces/{workspace}/streams/source-types": { "get": { "description": "Source types of the catalog, with the credentials and settings each needs.", "operationId": "list_source_types_v1_streams_source_types_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/SourceTypeResponse" }, "title": "Response List Source Types V1 Streams Source Types Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Source Types", "tags": [ "v1", "protected", "streams" ] } }, "/v1/workspaces/{workspace}/streams/{stream_id}": { "delete": { "description": "Delete a stream with its events, sources and subscriptions.\n\nRefused with 409 while a trigger subscribes to it (delete the trigger\nfirst), or while a forward of any stream writes into it (remove that\nforward first).", "operationId": "delete_stream_v1_streams__stream_id__delete", "parameters": [ { "in": "path", "name": "stream_id", "required": true, "schema": { "format": "uuid", "title": "Stream Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Stream", "tags": [ "v1", "protected", "streams" ] }, "get": { "operationId": "get_stream_v1_streams__stream_id__get", "parameters": [ { "in": "path", "name": "stream_id", "required": true, "schema": { "format": "uuid", "title": "Stream Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StreamResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Stream", "tags": [ "v1", "protected", "streams" ] } }, "/v1/workspaces/{workspace}/streams/{stream_id}/events": { "get": { "operationId": "list_events_v1_streams__stream_id__events_get", "parameters": [ { "in": "path", "name": "stream_id", "required": true, "schema": { "format": "uuid", "title": "Stream Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Oldest first, after this sequence.", "in": "query", "name": "after", "required": false, "schema": { "anyOf": [ { "maximum": 9223372036854775807, "minimum": 0, "type": "integer" }, { "type": "null" } ], "description": "Oldest first, after this sequence.", "title": "After" } }, { "description": "Newest first, before this sequence.", "in": "query", "name": "before", "required": false, "schema": { "anyOf": [ { "maximum": 9223372036854775807, "minimum": 1, "type": "integer" }, { "type": "null" } ], "description": "Newest first, before this sequence.", "title": "Before" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 200, "minimum": 1, "title": "Limit", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StreamEventPage" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Events", "tags": [ "v1", "protected", "streams" ] } }, "/v1/workspaces/{workspace}/streams/{stream_id}/events/{sequence}": { "get": { "operationId": "get_event_v1_streams__stream_id__events__sequence__get", "parameters": [ { "in": "path", "name": "stream_id", "required": true, "schema": { "format": "uuid", "title": "Stream Id", "type": "string" } }, { "in": "path", "name": "sequence", "required": true, "schema": { "maximum": 9223372036854775807, "minimum": 1, "title": "Sequence", "type": "integer" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StreamEventDetailResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Event", "tags": [ "v1", "protected", "streams" ] } }, "/v1/workspaces/{workspace}/streams/{stream_id}/forwards": { "post": { "operationId": "create_forward_v1_streams__stream_id__forwards_post", "parameters": [ { "in": "path", "name": "stream_id", "required": true, "schema": { "format": "uuid", "title": "Stream Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ForwardCreate" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SubscriptionResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Forward", "tags": [ "v1", "protected", "streams" ] } }, "/v1/workspaces/{workspace}/streams/{stream_id}/processors": { "post": { "description": "Run code over every matching event of the stream; it writes into the output streams.\n\nThe caller must be able to edit every output stream. The code runs in the\nsandbox, one call per event, and gets no secrets.", "operationId": "create_processor_v1_streams__stream_id__processors_post", "parameters": [ { "in": "path", "name": "stream_id", "required": true, "schema": { "format": "uuid", "title": "Stream Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProcessorCreate" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SubscriptionResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Processor", "tags": [ "v1", "protected", "streams" ] } }, "/v1/workspaces/{workspace}/streams/{stream_id}/processors/{subscription_id}": { "delete": { "description": "Remove a processor; the events it wrote stay. The caller must be able to edit its outputs.", "operationId": "delete_processor_v1_streams__stream_id__processors__subscription_id__delete", "parameters": [ { "in": "path", "name": "stream_id", "required": true, "schema": { "format": "uuid", "title": "Stream Id", "type": "string" } }, { "in": "path", "name": "subscription_id", "required": true, "schema": { "format": "uuid", "title": "Subscription Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Processor", "tags": [ "v1", "protected", "streams" ] }, "patch": { "description": "Change a processor's code, outputs or filter; the next event runs the change.\n\nThe caller must be able to edit every output stream it has and is given.", "operationId": "update_processor_v1_streams__stream_id__processors__subscription_id__patch", "parameters": [ { "in": "path", "name": "stream_id", "required": true, "schema": { "format": "uuid", "title": "Stream Id", "type": "string" } }, { "in": "path", "name": "subscription_id", "required": true, "schema": { "format": "uuid", "title": "Subscription Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProcessorUpdate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SubscriptionResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Processor", "tags": [ "v1", "protected", "streams" ] } }, "/v1/workspaces/{workspace}/streams/{stream_id}/sources": { "get": { "operationId": "list_sources_v1_streams__stream_id__sources_get", "parameters": [ { "in": "path", "name": "stream_id", "required": true, "schema": { "format": "uuid", "title": "Stream Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/StreamSourceResponse" }, "title": "Response List Sources V1 Streams Stream Id Sources Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Sources", "tags": [ "v1", "protected", "streams" ] }, "post": { "description": "Add a webhook or poll source of a catalog entry to the stream.\n\nCredentials are write-only and held by reference; a webhook source's\nresponse carries the public URL to give the provider.", "operationId": "add_source_v1_streams__stream_id__sources_post", "parameters": [ { "in": "path", "name": "stream_id", "required": true, "schema": { "format": "uuid", "title": "Stream Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceCreate" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SourceCreated" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Add Source", "tags": [ "v1", "protected", "streams" ] } }, "/v1/workspaces/{workspace}/streams/{stream_id}/sources/{source_id}": { "delete": { "description": "Remove a source and its credentials; its events stay.", "operationId": "delete_source_v1_streams__stream_id__sources__source_id__delete", "parameters": [ { "in": "path", "name": "stream_id", "required": true, "schema": { "format": "uuid", "title": "Stream Id", "type": "string" } }, { "in": "path", "name": "source_id", "required": true, "schema": { "format": "uuid", "title": "Source Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Source", "tags": [ "v1", "protected", "streams" ] } }, "/v1/workspaces/{workspace}/streams/{stream_id}/subscriptions": { "get": { "operationId": "list_subscriptions_v1_streams__stream_id__subscriptions_get", "parameters": [ { "in": "path", "name": "stream_id", "required": true, "schema": { "format": "uuid", "title": "Stream Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/SubscriptionResponse" }, "title": "Response List Subscriptions V1 Streams Stream Id Subscriptions Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Subscriptions", "tags": [ "v1", "protected", "streams" ] } }, "/v1/workspaces/{workspace}/streams/{stream_id}/subscriptions/{subscription_id}": { "delete": { "description": "Remove a forward. The caller must be able to edit every output stream, as to create it.\n\nA trigger's subscription is refused with 409: it goes when the trigger is deleted.", "operationId": "delete_forward_v1_streams__stream_id__subscriptions__subscription_id__delete", "parameters": [ { "in": "path", "name": "stream_id", "required": true, "schema": { "format": "uuid", "title": "Stream Id", "type": "string" } }, { "in": "path", "name": "subscription_id", "required": true, "schema": { "format": "uuid", "title": "Subscription Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Forward", "tags": [ "v1", "protected", "streams" ] } }, "/v1/workspaces/{workspace}/streams/{stream_id}/subscriptions/{subscription_id}/outcomes": { "get": { "operationId": "list_outcomes_v1_streams__stream_id__subscriptions__subscription_id__outcomes_get", "parameters": [ { "in": "path", "name": "stream_id", "required": true, "schema": { "format": "uuid", "title": "Stream Id", "type": "string" } }, { "in": "path", "name": "subscription_id", "required": true, "schema": { "format": "uuid", "title": "Subscription Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "limit", "required": false, "schema": { "default": 50, "maximum": 500, "minimum": 1, "title": "Limit", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/OutcomeResponse" }, "title": "Response List Outcomes V1 Streams Stream Id Subscriptions Subscription Id Outcomes Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Outcomes", "tags": [ "v1", "protected", "streams" ] } }, "/v1/workspaces/{workspace}/tasks/": { "get": { "description": "Get one page of the workspace's tasks across all agents, newest first.\n\nAccess Control:\n Returns all tasks within the current user's workspace (workspace isolation).\n All users in the same workspace can see all workspace tasks.", "operationId": "get_all_tasks_v1_tasks__get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Filter to tasks in any of these statuses", "in": "query", "name": "status", "required": false, "schema": { "anyOf": [ { "items": { "enum": [ "submitted", "pending", "preparing", "scheduled", "running", "working", "waiting_for_input", "waiting_for_approval", "waiting_for_continuation", "waiting_for_infrastructure", "blocked", "completed", "failed", "cancelled" ], "type": "string" }, "type": "array" }, { "type": "null" } ], "description": "Filter to tasks in any of these statuses", "title": "Status" } }, { "description": "Filter by the principal that started it", "in": "query", "name": "created_by", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by the principal that started it", "title": "Created By" } }, { "description": "Case-insensitive match on the description or the agent name", "in": "query", "name": "search", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Case-insensitive match on the description or the agent name", "title": "Search" } }, { "description": "Maximum number of tasks to return", "in": "query", "name": "limit", "required": false, "schema": { "default": 100, "description": "Maximum number of tasks to return", "maximum": 1000, "minimum": 1, "title": "Limit", "type": "integer" } }, { "description": "Number of tasks to skip", "in": "query", "name": "offset", "required": false, "schema": { "default": 0, "description": "Number of tasks to skip", "maximum": 1000000000, "minimum": 0, "title": "Offset", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/TaskWithAgent" }, "title": "Response Get All Tasks V1 Tasks Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get All Tasks", "tags": [ "v1", "protected", "tasks" ] } }, "/v1/workspaces/{workspace}/tasks/{task_id}": { "get": { "description": "Get a single task by ID across all agents.", "operationId": "get_task_by_id_v1_tasks__task_id__get", "parameters": [ { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TaskWithAgent" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Task By Id", "tags": [ "v1", "protected", "tasks" ] } }, "/v1/workspaces/{workspace}/tasks/{task_id}/continue": { "post": { "description": "Grant more iterations, budget, tokens or tool calls to a task waiting on a hard limit.", "operationId": "continue_task_execution_v1_tasks__task_id__continue_post", "parameters": [ { "in": "path", "name": "task_id", "required": true, "schema": { "format": "uuid", "title": "Task Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContinueTaskPayload" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Continue Task Execution", "tags": [ "v1", "protected", "tasks" ] } }, "/v1/workspaces/{workspace}/tool-call-approvals": { "get": { "description": "Tool calls held for approval in this workspace, newest first.", "operationId": "list_tool_call_approvals_v1_tool_call_approvals_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "status", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/ToolCallApprovalStatus" }, { "type": "null" } ], "title": "Status" } }, { "in": "query", "name": "page", "required": false, "schema": { "default": 1, "maximum": 10000, "minimum": 1, "title": "Page", "type": "integer" } }, { "in": "query", "name": "page_size", "required": false, "schema": { "default": 50, "maximum": 200, "minimum": 1, "title": "Page Size", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToolCallApprovalListResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Tool Call Approvals", "tags": [ "v1", "protected", "tool-call-approvals" ] } }, "/v1/workspaces/{workspace}/tool-call-approvals/{approval_id}": { "get": { "description": "One held call: what will run, who asked, and whether the caller may decide.", "operationId": "get_tool_call_approval_v1_tool_call_approvals__approval_id__get", "parameters": [ { "in": "path", "name": "approval_id", "required": true, "schema": { "title": "Approval Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToolCallApprovalResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Tool Call Approval", "tags": [ "v1", "protected", "tool-call-approvals" ] } }, "/v1/workspaces/{workspace}/tool-call-approvals/{approval_id}/decide": { "post": { "description": "Approve or reject a pending call; an approval is usable for one hour.", "operationId": "decide_tool_call_approval_v1_tool_call_approvals__approval_id__decide_post", "parameters": [ { "in": "path", "name": "approval_id", "required": true, "schema": { "title": "Approval Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToolCallApprovalDecision" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToolCallApprovalResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Decide Tool Call Approval", "tags": [ "v1", "protected", "tool-call-approvals" ] } }, "/v1/workspaces/{workspace}/triggers/": { "get": { "description": "List the workspace's triggers, by agent, type and active state.", "operationId": "list_triggers_v1_triggers__get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Filter by agent ID", "in": "query", "name": "agent_id", "required": false, "schema": { "anyOf": [ { "format": "uuid", "type": "string" }, { "type": "null" } ], "description": "Filter by agent ID", "title": "Agent Id" } }, { "description": "Filter by trigger type (cron, stream)", "in": "query", "name": "trigger_type", "required": false, "schema": { "anyOf": [ { "$ref": "#/components/schemas/TriggerType" }, { "type": "null" } ], "description": "Filter by trigger type (cron, stream)", "title": "Trigger Type" } }, { "description": "Only return active triggers", "in": "query", "name": "active_only", "required": false, "schema": { "default": false, "description": "Only return active triggers", "title": "Active Only", "type": "boolean" } }, { "description": "Maximum number of triggers to return", "in": "query", "name": "limit", "required": false, "schema": { "default": 100, "description": "Maximum number of triggers to return", "maximum": 1000, "minimum": 1, "title": "Limit", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/TriggerResponse" }, "title": "Response List Triggers V1 Triggers Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Triggers", "tags": [ "v1", "protected", "triggers" ] }, "post": { "description": "Create a cron trigger (scheduled at once) or a stream trigger (subscribed to its stream).\n\nA webhook or a polled provider is a source of a stream; its events fire a\nstream trigger on that stream.", "operationId": "create_trigger_v1_triggers__post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriggerCreate" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriggerResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Trigger", "tags": [ "v1", "protected", "triggers" ] } }, "/v1/workspaces/{workspace}/triggers/health": { "get": { "description": "Comprehensive health check endpoint for trigger system.\n\nChecks all trigger system components including:\n- Database connectivity\n- Temporal schedule manager\n- Webhook intake\n- Execution metrics\n\nReturns:\n Dictionary with detailed health status information", "operationId": "triggers_health_check_v1_triggers_health_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": true, "title": "Response Triggers Health Check V1 Triggers Health Get", "type": "object" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Triggers Health Check", "tags": [ "v1", "protected", "triggers" ] } }, "/v1/workspaces/{workspace}/triggers/{trigger_id}": { "delete": { "description": "Delete a trigger with its execution history; a cron trigger's schedule goes with it.\n\nA stream trigger's stream and its sources stay.", "operationId": "delete_trigger_v1_triggers__trigger_id__delete", "parameters": [ { "in": "path", "name": "trigger_id", "required": true, "schema": { "format": "uuid", "title": "Trigger Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Trigger", "tags": [ "v1", "protected", "triggers" ] }, "get": { "description": "Get a specific trigger by ID.", "operationId": "get_trigger_v1_triggers__trigger_id__get", "parameters": [ { "in": "path", "name": "trigger_id", "required": true, "schema": { "format": "uuid", "title": "Trigger Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriggerResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Trigger", "tags": [ "v1", "protected", "triggers" ] }, "put": { "description": "Update an existing trigger; only the fields sent change.\n\nRaises:\n HTTPException: 404 if the trigger does not exist; 400 if validation\n fails; 409 if the update changes the filter of a trigger that has no\n stream subscription left.", "operationId": "update_trigger_v1_triggers__trigger_id__put", "parameters": [ { "in": "path", "name": "trigger_id", "required": true, "schema": { "format": "uuid", "title": "Trigger Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriggerUpdate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriggerResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Trigger", "tags": [ "v1", "protected", "triggers" ] } }, "/v1/workspaces/{workspace}/triggers/{trigger_id}/correlations": { "get": { "description": "Get execution correlation data for a trigger.\n\nReturns execution data with correlation information to created tasks\nand workflows for debugging and monitoring purposes.\n\nArgs:\n trigger_id: The unique identifier of the trigger\n page: Page number for pagination\n page_size: Number of executions per page\n user_context: Authentication context\n trigger_service: Injected trigger service\n\nReturns:\n Execution correlation data\n\nRaises:\n HTTPException: If trigger not found", "operationId": "get_execution_correlations_v1_triggers__trigger_id__correlations_get", "parameters": [ { "in": "path", "name": "trigger_id", "required": true, "schema": { "format": "uuid", "title": "Trigger Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Page number", "in": "query", "name": "page", "required": false, "schema": { "default": 1, "description": "Page number", "maximum": 1000000, "minimum": 1, "title": "Page", "type": "integer" } }, { "description": "Number of executions per page", "in": "query", "name": "page_size", "required": false, "schema": { "default": 50, "description": "Number of executions per page", "maximum": 100, "minimum": 1, "title": "Page Size", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExecutionCorrelationResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Execution Correlations", "tags": [ "v1", "protected", "triggers" ] } }, "/v1/workspaces/{workspace}/triggers/{trigger_id}/disable": { "post": { "description": "Disable a trigger.\n\nDisables the specified trigger, preventing it from executing.\nFor cron triggers, this will pause the schedule.\n\nArgs:\n trigger_id: The unique identifier of the trigger\n user_context: Authentication context\n trigger_service: Injected trigger service\n\nReturns:\n Success status\n\nRaises:\n HTTPException: If trigger not found", "operationId": "disable_trigger_v1_triggers__trigger_id__disable_post", "parameters": [ { "in": "path", "name": "trigger_id", "required": true, "schema": { "format": "uuid", "title": "Trigger Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": true, "title": "Response Disable Trigger V1 Triggers Trigger Id Disable Post", "type": "object" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Disable Trigger", "tags": [ "v1", "protected", "triggers" ] } }, "/v1/workspaces/{workspace}/triggers/{trigger_id}/enable": { "post": { "description": "Enable a trigger.\n\nEnables the specified trigger, allowing it to execute when conditions are met.\nFor cron triggers, this will resume the schedule.\n\nArgs:\n trigger_id: The unique identifier of the trigger\n user_context: Authentication context\n trigger_service: Injected trigger service\n\nReturns:\n Success status\n\nRaises:\n HTTPException: If trigger not found", "operationId": "enable_trigger_v1_triggers__trigger_id__enable_post", "parameters": [ { "in": "path", "name": "trigger_id", "required": true, "schema": { "format": "uuid", "title": "Trigger Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": true, "title": "Response Enable Trigger V1 Triggers Trigger Id Enable Post", "type": "object" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Enable Trigger", "tags": [ "v1", "protected", "triggers" ] } }, "/v1/workspaces/{workspace}/triggers/{trigger_id}/execute": { "post": { "description": "Execute a trigger with the provided event data.\n\nBuilds trigger data from the events and channel origin, then creates and\nsubmits a task for agent execution.\n\nAuthorization is the caller's session plus the workspace-scoped trigger\nlookup: a trigger in another workspace is simply not found. This used to sit\non the public router behind an ``X-Internal-Token`` check that skipped\nitself whenever the secret was unset \u2014 which was every deployment, since\nnothing ever sent that header.\n\nArgs:\n trigger_id: The unique identifier of the trigger\n request: The events to run the trigger on\n trigger_service: Injected trigger service\n\nReturns:\n Execution result with task ID\n\nRaises:\n HTTPException: If trigger not found or execution fails", "operationId": "execute_trigger_v1_triggers__trigger_id__execute_post", "parameters": [ { "in": "path", "name": "trigger_id", "required": true, "schema": { "format": "uuid", "title": "Trigger Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriggerExecuteRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": true, "title": "Response Execute Trigger V1 Triggers Trigger Id Execute Post", "type": "object" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Execute Trigger", "tags": [ "v1", "protected", "triggers" ] } }, "/v1/workspaces/{workspace}/triggers/{trigger_id}/executions": { "get": { "description": "Get execution history for a trigger with filtering and pagination.\n\nReturns paginated execution history for the specified trigger, including\nsuccess/failure status, execution times, and error messages. Supports\nfiltering by status and time range.\n\nArgs:\n trigger_id: The unique identifier of the trigger\n page: Page number for pagination\n page_size: Number of executions per page\n status: Optional status filter (success, failed, timeout, cancelled, skipped)\n start_time: Optional start time filter\n end_time: Optional end time filter\n user_context: Authentication context\n trigger_service: Injected trigger service\n db_session: Session used to resolve what each run's task cost\n\nReturns:\n Paginated execution history\n\nRaises:\n HTTPException: If trigger not found or invalid parameters", "operationId": "get_execution_history_v1_triggers__trigger_id__executions_get", "parameters": [ { "in": "path", "name": "trigger_id", "required": true, "schema": { "format": "uuid", "title": "Trigger Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Page number", "in": "query", "name": "page", "required": false, "schema": { "default": 1, "description": "Page number", "maximum": 1000000, "minimum": 1, "title": "Page", "type": "integer" } }, { "description": "Number of executions per page", "in": "query", "name": "page_size", "required": false, "schema": { "default": 50, "description": "Number of executions per page", "maximum": 100, "minimum": 1, "title": "Page Size", "type": "integer" } }, { "description": "Filter by execution status (success, failed, timeout, cancelled, skipped)", "in": "query", "name": "status", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by execution status (success, failed, timeout, cancelled, skipped)", "title": "Status" } }, { "description": "Filter executions after this time", "in": "query", "name": "start_time", "required": false, "schema": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Filter executions after this time", "title": "Start Time" } }, { "description": "Filter executions before this time", "in": "query", "name": "end_time", "required": false, "schema": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "description": "Filter executions before this time", "title": "End Time" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExecutionHistoryResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Execution History", "tags": [ "v1", "protected", "triggers" ] } }, "/v1/workspaces/{workspace}/triggers/{trigger_id}/metrics": { "get": { "description": "Get execution metrics for a trigger.\n\nReturns aggregated counts, success rate, execution time and spend. Spend is\nthe cost of the tasks those runs created, joined at read time \u2014 a run is\nrecorded when its task starts, the bill accrues afterwards.\n\nArgs:\n trigger_id: The unique identifier of the trigger\n hours: Time period in hours to analyze; omitted means the whole history\n user_context: Authentication context\n trigger_service: Injected trigger service\n db_session: Session used for the spend join\n\nReturns:\n Execution metrics for the trigger\n\nRaises:\n HTTPException: If trigger not found", "operationId": "get_execution_metrics_v1_triggers__trigger_id__metrics_get", "parameters": [ { "in": "path", "name": "trigger_id", "required": true, "schema": { "format": "uuid", "title": "Trigger Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Time period in hours (max 1 year). Omit for the trigger's whole history.", "in": "query", "name": "hours", "required": false, "schema": { "anyOf": [ { "maximum": 8760, "minimum": 1, "type": "integer" }, { "type": "null" } ], "description": "Time period in hours (max 1 year). Omit for the trigger's whole history.", "title": "Hours" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExecutionMetricsResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Execution Metrics", "tags": [ "v1", "protected", "triggers" ] } }, "/v1/workspaces/{workspace}/triggers/{trigger_id}/run": { "post": { "description": "Fire a trigger once, now, because a person asked for it.\n\nDistinct from ``/execute``, which replays a real event: this carries no event\ndata and records the caller in ``fired_by``, so the run is visibly a manual\none and the task it creates belongs to the caller rather than to whoever\ncreated the trigger.\n\nThe run is otherwise faithful to a real one -- the trigger's conditions are\nstill evaluated, and a run they reject comes back ``skipped`` with the reason\nrather than being forced through. A trigger that is switched off still runs:\n``is_active`` governs the schedule, not a person asking for one run.\n\nReturns:\n The execution, and the task id to watch when one was created.", "operationId": "run_trigger_now_v1_triggers__trigger_id__run_post", "parameters": [ { "in": "path", "name": "trigger_id", "required": true, "schema": { "format": "uuid", "title": "Trigger Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriggerRunResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Run Trigger Now", "tags": [ "v1", "protected", "triggers" ] } }, "/v1/workspaces/{workspace}/triggers/{trigger_id}/status": { "get": { "description": "Get trigger status and schedule information.\n\nReturns detailed status information about the trigger, including execution\nstatus, rate limiting, and schedule information for cron triggers.\n\nArgs:\n trigger_id: The unique identifier of the trigger\n user_context: Authentication context\n trigger_service: Injected trigger service\n\nReturns:\n Trigger status information\n\nRaises:\n HTTPException: If trigger not found", "operationId": "get_trigger_status_v1_triggers__trigger_id__status_get", "parameters": [ { "in": "path", "name": "trigger_id", "required": true, "schema": { "format": "uuid", "title": "Trigger Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TriggerStatusResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Trigger Status", "tags": [ "v1", "protected", "triggers" ] } }, "/v1/workspaces/{workspace}/triggers/{trigger_id}/timeline": { "get": { "description": "Get execution timeline for a trigger.\n\nReturns time-bucketed execution counts and success rates for visualization\nand trend analysis.\n\nArgs:\n trigger_id: The unique identifier of the trigger\n hours: Time period in hours to analyze (default 24, max 168)\n bucket_size_minutes: Size of time buckets in minutes (default 60)\n user_context: Authentication context\n trigger_service: Injected trigger service\n\nReturns:\n Execution timeline data\n\nRaises:\n HTTPException: If trigger not found", "operationId": "get_execution_timeline_v1_triggers__trigger_id__timeline_get", "parameters": [ { "in": "path", "name": "trigger_id", "required": true, "schema": { "format": "uuid", "title": "Trigger Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "description": "Time period in hours (max 7 days)", "in": "query", "name": "hours", "required": false, "schema": { "default": 24, "description": "Time period in hours (max 7 days)", "maximum": 168, "minimum": 1, "title": "Hours", "type": "integer" } }, { "description": "Time bucket size in minutes", "in": "query", "name": "bucket_size_minutes", "required": false, "schema": { "default": 60, "description": "Time bucket size in minutes", "maximum": 1440, "minimum": 5, "title": "Bucket Size Minutes", "type": "integer" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ExecutionTimelineResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Execution Timeline", "tags": [ "v1", "protected", "triggers" ] } }, "/v1/workspaces/{workspace}/workspace-registries": { "get": { "operationId": "list_workspace_registries_v1_workspace_registries_get", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/RegistryResponse" }, "title": "Response List Workspace Registries V1 Workspace Registries Get", "type": "array" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Workspace Registries", "tags": [ "v1", "protected", "registries" ] }, "post": { "operationId": "create_workspace_registry_v1_workspace_registries_post", "parameters": [ { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceRegistryCreate" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegistryResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Create Workspace Registry", "tags": [ "v1", "protected", "registries" ] } }, "/v1/workspaces/{workspace}/workspace-registries/{registry_id}": { "delete": { "description": "Remove the registry, or retire it while something still uses its items.", "operationId": "delete_workspace_registry_v1_workspace_registries__registry_id__delete", "parameters": [ { "in": "path", "name": "registry_id", "required": true, "schema": { "format": "uuid", "title": "Registry Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceRegistryRemoved" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Delete Workspace Registry", "tags": [ "v1", "protected", "registries" ] }, "get": { "operationId": "get_workspace_registry_v1_workspace_registries__registry_id__get", "parameters": [ { "in": "path", "name": "registry_id", "required": true, "schema": { "format": "uuid", "title": "Registry Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegistryResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Workspace Registry", "tags": [ "v1", "protected", "registries" ] }, "patch": { "operationId": "update_workspace_registry_v1_workspace_registries__registry_id__patch", "parameters": [ { "in": "path", "name": "registry_id", "required": true, "schema": { "format": "uuid", "title": "Registry Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceRegistryUpdate" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegistryResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Update Workspace Registry", "tags": [ "v1", "protected", "registries" ] } }, "/v1/workspaces/{workspace}/workspace-registries/{registry_id}/sync": { "post": { "operationId": "sync_workspace_registry_v1_workspace_registries__registry_id__sync_post", "parameters": [ { "in": "path", "name": "registry_id", "required": true, "schema": { "format": "uuid", "title": "Registry Id", "type": "string" } }, { "description": "Slug of the workspace the request acts in", "in": "path", "name": "workspace", "required": true, "schema": { "description": "Slug of the workspace the request acts in", "maxLength": 120, "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$", "title": "Workspace", "type": "string" } }, { "in": "query", "name": "force", "required": false, "schema": { "default": false, "title": "Force", "type": "boolean" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/agentarea_api__api__v1__registries__SyncResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Sync Workspace Registry", "tags": [ "v1", "protected", "registries" ] } }, "/webhooks/health": { "get": { "description": "Health check endpoint for webhook system.", "operationId": "webhook_health_check_webhooks_health_get", "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": true, "title": "Response Webhook Health Check Webhooks Health Get", "type": "object" } } }, "description": "Successful Response" } }, "security": [ { "bearer": [] } ], "summary": "Webhook Health Check", "tags": [ "webhooks", "webhooks" ] } }, "/webhooks/{webhook_id}": { "post": { "description": "Record an incoming webhook in its stream", "operationId": "handle_webhook_webhooks__webhook_id__post", "parameters": [ { "in": "path", "name": "webhook_id", "required": true, "schema": { "title": "Webhook Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "bearer": [] } ], "summary": "Handle webhook requests", "tags": [ "webhooks", "webhooks" ] } } }, "security": [ { "bearer": [] } ] }