{ "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": { "expires_in_days": { "anyOf": [ { "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", "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" }, "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" }, "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" }, "AgentAuthentication": { "properties": { "credentials": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Credentials" }, "schemes": { "items": { "type": "string" }, "title": "Schemes", "type": "array" } }, "required": [ "schemes" ], "title": "AgentAuthentication", "type": "object" }, "AgentCapabilities": { "properties": { "extendedAgentCard": { "default": false, "title": "Extendedagentcard", "type": "boolean" }, "extensions": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Extensions" }, "pushNotifications": { "default": false, "title": "Pushnotifications", "type": "boolean" }, "stateTransitionHistory": { "default": false, "title": "Statetransitionhistory", "type": "boolean" }, "streaming": { "default": false, "title": "Streaming", "type": "boolean" } }, "title": "AgentCapabilities", "type": "object" }, "AgentCard": { "properties": { "authentication": { "anyOf": [ { "$ref": "#/components/schemas/AgentAuthentication" }, { "type": "null" } ] }, "capabilities": { "$ref": "#/components/schemas/AgentCapabilities" }, "defaultInputModes": { "default": [ "text/plain", "application/json" ], "items": { "type": "string" }, "title": "Defaultinputmodes", "type": "array" }, "defaultOutputModes": { "default": [ "text/plain", "application/json" ], "items": { "type": "string" }, "title": "Defaultoutputmodes", "type": "array" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "documentationUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Documentationurl" }, "name": { "title": "Name", "type": "string" }, "protocolVersion": { "default": "0.3.0", "title": "Protocolversion", "type": "string" }, "provider": { "anyOf": [ { "$ref": "#/components/schemas/AgentProvider" }, { "type": "null" } ] }, "security": { "anyOf": [ { "items": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Security" }, "securitySchemes": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Securityschemes" }, "skills": { "items": { "$ref": "#/components/schemas/AgentSkill" }, "title": "Skills", "type": "array" }, "supportedInterfaces": { "anyOf": [ { "items": { "$ref": "#/components/schemas/AgentInterface" }, "type": "array" }, { "type": "null" } ], "title": "Supportedinterfaces" }, "supportsAuthenticatedExtendedCard": { "default": true, "title": "Supportsauthenticatedextendedcard", "type": "boolean" }, "url": { "title": "Url", "type": "string" }, "version": { "default": "1.0.0", "title": "Version", "type": "string" } }, "required": [ "name", "url", "capabilities", "skills" ], "title": "AgentCard", "type": "object" }, "AgentCreate": { "additionalProperties": false, "description": "Payload for creating an agent.\n\n``model_id`` accepts either a model-instance UUID configured in the\nworkspace, or a recognized provider identifier (e.g. ``gpt-4o``,\n``claude-3-5-sonnet``, ``openrouter/qwen/qwen-2.5-72b-instruct``).", "properties": { "a2ui_enabled": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "description": "Expose this agent over the A2UI protocol.", "title": "A2Ui Enabled" }, "agent_type": { "default": "stateless", "description": "'stateless' (each request independent) or 'stateful' (maintains conversation context across runs).", "enum": [ "stateless", "stateful" ], "title": "Agent Type", "type": "string" }, "description": { "default": "", "description": "Short summary of what the agent does.", "maxLength": 1000, "title": "Description", "type": "string" }, "events_config": { "anyOf": [ { "$ref": "#/components/schemas/EventsConfig" }, { "type": "null" } ], "description": "Event subscriptions that auto-trigger this agent." }, "instruction": { "default": "", "description": "System prompt / behavioural instructions for the agent.", "maxLength": 20000, "title": "Instruction", "type": "string" }, "model_id": { "description": "Model instance UUID or provider model identifier (e.g. 'gpt-4o', 'claude-3-5-sonnet').", "title": "Model Id", "type": "string" }, "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": { "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" } ], "description": "Tools attached to the agent (code/mcp/agent/openapi).", "title": "Tools" } }, "required": [ "name", "model_id" ], "title": "AgentCreate", "type": "object" }, "AgentInterface": { "properties": { "protocolBinding": { "title": "Protocolbinding", "type": "string" }, "protocolVersion": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Protocolversion" }, "tenant": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tenant" }, "url": { "title": "Url", "type": "string" } }, "required": [ "url", "protocolBinding" ], "title": "AgentInterface", "type": "object" }, "AgentOverviewResponse": { "properties": { "cost_mtd_usd": { "title": "Cost Mtd Usd", "type": "number" }, "cost_today_usd": { "title": "Cost Today Usd", "type": "number" }, "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" }, "AgentProvider": { "properties": { "organization": { "title": "Organization", "type": "string" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url" } }, "required": [ "organization" ], "title": "AgentProvider", "type": "object" }, "AgentResponse": { "properties": { "a2ui_enabled": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "A2Ui Enabled" }, "agent_type": { "default": "stateless", "title": "Agent Type", "type": "string" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "events_config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Events Config" }, "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" }, "AgentRow": { "properties": { "agent_id": { "format": "uuid", "title": "Agent Id", "type": "string" }, "cost_mtd_usd": { "title": "Cost Mtd Usd", "type": "number" }, "cost_today_usd": { "title": "Cost Today Usd", "type": "number" }, "last_activity_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Last Activity At" }, "name": { "title": "Name", "type": "string" }, "recent_task_names": { "items": { "type": "string" }, "title": "Recent Task Names", "type": "array" }, "tasks_done_today": { "title": "Tasks Done Today", "type": "integer" }, "tasks_failed_today": { "title": "Tasks Failed Today", "type": "integer" } }, "required": [ "agent_id", "name", "tasks_done_today", "tasks_failed_today", "recent_task_names", "last_activity_at", "cost_today_usd", "cost_mtd_usd" ], "title": "AgentRow", "type": "object" }, "AgentSkill": { "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "examples": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Examples" }, "id": { "title": "Id", "type": "string" }, "inputModes": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Inputmodes" }, "name": { "title": "Name", "type": "string" }, "outputModes": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Outputmodes" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tags" } }, "required": [ "id", "name" ], "title": "AgentSkill", "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" }, "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": { "anyOf": [ { "enum": [ "stateless", "stateful" ], "type": "string" }, { "type": "null" } ], "title": "Agent Type" }, "capabilities": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Capabilities" }, "description": { "anyOf": [ { "maxLength": 1000, "type": "string" }, { "type": "null" } ], "title": "Description" }, "events_config": { "anyOf": [ { "$ref": "#/components/schemas/EventsConfig" }, { "type": "null" } ] }, "instruction": { "anyOf": [ { "maxLength": 20000, "type": "string" }, { "type": "null" } ], "title": "Instruction" }, "model_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Id" }, "name": { "anyOf": [ { "maxLength": 255, "minLength": 1, "type": "string" }, { "type": "null" } ], "title": "Name" }, "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" }, "ApprovalPolicy": { "additionalProperties": false, "description": "Human approval and escalation requirements.", "properties": { "approvers": { "items": { "type": "string" }, "title": "Approvers", "type": "array" }, "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" }, "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" }, "Blockers": { "properties": { "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", "wallet_exhausted", "failed_24h" ], "title": "Blockers", "type": "object" }, "Body_import_workspace_config_file_v1_workspace_import_file_post": { "properties": { "file": { "contentMediaType": "application/octet-stream", "description": "YAML configuration file", "title": "File", "type": "string" } }, "required": [ "file" ], "title": "Body_import_workspace_config_file_v1_workspace_import_file_post", "type": "object" }, "Body_upload_project_file_v1_projects__project_id__files_post": { "properties": { "file": { "contentMediaType": "application/octet-stream", "title": "File", "type": "string" } }, "required": [ "file" ], "title": "Body_upload_project_file_v1_projects__project_id__files_post", "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" }, "BudgetPolicy-Input": { "additionalProperties": false, "description": "Budget-related ceilings.", "properties": { "monthly_spend_cap_usd": { "anyOf": [ { "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" }, { "type": "null" } ], "title": "Monthly Spend Cap Usd" }, "run_budget_usd": { "anyOf": [ { "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" }, { "type": "null" } ], "title": "Run Budget Usd" }, "service_budget_usd": { "anyOf": [ { "type": "number" }, { "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", "type": "string" }, { "type": "null" } ], "title": "Service Budget Usd" } }, "title": "BudgetPolicy", "type": "object" }, "BudgetPolicy-Output": { "additionalProperties": false, "description": "Budget-related ceilings.", "properties": { "monthly_spend_cap_usd": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Monthly Spend Cap Usd" }, "run_budget_usd": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Run Budget Usd" }, "service_budget_usd": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Service Budget Usd" } }, "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" }, "description": { "default": "", "title": "Description", "type": "string" }, "display_name": { "anyOf": [ { "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).", "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" }, "description": { "default": "", "title": "Description", "type": "string" }, "display_name": { "anyOf": [ { "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).", "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": { "minLength": 1, "title": "Name", "type": "string" }, "skills": { "description": "BundleSkill keys to attach.", "items": { "type": "string" }, "title": "Skills", "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" }, "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" }, "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.", "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, "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": { "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" }, "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" }, "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.", "properties": { "disabled_methods": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Disabled Methods" }, "requires_user_confirmation": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Requires User Confirmation" } }, "title": "CodeToolSettings", "type": "object" }, "CollectionCreateRequest": { "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "name": { "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": [ { "type": "string" }, { "type": "null" } ], "title": "Name" } }, "title": "CollectionUpdateRequest", "type": "object" }, "ContentSafetyPolicy": { "additionalProperties": false, "description": "Content-safety governance controls.", "properties": { "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" }, "CreateInvitationBody": { "properties": { "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email" }, "expires_in_days": { "anyOf": [ { "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": { "default": "execution", "title": "Service Budget Period", "type": "string" }, "service_budget_usd": { "default": 0.0, "title": "Service Budget Usd", "type": "number" }, "wallet_type": { "title": "Wallet Type", "type": "string" }, "x402_config": { "anyOf": [ { "$ref": "#/components/schemas/X402ConfigSchema" }, { "type": "null" } ] } }, "required": [ "wallet_type" ], "title": "CreateWalletRequest", "type": "object" }, "DailySpendPoint": { "properties": { "date": { "title": "Date", "type": "string" }, "usd": { "title": "Usd", "type": "number" } }, "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": { "agents": { "items": { "$ref": "#/components/schemas/AgentRow" }, "title": "Agents", "type": "array" }, "blockers": { "$ref": "#/components/schemas/Blockers" }, "daily_spend": { "items": { "$ref": "#/components/schemas/DailySpendPoint" }, "title": "Daily Spend", "type": "array" }, "daily_tasks": { "items": { "$ref": "#/components/schemas/DailyTaskCounts" }, "title": "Daily Tasks", "type": "array" }, "spend": { "$ref": "#/components/schemas/SpendCard" } }, "required": [ "spend", "blockers", "agents", "daily_spend", "daily_tasks" ], "title": "DashboardResponse", "type": "object" }, "DiscoverPreviewModelResponse": { "properties": { "context_window": { "title": "Context Window", "type": "integer" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "display_name": { "title": "Display Name", "type": "string" }, "id": { "title": "Id", "type": "string" }, "input_cost_per_token": { "default": 0.0, "title": "Input Cost Per Token", "type": "number" }, "is_new": { "default": false, "title": "Is New", "type": "boolean" }, "max_output_tokens": { "default": 4096, "title": "Max Output Tokens", "type": "integer" }, "model_name": { "title": "Model Name", "type": "string" }, "output_cost_per_token": { "default": 0.0, "title": "Output Cost Per Token", "type": "number" }, "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" } }, "required": [ "discovered", "new_models", "models" ], "title": "DiscoverPreviewResponse", "type": "object" }, "DiscoveredModelResponse": { "properties": { "context_window": { "title": "Context Window", "type": "integer" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "display_name": { "title": "Display Name", "type": "string" }, "input_cost_per_token": { "default": 0.0, "title": "Input Cost Per Token", "type": "number" }, "is_new": { "default": false, "title": "Is New", "type": "boolean" }, "max_output_tokens": { "default": 4096, "title": "Max Output Tokens", "type": "integer" }, "model_name": { "title": "Model Name", "type": "string" }, "output_cost_per_token": { "default": 0.0, "title": "Output Cost Per Token", "type": "number" }, "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" } }, "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" } ] }, "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", "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" }, "EventConfig": { "description": "One event subscription for an agent.", "properties": { "config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "Event-specific configuration.", "title": "Config" }, "enabled": { "default": true, "description": "Whether this subscription is active.", "title": "Enabled", "type": "boolean" }, "event_type": { "description": "Event type the agent listens to.", "title": "Event Type", "type": "string" } }, "required": [ "event_type" ], "title": "EventConfig", "type": "object" }, "EventsConfig": { "description": "Per-agent event subscriptions.", "properties": { "events": { "anyOf": [ { "items": { "$ref": "#/components/schemas/EventConfig" }, "type": "array" }, { "type": "null" } ], "title": "Events" } }, "title": "EventsConfig", "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" }, "ExecutionMetricsResponse": { "description": "Response model for execution metrics.", "properties": { "avg_execution_time_ms": { "title": "Avg Execution Time Ms", "type": "number" }, "failed_executions": { "title": "Failed Executions", "type": "integer" }, "failure_rate": { "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": { "title": "Period Hours", "type": "integer" }, "success_rate": { "title": "Success Rate", "type": "number" }, "successful_executions": { "title": "Successful Executions", "type": "integer" }, "timeout_executions": { "title": "Timeout Executions", "type": "integer" }, "total_executions": { "title": "Total Executions", "type": "integer" }, "trigger_id": { "format": "uuid", "title": "Trigger Id", "type": "string" } }, "required": [ "trigger_id", "period_hours", "total_executions", "successful_executions", "failed_executions", "timeout_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" }, "FailedTaskBlocker": { "properties": { "agent_id": { "format": "uuid", "title": "Agent Id", "type": "string" }, "agent_name": { "title": "Agent Name", "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", "agent_name", "error", "occurred_at" ], "title": "FailedTaskBlocker", "type": "object" }, "FundWalletRequest": { "properties": { "service_budget_usd": { "title": "Service Budget Usd", "type": "number" } }, "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" }, "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": { "title": "Agent Name", "type": "string" }, "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", "agent_name", "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" }, "ImportRequest": { "description": "Request body for importing workspace configuration.", "properties": { "override_existing": { "default": false, "description": "Override existing resources with same name", "title": "Override Existing", "type": "boolean" }, "skip_missing_dependencies": { "default": false, "description": "Skip resources with missing dependencies", "title": "Skip Missing Dependencies", "type": "boolean" }, "yaml_content": { "description": "YAML configuration content", "title": "Yaml Content", "type": "string" } }, "required": [ "yaml_content" ], "title": "ImportRequest", "type": "object" }, "ImportResult": { "description": "Result of an import operation.", "properties": { "created_agents": { "default": 0, "title": "Created Agents", "type": "integer" }, "created_mcp_instances": { "default": 0, "title": "Created Mcp Instances", "type": "integer" }, "created_provider_configs": { "default": 0, "title": "Created Provider Configs", "type": "integer" }, "created_skills": { "default": 0, "title": "Created Skills", "type": "integer" }, "errors": { "items": { "type": "string" }, "title": "Errors", "type": "array" }, "success": { "title": "Success", "type": "boolean" }, "warnings": { "items": { "type": "string" }, "title": "Warnings", "type": "array" } }, "required": [ "success" ], "title": "ImportResult", "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" }, "expires_at": { "format": "date-time", "title": "Expires At", "type": "string" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "invited_by": { "title": "Invited By", "type": "string" }, "status": { "title": "Status", "type": "string" }, "token": { "title": "Token", "type": "string" }, "workspace_id": { "title": "Workspace Id", "type": "string" } }, "required": [ "id", "workspace_id", "email", "invited_by", "status", "expires_at", "accepted_at", "accepted_by_user_id", "created_at", "token" ], "title": "InvitationCreatedResponse", "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" }, "status": { "title": "Status", "type": "string" }, "workspace_id": { "title": "Workspace Id", "type": "string" } }, "required": [ "id", "workspace_id", "email", "invited_by", "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" }, "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\n``json_spec`` carries the connection configuration. Common shapes:\n\n- ``{\"type\": \"url\", \"endpoint_url\": \"https://...\"}``\n- ``{\"type\": \"docker\", \"environment\": {...}, \"env_vars\": [...]}``\n- ``{\"type\": \"command\", \"command\": [...], \"environment\": {...}}``\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" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Optional human-readable description of the instance.", "title": "Description" }, "json_spec": { "additionalProperties": true, "description": "Connection configuration. Must include 'type' ('url' | 'docker' | 'command'); other keys depend on type.", "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.).", "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" }, "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" }, "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" }, "json_spec": { "additionalProperties": true, "title": "Json Spec", "type": "object" }, "last_dispatch": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Last Dispatch" }, "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" }, "updated_at": { "format": "date-time", "title": "Updated At", "type": "string" }, "verification": { "additionalProperties": true, "title": "Verification", "type": "object" } }, "required": [ "id", "name", "description", "server_spec_id", "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": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "json_spec": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Json Spec" }, "name": { "anyOf": [ { "maxLength": 255, "minLength": 1, "type": "string" }, { "type": "null" } ], "title": "Name" } }, "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_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": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "docker_image_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Docker Image Url" }, "env_schema": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Env Schema" }, "is_public": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Public" }, "json_spec": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Json Spec" }, "name": { "anyOf": [ { "maxLength": 255, "minLength": 1, "type": "string" }, { "type": "null" } ], "title": "Name" }, "registry_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Registry Url" }, "remote_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Remote Url" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Lifecycle status of the spec (e.g. 'active', 'deprecated').", "title": "Status" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tags" }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Version" } }, "title": "MCPServerUpdate", "type": "object" }, "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": { "default": 10.0, "title": "Session Budget Usd", "type": "number" }, "stripe_profile_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Stripe Profile Id" } }, "title": "MPPConfigSchema", "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, with its per-call approval gate.\n\nReplaces the old ``list[Any]`` for ``allowed_tools`` (the former FIXME).", "properties": { "requires_user_confirmation": { "default": false, "title": "Requires User Confirmation", "type": "boolean" }, "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" }, "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" }, "joined_at": { "format": "date-time", "title": "Joined At", "type": "string" }, "user_id": { "title": "User Id", "type": "string" }, "workspace_id": { "title": "Workspace Id", "type": "string" } }, "required": [ "id", "workspace_id", "user_id", "joined_at", "invitation_id" ], "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" }, "model_display_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Display Name" }, "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" }, "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": "number" }, { "type": "null" } ], "title": "Cost" }, "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" }, "ModelSpecCreate": { "properties": { "context_window": { "default": 4096, "title": "Context Window", "type": "integer" }, "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" }, "is_active": { "default": true, "title": "Is Active", "type": "boolean" }, "model_name": { "title": "Model Name", "type": "string" }, "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": { "context_window": { "anyOf": [ { "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" }, "is_active": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Active" } }, "title": "ModelSpecUpdate", "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" }, "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" }, "OAuthLinkCreateRequest": { "properties": { "access_control": { "default": "workspace", "description": "Access control level: workspace | public", "title": "Access Control", "type": "string" }, "expires_in_days": { "anyOf": [ { "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" }, "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'.", "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" }, "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" } }, "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": { "default": [], "items": { "additionalProperties": true, "type": "object" }, "title": "Available Tools", "type": "array" }, "base_url": { "title": "Base Url", "type": "string" }, "created_at": { "title": "Created At" }, "custom_headers": { "anyOf": [ { "items": { "$ref": "#/components/schemas/HeaderOutput" }, "type": "array" }, { "type": "null" } ], "title": "Custom Headers" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "name": { "title": "Name", "type": "string" }, "spec_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Spec Url" }, "status": { "title": "Status", "type": "string" }, "updated_at": { "title": "Updated At" } }, "required": [ "id", "name", "base_url", "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" }, "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" }, "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" } }, "title": "OpenAPIConnectionUpdate", "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" }, "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": "number" }, "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" }, "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" } ] }, "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" ], "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, "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": [ { "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" }, "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" }, "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": [ { "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": { "anyOf": [ { "maxLength": 255, "minLength": 1, "type": "string" }, { "type": "null" } ], "description": "New project name.", "title": "Name" }, "parent_project_id": { "anyOf": [ { "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" }, "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" }, "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" }, "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" }, "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" }, "RegistryCreate": { "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "name": { "description": "Human-readable registry name", "title": "Name", "type": "string" }, "registry_type": { "description": "Entity type: 'mcp_servers' or 'skills'", "title": "Registry Type", "type": "string" }, "source_type": { "description": "Fetch method: 'url', 'github', or 'api'", "title": "Source Type", "type": "string" }, "source_url": { "description": "URL to the registry source (JSON or YAML)", "title": "Source Url", "type": "string" }, "sync_mode": { "default": "manual", "description": "'auto' or 'manual'", "title": "Sync Mode", "type": "string" } }, "required": [ "name", "registry_type", "source_type", "source_url" ], "title": "RegistryCreate", "type": "object" }, "RegistryItemResponse": { "properties": { "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" }, "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" }, "registry_id": { "format": "uuid", "title": "Registry Id", "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" } }, "required": [ "id", "registry_id", "external_id", "name", "description", "version", "spec", "tags", "installed_entity_id", "update_available", "installed_version", "created_at", "updated_at" ], "title": "RegistryItemResponse", "type": "object" }, "RegistryResponse": { "properties": { "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" }, "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" }, "name": { "title": "Name", "type": "string" }, "registry_type": { "title": "Registry Type", "type": "string" }, "source_type": { "title": "Source Type", "type": "string" }, "source_url": { "title": "Source Url", "type": "string" }, "sync_mode": { "title": "Sync Mode", "type": "string" }, "updated_at": { "format": "date-time", "title": "Updated At", "type": "string" } }, "required": [ "id", "name", "description", "registry_type", "source_type", "source_url", "sync_mode", "is_active", "last_synced_at", "last_sync_error", "item_count", "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" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Url" }, "sync_mode": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sync Mode" } }, "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" }, "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": [ { "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": [ { "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", "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" }, "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" }, "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" }, "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": [ { "type": "string" }, { "type": "null" } ], "description": "New description", "title": "Description" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "New name", "title": "Name" } }, "title": "SkillUpdateRequest", "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": "number" }, { "type": "null" } ], "title": "Cap Usd" }, "mtd_usd": { "title": "Mtd Usd", "type": "number" }, "pct_of_cap": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Pct Of Cap" }, "projected_eom_usd": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Projected Eom Usd" }, "projection_method": { "default": "linear-mtd", "title": "Projection Method", "type": "string" }, "today_usd": { "title": "Today Usd", "type": "number" } }, "required": [ "today_usd", "mtd_usd", "cap_usd", "pct_of_cap", "projected_eom_usd" ], "title": "SpendCard", "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" }, "TaskArtifactItem": { "description": "A single artifact stored under a task's workspace scope.", "properties": { "content_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content Type" }, "download_url": { "title": "Download Url", "type": "string" }, "last_modified": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Modified" }, "path": { "title": "Path", "type": "string" }, "size": { "title": "Size", "type": "integer" } }, "required": [ "path", "size", "content_type", "last_modified", "download_url" ], "title": "TaskArtifactItem", "type": "object" }, "TaskCommandPayload": { "properties": { "budget_usd": { "anyOf": [ { "type": "number" }, { "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": { "description": { "title": "Description", "type": "string" }, "parameters": { "additionalProperties": true, "default": {}, "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" } ] } }, "required": [ "description" ], "title": "TaskCreate", "type": "object" }, "TaskEvent": { "description": "Model for task execution events.", "properties": { "agent_id": { "title": "Agent Id", "type": "string" }, "event_type": { "title": "Event Type", "type": "string" }, "execution_id": { "title": "Execution Id", "type": "string" }, "id": { "title": "Id", "type": "string" }, "message": { "title": "Message", "type": "string" }, "metadata": { "additionalProperties": true, "default": {}, "title": "Metadata", "type": "object" }, "task_id": { "title": "Task Id", "type": "string" }, "timestamp": { "format": "date-time", "title": "Timestamp", "type": "string" } }, "required": [ "id", "task_id", "agent_id", "execution_id", "timestamp", "event_type", "message" ], "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" }, "TaskResponse": { "properties": { "agent_id": { "format": "uuid", "title": "Agent Id", "type": "string" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "description": { "title": "Description", "type": "string" }, "execution_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Execution Id" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "parameters": { "additionalProperties": true, "title": "Parameters", "type": "object" }, "result": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "string" }, { "type": "null" } ], "title": "Result" }, "status": { "title": "Status", "type": "string" }, "total_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Total Cost" } }, "required": [ "id", "agent_id", "description", "parameters", "status", "created_at" ], "title": "TaskResponse", "type": "object" }, "TaskSummary": { "description": "Headline rollup for a single task, derived from the event log.\n\nBacked by the ``task_summary`` Postgres view. Stable contract \u2014 when\nthe view's implementation moves to a materialized view or projection\ntable, this shape stays the same. Per-tool breakdowns and per-artifact\nlists are deliberately not here; they live in their own endpoints so\nthis stays small and additive.", "properties": { "agent_id": { "format": "uuid", "title": "Agent Id", "type": "string" }, "cost_usd": { "default": 0.0, "title": "Cost Usd", "type": "number" }, "delegations_completed": { "default": 0, "title": "Delegations Completed", "type": "integer" }, "delegations_failed": { "default": 0, "title": "Delegations Failed", "type": "integer" }, "delegations_started": { "default": 0, "title": "Delegations Started", "type": "integer" }, "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" }, "iterations": { "default": 0, "title": "Iterations", "type": "integer" }, "last_error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Error" }, "llm_calls": { "default": 0, "title": "Llm Calls", "type": "integer" }, "llm_calls_failed": { "default": 0, "title": "Llm Calls Failed", "type": "integer" }, "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" }, "tools_called": { "default": 0, "title": "Tools Called", "type": "integer" }, "tools_failed": { "default": 0, "title": "Tools Failed", "type": "integer" }, "workspace_id": { "title": "Workspace Id", "type": "string" } }, "required": [ "task_id", "agent_id", "workspace_id", "status" ], "title": "TaskSummary", "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": { "title": "Agent Name", "type": "string" }, "created_at": { "format": "date-time", "title": "Created At", "type": "string" }, "description": { "title": "Description", "type": "string" }, "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" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "parameters": { "additionalProperties": true, "title": "Parameters", "type": "object" }, "result": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "string" }, { "type": "null" } ], "title": "Result" }, "status": { "title": "Status", "type": "string" }, "total_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Total Cost" } }, "required": [ "id", "agent_id", "agent_name", "description", "parameters", "status", "created_at" ], "title": "TaskWithAgent", "type": "object" }, "TokenPolicy": { "additionalProperties": false, "description": "Token-related ceilings.", "properties": { "max_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Tokens" }, "max_tokens_per_call": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Tokens Per Call" } }, "title": "TokenPolicy", "type": "object" }, "ToolAccessCheckRequest": { "properties": { "arguments": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "Optional exact argument set. Omit to check the whole-tool grant.", "title": "Arguments" }, "tool_name": { "minLength": 1, "title": "Tool Name", "type": "string" }, "user_id": { "description": "User UUID or User: subject.", "title": "User Id", "type": "string" } }, "required": [ "user_id", "tool_name" ], "title": "ToolAccessCheckRequest", "type": "object" }, "ToolAccessCheckResponse": { "properties": { "allowed": { "title": "Allowed", "type": "boolean" }, "grant": { "$ref": "#/components/schemas/ToolAccessGrant" } }, "required": [ "allowed", "grant" ], "title": "ToolAccessCheckResponse", "type": "object" }, "ToolAccessGrant": { "properties": { "arguments_hash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Arguments Hash" }, "object_id": { "title": "Object Id", "type": "string" }, "scope": { "enum": [ "tool", "arguments" ], "title": "Scope", "type": "string" }, "tool_name": { "title": "Tool Name", "type": "string" }, "user_id": { "title": "User Id", "type": "string" }, "workspace_id": { "title": "Workspace Id", "type": "string" } }, "required": [ "scope", "workspace_id", "user_id", "tool_name", "object_id" ], "title": "ToolAccessGrant", "type": "object" }, "ToolAccessGrantListResponse": { "properties": { "count": { "title": "Count", "type": "integer" }, "grants": { "items": { "$ref": "#/components/schemas/ToolAccessGrant" }, "title": "Grants", "type": "array" } }, "required": [ "grants", "count" ], "title": "ToolAccessGrantListResponse", "type": "object" }, "ToolAccessGrantRequest": { "properties": { "arguments": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "Optional exact argument set. Omit for a whole-tool grant.", "title": "Arguments" }, "tool_name": { "minLength": 1, "title": "Tool Name", "type": "string" }, "user_id": { "description": "User UUID or User: subject.", "title": "User Id", "type": "string" } }, "required": [ "user_id", "tool_name" ], "title": "ToolAccessGrantRequest", "type": "object" }, "ToolAccessGrantResponse": { "properties": { "grant": { "$ref": "#/components/schemas/ToolAccessGrant" }, "ok": { "title": "Ok", "type": "boolean" } }, "required": [ "ok", "grant" ], "title": "ToolAccessGrantResponse", "type": "object" }, "ToolResponse": { "description": "Unified tool response format.", "properties": { "description": { "title": "Description", "type": "string" }, "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" }, "type": { "enum": [ "code", "mcp" ], "title": "Type", "type": "string" } }, "required": [ "name", "type", "description", "input_schema" ], "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" }, "TriggerCreate": { "additionalProperties": false, "description": "Payload for creating a trigger.\n\nA trigger fires an agent \u2014 either on a cron schedule (``trigger_type='cron'``)\nor in response to an inbound webhook (``trigger_type='webhook'``). For poll-based\nchannels (e.g. email inbox), use ``trigger_type='polling'`` plus a\n``data_extractor`` configuration.", "properties": { "agent_id": { "description": "UUID of the agent to invoke when the trigger fires.", "format": "uuid", "title": "Agent Id", "type": "string" }, "allowed_methods": { "description": "HTTP methods accepted on the webhook endpoint.", "items": { "type": "string" }, "title": "Allowed Methods", "type": "array" }, "channel_credentials": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "Channel credentials (bot_token, SMTP password, etc). Stored encrypted in the secret store. Never returned in responses.", "title": "Channel Credentials" }, "conditions": { "additionalProperties": true, "description": "Optional conditions evaluated against event data before firing.", "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" }, "data_extractor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Polling extractor identifier (e.g. 'mailslurper', 'imap').", "title": "Data Extractor" }, "data_extractor_config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "Connection/auth details for the polling extractor.", "title": "Data Extractor Config" }, "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_types": { "description": "Event types to filter on (empty list = accept all events).", "items": { "type": "string" }, "title": "Event Types", "type": "array" }, "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" }, "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, 'webhook' for inbound HTTP, 'polling' for extractor-driven.", "enum": [ "cron", "webhook", "polling" ], "title": "Trigger Type", "type": "string" }, "validation_rules": { "additionalProperties": true, "description": "Per-channel validation rules (signature secrets, allowed senders, etc).", "title": "Validation Rules", "type": "object" }, "webhook_config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "Channel-specific configuration (bot tokens, signing keys, etc).", "title": "Webhook Config" }, "webhook_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Public webhook path segment. Auto-generated if omitted for webhook triggers.", "title": "Webhook Id" }, "webhook_type": { "default": "generic", "description": "Channel type: 'generic', 'telegram', 'slack', 'discord', etc.", "title": "Webhook Type", "type": "string" } }, "required": [ "name", "agent_id", "trigger_type" ], "title": "TriggerCreate", "type": "object" }, "TriggerExecuteRequest": { "description": "Request model for executing a trigger via the event service.", "properties": { "channel_origin": { "additionalProperties": true, "title": "Channel Origin", "type": "object" }, "events": { "items": { "additionalProperties": true, "type": "object" }, "title": "Events", "type": "array" } }, "title": "TriggerExecuteRequest", "type": "object" }, "TriggerExecutionResponse": { "description": "Response model for trigger execution data.", "properties": { "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" }, "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" }, "allowed_methods": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Allowed Methods" }, "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" }, "data_extractor": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Data Extractor" }, "description": { "title": "Description", "type": "string" }, "event_types": { "items": { "type": "string" }, "title": "Event Types", "type": "array" }, "failure_threshold": { "title": "Failure Threshold", "type": "integer" }, "has_channel_credentials": { "default": false, "title": "Has Channel Credentials", "type": "boolean" }, "id": { "format": "uuid", "title": "Id", "type": "string" }, "is_active": { "title": "Is Active", "type": "boolean" }, "last_execution_at": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Last Execution At" }, "name": { "title": "Name", "type": "string" }, "next_run_time": { "anyOf": [ { "format": "date-time", "type": "string" }, { "type": "null" } ], "title": "Next Run Time" }, "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" }, "validation_rules": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Validation Rules" }, "webhook_config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Webhook Config" }, "webhook_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Webhook Id" }, "webhook_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Webhook Type" } }, "required": [ "id", "name", "description", "agent_id", "trigger_type", "is_active", "task_parameters", "conditions", "created_at", "updated_at", "created_by", "failure_threshold", "consecutive_failures" ], "title": "TriggerResponse", "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" }, "TriggerUpdate": { "additionalProperties": false, "description": "Patch payload for a trigger. All fields optional \u2014 unset = unchanged.", "properties": { "allowed_methods": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Allowed Methods" }, "channel_credentials": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "description": "Channel credentials to update. Pass to rotate credentials.", "title": "Channel Credentials" }, "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`` (legacy).", "title": "Enabled" }, "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" }, "task_parameters": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Task Parameters" }, "timezone": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Timezone" }, "validation_rules": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Validation Rules" }, "webhook_config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Webhook Config" }, "webhook_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Webhook Type" } }, "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": [ { "type": "string" }, { "type": "null" } ], "title": "Service Budget Period" }, "service_budget_usd": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Service Budget Usd" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status" }, "wallet_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Wallet Type" }, "x402_config": { "anyOf": [ { "$ref": "#/components/schemas/X402ConfigSchema" }, { "type": "null" } ] } }, "title": "UpdateWalletRequest", "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": "number" }, "service_budget_period": { "title": "Service Budget Period", "type": "string" }, "service_budget_usd": { "title": "Service Budget Usd", "type": "number" }, "total_spent_current_period": { "title": "Total Spent Current Period", "type": "number" } }, "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": { "title": "Agent Name", "type": "string" }, "budget_usd": { "title": "Budget Usd", "type": "number" }, "period": { "title": "Period", "type": "string" } }, "required": [ "agent_id", "agent_name", "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": "number" }, "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" }, "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": { "default": [], "items": { "type": "string" }, "title": "Directories", "type": "array" }, "files": { "items": { "$ref": "#/components/schemas/WorkspaceFileInfo" }, "title": "Files", "type": "array" } }, "required": [ "files" ], "title": "WorkspaceFileListResponse", "type": "object" }, "WorkspaceResponse": { "properties": { "id": { "title": "Id", "type": "string" }, "name": { "title": "Name", "type": "string" }, "slug": { "title": "Slug", "type": "string" }, "type": { "title": "Type", "type": "string" } }, "required": [ "id", "slug", "name", "type" ], "title": "WorkspaceResponse", "type": "object" }, "WorkspaceSettingsResponse": { "properties": { "monthly_cap_usd": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Monthly Cap Usd" } }, "required": [ "monthly_cap_usd" ], "title": "WorkspaceSettingsResponse", "type": "object" }, "WorkspaceSettingsUpdate": { "properties": { "monthly_cap_usd": { "anyOf": [ { "type": "number" }, { "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": { "context_window": { "title": "Context Window", "type": "integer" }, "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": "number" }, { "type": "null" } ], "default": 0.0, "title": "Input Cost Per Token" }, "is_active": { "title": "Is Active", "type": "boolean" }, "max_output_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 4096, "title": "Max Output Tokens" }, "model_name": { "title": "Model Name", "type": "string" }, "output_cost_per_token": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": 0.0, "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": { "context_window": { "title": "Context Window", "type": "integer" }, "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": "number" }, { "type": "null" } ], "default": 0.0, "title": "Input Cost Per Token" }, "is_active": { "title": "Is Active", "type": "boolean" }, "max_output_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 4096, "title": "Max Output Tokens" }, "model_name": { "title": "Model Name", "type": "string" }, "output_cost_per_token": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": 0.0, "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" }, "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\nHydra v2 only serves /.well-known/openid-configuration; we bridge the gap\nso MCP clients (Cursor) that look for /.well-known/oauth-authorization-server\nstill get the Hydra endpoints, rewritten to point to our proxy paths.", "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": "RFC 9728: point clients at our own API as the AS base URL.", "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" ] } }, "/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 v2 doesn't expose public DCR; we proxy POST /oauth2/register to\nHydra's admin endpoint so Cursor / Claude Desktop can self-register.\n\nWe inject server-side defaults:\n - skip_consent: true \u2014 MCP clients accessing their own workspace don't need consent\n - audience: [API_BASE_URL] \u2014 ensures issued JWTs have the correct audience for validation", "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/access-control/check": { "post": { "description": "Check whether a subject has a relation on an object.", "operationId": "check_permission_v1_access_control_check_post", "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/access-control/graph": { "get": { "description": "Return the full authorization graph for the current workspace.", "operationId": "get_graph_v1_access_control_graph_get", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GraphResponse" } } }, "description": "Successful Response" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Graph", "tags": [ "v1", "protected", "access-control" ] } }, "/v1/access-control/relationships": { "delete": { "description": "Delete an authorization relationship from the configured graph backend.", "operationId": "delete_relationship_v1_access_control_relationships_delete", "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 authorization relationships enriched with display names.", "operationId": "list_relationships_v1_access_control_relationships_get", "parameters": [ { "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": "Write an authorization relationship to the configured graph backend.", "operationId": "create_relationship_v1_access_control_relationships_post", "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/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 by\ntraversing workspace relationships directly so the UI can render the derivation.", "operationId": "resolve_access_v1_access_control_resolve_post", "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/access-control/sync": { "post": { "description": "Mirror existing grants into the graph backend and seed a starter collection.\n\nIdempotent: safe to call repeatedly. Steps:\n 1. Mirror workspace members into the graph.\n 2. If no collections exist, create \"All skills\" containing every workspace\n skill and grant workspace-member access to the collection.\n 3. Mirror each collection membership relationship.\n 4. Mirror each direct agent-to-skill grant.", "operationId": "sync_grants_v1_access_control_sync_post", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/agentarea_api__api__v1__access_control__SyncResponse" } } }, "description": "Successful Response" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Sync Grants", "tags": [ "v1", "protected", "access-control" ] } }, "/v1/agents": { "get": { "description": "List all workspace agents.\n\nAccess Control:\n Returns all agents within the current user's workspace (workspace isolation).\n All users in the same workspace can see all workspace agents.\n\n Note: User-level access control should be implemented via authorization\n layer (future access-control) rather than query parameters.", "operationId": "list_agents_v1_agents_get", "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AgentResponse" }, "title": "Response List Agents V1 Agents Get", "type": "array" } } }, "description": "Successful Response" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Agents", "tags": [ "v1", "protected", "agents" ] } }, "/v1/agents/": { "get": { "description": "List all workspace agents.\n\nAccess Control:\n Returns all agents within the current user's workspace (workspace isolation).\n All users in the same workspace can see all workspace agents.\n\n Note: User-level access control should be implemented via authorization\n layer (future access-control) rather than query parameters.", "operationId": "list_agents_v1_agents__get", "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AgentResponse" }, "title": "Response List Agents V1 Agents Get", "type": "array" } } }, "description": "Successful Response" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Agents", "tags": [ "v1", "protected", "agents" ] }, "post": { "description": "Create a new agent.", "operationId": "create_agent_v1_agents__post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentCreate" } } }, "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/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": "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/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" } } ], "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" } } ], "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" } } ], "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/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": [ { "HTTPBearer": [] } ], "summary": "Get Agent Well Known Index", "tags": [ "v1", "protected", "agents", "agents-well-known" ] } }, "/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": [ { "HTTPBearer": [] } ], "summary": "Get Agent A2A Info", "tags": [ "v1", "protected", "agents", "agents-well-known" ] } }, "/v1/agents/{agent_id}/.well-known/agent-card.json": { "get": { "description": "Agent-specific well-known discovery endpoint.\n\nReturns the agent card for this specific agent.\nThis endpoint can be accessed at:\n- /v1/agents/{agent_id}/.well-known/agent-card.json\n- /v1/agents/{agent_id}/.well-known/agent.json (legacy alias)\n\nThis allows each agent to have its own well-known endpoint, which is A2A compliant.\nLater, this can be proxied to subdomains:\n- agent1.domain.com/.well-known/agent.json -> /v1/agents/{id}/.well-known/agent.json", "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": { "$ref": "#/components/schemas/AgentCard" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Agent Well Known Card", "tags": [ "v1", "protected", "agents", "agents-well-known" ] } }, "/v1/agents/{agent_id}/.well-known/agent.json": { "get": { "description": "Agent-specific well-known discovery endpoint.\n\nReturns the agent card for this specific agent.\nThis endpoint can be accessed at:\n- /v1/agents/{agent_id}/.well-known/agent-card.json\n- /v1/agents/{agent_id}/.well-known/agent.json (legacy alias)\n\nThis allows each agent to have its own well-known endpoint, which is A2A compliant.\nLater, this can be proxied to subdomains:\n- agent1.domain.com/.well-known/agent.json -> /v1/agents/{id}/.well-known/agent.json", "operationId": "get_agent_well_known_card_v1_agents__agent_id___well_known_agent_json_get", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "format": "uuid", "title": "Agent Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentCard" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Agent Well Known Card", "tags": [ "v1", "protected", "agents", "agents-well-known" ] } }, "/v1/agents/{agent_id}/a2a/rpc": { "post": { "description": "Handle A2A JSON-RPC requests with comprehensive error handling and validation.", "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": "Get current agent discovery information with proper validation and error handling.", "operationId": "get_agent_well_known_v1_agents__agent_id__a2a_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": { "$ref": "#/components/schemas/AgentCard" } } }, "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/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.", "operationId": "install_agent_v1_agents__agent_id__install_post", "parameters": [ { "in": "path", "name": "agent_id", "required": true, "schema": { "title": "Agent Id", "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/agents/{agent_id}/overview": { "get": { "description": "Aggregate stats + upcoming work for one agent.", "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" } } ], "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/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": "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", "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" } } ], "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/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" } } ], "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/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" } } ], "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" } } ], "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/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" } } ], "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/agents/{agent_id}/tasks/{task_id}/artifacts": { "get": { "description": "List artifacts the agent produced under ``tasks/{task_id}/``.\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" } }, { "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/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" } } ], "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/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" } } ], "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/agents/{agent_id}/tasks/{task_id}/events": { "get": { "description": "Get paginated task execution events for the specified task from database.", "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": "Page number", "in": "query", "name": "page", "required": false, "schema": { "default": 1, "description": "Page number", "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/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" } } ], "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/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" } } ], "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/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" } } ], "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/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" } } ], "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/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" } } ], "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/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" } } ], "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/agents/{agent_id}/tasks/{task_id}/summary": { "get": { "description": "Per-task rollup derived from the event log via the ``task_summary`` view.\n\nWorkspace-scoped: the row 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" } } ], "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/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" } } ], "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" } } ], "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" } } ], "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" } } ], "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/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" } } ], "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/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" } } ], "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/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": "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, "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/api-keys/": { "get": { "description": "List all API keys for the current workspace.", "operationId": "list_api_keys_v1_api_keys__get", "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" } }, "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", "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/api-keys/{token_id}": { "delete": { "description": "Immediately revoke an API key.", "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" } } ], "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.", "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" } } ], "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/audit-logs/": { "get": { "description": "List audit events for the current workspace.", "operationId": "list_audit_logs_v1_audit_logs__get", "parameters": [ { "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/bundles/analyze": { "post": { "description": "Parse and analyze a bundle source, returning a non-destructive preview.", "operationId": "analyze_bundle_v1_bundles_analyze_post", "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/bundles/install": { "post": { "description": "Install a canonical bundle: MCP instances, skills, agents and automations.", "operationId": "install_bundle_v1_bundles_install_post", "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/files": { "get": { "operationId": "list_workspace_files_v1_files_get", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceFileListResponse" } } }, "description": "Successful Response" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Workspace Files", "tags": [ "v1", "protected", "files" ] } }, "/v1/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" } } ], "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/files/history": { "get": { "description": "Return the provenance trail for a workspace file, newest event first.", "operationId": "workspace_file_history_v1_files_history_get", "parameters": [ { "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/files/{file_path}": { "get": { "operationId": "download_workspace_file_v1_files__file_path__get", "parameters": [ { "in": "path", "name": "file_path", "required": true, "schema": { "title": "File Path", "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/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", "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/governance/task-policy-snapshots/{task_id}": { "get": { "description": "Read the effective governance policy for a task.\n\nThe effective policy is no longer persisted; it is served on demand by\nquerying the task's Temporal workflow, where it lives in workflow state.", "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" } } ], "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/inbox/": { "get": { "description": "List tasks requiring user attention.\n\nReturns tasks with actionable statuses (waiting_for_approval, completed, failed),\nordered by most recently updated first. Includes total count for badge/pagination.", "operationId": "get_inbox_items_v1_inbox__get", "parameters": [ { "description": "Filter to a specific inbox status", "in": "query", "name": "status", "required": false, "schema": { "anyOf": [ { "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, "minimum": 1, "title": "Page", "type": "integer" } }, { "in": "query", "name": "page_size", "required": false, "schema": { "default": 100, "maximum": 1000, "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/invitations/accept": { "post": { "description": "Accept an invitation as the authenticated user.\n\nIdempotent: accepting twice (or accepting when already a member)\nreturns the same membership.", "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/mcp-auth-configs/": { "get": { "description": "List all MCP auth configs in the workspace.", "operationId": "list_mcp_auth_configs_v1_mcp_auth_configs__get", "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" } }, "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", "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/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" } } ], "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" } } ], "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" } } ], "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/mcp-oauth-links/": { "post": { "description": "Store OAuth provider config for a container MCP instance.", "operationId": "create_oauth_link_v1_mcp_oauth_links__post", "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/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" } } ], "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/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" } } ], "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" } } ], "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/mcp-oauth/authorize": { "get": { "description": "Initiate MCP OAuth flow: discover AS, register client, redirect to auth page.\n\n1. Look up the MCP instance's remote URL\n2. Discover the authorization server (RFC 9728 \u2192 RFC 8414)\n3. Dynamically register as an OAuth client (RFC 7591)\n4. Generate PKCE pair and state\n5. Redirect user to the authorization endpoint", "operationId": "oauth_authorize_v1_mcp_oauth_authorize_get", "parameters": [ { "description": "MCP instance to connect", "in": "query", "name": "instance_id", "required": true, "schema": { "description": "MCP instance to connect", "format": "uuid", "title": "Instance Id", "type": "string" } }, { "description": "Frontend URL to redirect after OAuth completes", "in": "query", "name": "return_to", "required": false, "schema": { "default": "", "description": "Frontend URL to redirect after OAuth completes", "title": "Return To", "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": "Oauth Authorize", "tags": [ "v1", "protected", "mcp-oauth-connect" ] } }, "/v1/mcp-oauth/callback": { "get": { "description": "OAuth callback \u2014 exchange code for token and store in MCPAuthConfig.\n\nThis endpoint does NOT require auth (the user is mid-redirect from the\nremote AS). The state token proves the flow was initiated by our /authorize.", "operationId": "oauth_callback_v1_mcp_oauth_callback_get", "parameters": [ { "in": "query", "name": "code", "required": false, "schema": { "title": "Code", "type": "string" } }, { "in": "query", "name": "state", "required": false, "schema": { "title": "State", "type": "string" } }, { "in": "query", "name": "error", "required": false, "schema": { "title": "Error", "type": "string" } }, { "in": "query", "name": "error_description", "required": false, "schema": { "title": "Error Description", "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 Callback", "tags": [ "v1", "public", "mcp-oauth-connect" ] } }, "/v1/mcp-server-instances/": { "get": { "description": "List all MCP server instances in the workspace.", "operationId": "list_mcp_server_instances_v1_mcp_server_instances__get", "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" } }, "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", "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/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", "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": "Check Mcp Server Instance Configuration", "tags": [ "v1", "protected", "mcp-server-instances" ] } }, "/v1/mcp-server-instances/health/containers": { "get": { "description": "Get health status of all MCP containers by proxying to the Go manager.", "operationId": "get_containers_health_v1_mcp_server_instances_health_containers_get", "responses": { "200": { "content": { "application/json": { "schema": {} } }, "description": "Successful Response" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Containers Health", "tags": [ "v1", "protected", "mcp-server-instances" ] } }, "/v1/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", "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/mcp-server-instances/validate-connection": { "post": { "description": "Test a connection to an MCP server without creating an instance.", "operationId": "validate_connection_v1_mcp_server_instances_validate_connection_post", "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/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", "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/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" } } ], "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" } } ], "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" } } ], "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/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" } } ], "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/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" } } ], "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/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" } } ], "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/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" } } ], "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/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" } } ], "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/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" } } ], "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/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" } } ], "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/mcp-servers/": { "get": { "operationId": "list_mcp_servers_v1_mcp_servers__get", "parameters": [ { "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" } }, { "in": "query", "name": "page", "required": false, "schema": { "default": 1, "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", "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/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" } } ], "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" } } ], "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" } } ], "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/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" } } ], "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/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": { "format": "uuid", "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": { "format": "uuid", "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": { "format": "uuid", "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/model-instances/": { "get": { "description": "List model instances.", "operationId": "list_model_instances_v1_model_instances__get", "parameters": [ { "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" } } ], "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", "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/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", "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/model-instances/test": { "post": { "description": "Test a model instance configuration before creating it.", "operationId": "validate_model_instance_v1_model_instances_test_post", "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/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" } } ], "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" } } ], "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/model-specs/": { "get": { "description": "List model specifications with optional filtering.", "operationId": "list_model_specs_v1_model_specs__get", "parameters": [ { "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/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", "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/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" } }, { "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/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" } } ], "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/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", "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/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" } } ], "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" } } ], "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" } } ], "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/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", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NetworkTopologyResponse" } } }, "description": "Successful Response" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Network Topology", "tags": [ "v1", "protected", "network" ] } }, "/v1/openapi-connections/": { "get": { "operationId": "list_connections_v1_openapi_connections__get", "parameters": [ { "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, "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", "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/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", "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/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" } } ], "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" } } ], "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" } } ], "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/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" } } ], "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/policies": { "get": { "description": "List policy rules in the current workspace.", "operationId": "list_policy_rules_v1_policies_get", "parameters": [ { "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", "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/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" } } ], "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" } } ], "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" } } ], "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/projects/": { "get": { "description": "List all projects in the current workspace.", "operationId": "list_projects_v1_projects__get", "parameters": [ { "in": "query", "name": "limit", "required": false, "schema": { "default": 100, "title": "Limit", "type": "integer" } }, { "in": "query", "name": "offset", "required": false, "schema": { "default": 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", "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/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" } } ], "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" } } ], "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" } } ], "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/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" } } ], "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/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" } } ], "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/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" } } ], "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" ] }, "post": { "description": "Upload a file to a project's workspace-scoped artifact prefix.", "operationId": "upload_project_file_v1_projects__project_id__files_post", "parameters": [ { "in": "path", "name": "project_id", "required": true, "schema": { "format": "uuid", "title": "Project Id", "type": "string" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_upload_project_file_v1_projects__project_id__files_post" } } }, "required": true }, "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Upload Project File", "tags": [ "v1", "protected", "projects" ] } }, "/v1/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" } } ], "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/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" } } ], "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" } } ], "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/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" } } ], "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/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" } } ], "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/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" } } ], "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/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" } } ], "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/provider-configs/": { "get": { "description": "List provider configurations.", "operationId": "list_provider_configs_v1_provider_configs__get", "parameters": [ { "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", "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/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" } } ], "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/provider-configs/discover-preview": { "post": { "description": "Discover models from a provider API using the provided API key, without requiring a saved config.", "operationId": "discover_models_preview_v1_provider_configs_discover_preview_post", "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/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": [ { "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/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" } } ], "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" } } ], "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" } } ], "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" } } ], "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/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" } } ], "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/provider-specs/": { "get": { "description": "List all provider specifications.", "operationId": "list_provider_specs_v1_provider_specs__get", "parameters": [ { "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/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" } } ], "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/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": [ { "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/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" } } ], "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/registries/": { "get": { "operationId": "list_registries_v1_registries__get", "parameters": [ { "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" } } ], "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", "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/registries/catalog/items/{item_id}": { "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" } } ], "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" ] } }, "/v1/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" } } ], "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/registries/catalog/search": { "get": { "description": "Search across all registry catalogs in the workspace.", "operationId": "search_catalog_v1_registries_catalog_search_get", "parameters": [ { "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, "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/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" } } ], "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" } } ], "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" } } ], "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/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" } }, { "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, "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" ] } }, "/v1/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" } } ], "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/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" } } ], "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/skill-collections/": { "get": { "description": "List collections in the current workspace with skill counts.", "operationId": "list_collections_v1_skill_collections__get", "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/CollectionSummaryResponse" }, "title": "Response List Collections V1 Skill Collections Get", "type": "array" } } }, "description": "Successful Response" } }, "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", "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/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" } } ], "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" } } ], "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" } } ], "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/skill-collections/{collection_id}/skills": { "post": { "description": "Add a skill to a collection and mirror the membership into the 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" } } ], "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/skill-collections/{collection_id}/skills/{skill_id}": { "delete": { "description": "Remove a skill from a collection and delete the graph membership.", "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" } } ], "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/skills": { "get": { "description": "List skills in the workspace.", "operationId": "list_skills_v1_skills_get", "parameters": [ { "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" } }, { "in": "query", "name": "page", "required": false, "schema": { "default": 1, "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", "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/skills/upload": { "post": { "description": "Upload a skill package as a ZIP file.", "operationId": "upload_skill_v1_skills_upload_post", "parameters": [ { "in": "query", "name": "name", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" } }, { "in": "query", "name": "description", "required": false, "schema": { "anyOf": [ { "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/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" } } ], "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" } } ], "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" } } ], "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/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" } } ], "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/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" } }, { "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/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" } }, { "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/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" } } ], "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/skills/{skill_id}/install": { "post": { "description": "Add a built-in catalog skill to the workspace.", "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" } } ], "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/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" } } ], "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" } } ], "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/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" } } ], "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/tasks/": { "get": { "description": "Get all workspace tasks across all agents.\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": "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", "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/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" } } ], "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/tool-access/checks": { "post": { "description": "Check whether a user can call a tool.\n\nOmitting ``arguments`` checks a whole-tool grant. Passing ``arguments``\nchecks the concrete invocation path used by runtime tool execution.", "operationId": "check_tool_access_v1_tool_access_checks_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToolAccessCheckRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToolAccessCheckResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Check Tool Access", "tags": [ "v1", "protected", "tool-access" ] } }, "/v1/tool-access/grants": { "delete": { "description": "Revoke a whole-tool or exact-arguments grant.", "operationId": "revoke_tool_access_v1_tool_access_grants_delete", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToolAccessGrantRequest" } } }, "required": true }, "responses": { "204": { "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Revoke Tool Access", "tags": [ "v1", "protected", "tool-access" ] }, "get": { "description": "List tool access grants in the configured graph backend.", "operationId": "list_tool_access_grants_v1_tool_access_grants_get", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToolAccessGrantListResponse" } } }, "description": "Successful Response" } }, "security": [ { "HTTPBearer": [] } ], "summary": "List Tool Access Grants", "tags": [ "v1", "protected", "tool-access" ] }, "post": { "description": "Grant a user access to a whole tool, or to an exact argument set.", "operationId": "grant_tool_access_v1_tool_access_grants_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToolAccessGrantRequest" } } }, "required": true }, "responses": { "201": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToolAccessGrantResponse" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Grant Tool Access", "tags": [ "v1", "protected", "tool-access" ] } }, "/v1/triggers/": { "get": { "description": "List triggers with optional filtering.\n\nReturns a list of triggers that match the specified criteria. Supports\nfiltering by agent ID, trigger type, and active status.\n\nAccess Control:\n Returns all triggers within the current user's workspace (workspace isolation).\n All users in the same workspace can see all workspace triggers.\n\nArgs:\n agent_id: Optional agent ID filter\n trigger_type: Optional trigger type filter\n active_only: Whether to only return active triggers\n limit: Maximum number of triggers to return\n user_context: Authentication context\n trigger_service: Injected trigger service\n\nReturns:\n List of triggers matching the criteria", "operationId": "list_triggers_v1_triggers__get", "parameters": [ { "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, webhook)", "in": "query", "name": "trigger_type", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by trigger type (cron, webhook)", "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 new trigger.\n\nCreates a new trigger with the specified configuration. The trigger will be\nvalidated and, if it's a cron trigger, automatically scheduled.\n\nIf channel_credentials are provided, they are stored encrypted in the secret\nstore under key ``channel_cred:{webhook_type}:{trigger_id}``.\n\nArgs:\n payload: Trigger creation DTO (single source of truth shared with MCP toolset).\n user_context: Authentication context.\n trigger_service: Injected trigger service.\n secret_manager: Injected secret manager for credential storage.\n\nReturns:\n The created trigger.\n\nRaises:\n HTTPException: If validation fails or creation errors occur.", "operationId": "create_trigger_v1_triggers__post", "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/triggers/catalog": { "get": { "description": "Get the trigger catalog \u2014 available trigger types with metadata and events.", "operationId": "get_catalog_v1_triggers_catalog_get", "responses": { "200": { "content": { "application/json": { "schema": { "items": { "additionalProperties": true, "type": "object" }, "title": "Response Get Catalog V1 Triggers Catalog Get", "type": "array" } } }, "description": "Successful Response" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Catalog", "tags": [ "v1", "protected", "triggers" ] } }, "/v1/triggers/channels/events": { "get": { "description": "Get supported event types for all channels.\nReturns a mapping of channel type to list of event types.", "operationId": "get_channel_events_v1_triggers_channels_events_get", "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "title": "Response Get Channel Events V1 Triggers Channels Events Get", "type": "object" } } }, "description": "Successful Response" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Channel Events", "tags": [ "v1", "protected", "triggers" ] } }, "/v1/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 manager\n- Execution metrics\n\nReturns:\n Dictionary with detailed health status information", "operationId": "triggers_health_check_v1_triggers_health_get", "responses": { "200": { "content": { "application/json": { "schema": { "additionalProperties": true, "title": "Response Triggers Health Check V1 Triggers Health Get", "type": "object" } } }, "description": "Successful Response" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Triggers Health Check", "tags": [ "v1", "protected", "triggers" ] } }, "/v1/triggers/{trigger_id}": { "delete": { "description": "Delete a trigger.\n\nPermanently deletes the specified trigger and all its execution history.\nIf it's a cron trigger, the schedule will also be removed.\n\nArgs:\n trigger_id: The unique identifier of the trigger\n user_context: Authentication context\n trigger_service: Injected trigger service\n\nRaises:\n HTTPException: If trigger not found", "operationId": "delete_trigger_v1_triggers__trigger_id__delete", "parameters": [ { "in": "path", "name": "trigger_id", "required": true, "schema": { "format": "uuid", "title": "Trigger Id", "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.\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 The trigger data\n\nRaises:\n HTTPException: If trigger not found", "operationId": "get_trigger_v1_triggers__trigger_id__get", "parameters": [ { "in": "path", "name": "trigger_id", "required": true, "schema": { "format": "uuid", "title": "Trigger Id", "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.\n\nUpdates the specified trigger with the provided data. Only non-null fields\nin the request will be updated. If channel_credentials are provided,\nthey replace the existing credentials in the secret store.\n\nArgs:\n trigger_id: The unique identifier of the trigger.\n payload: Trigger update DTO (single source of truth shared with MCP toolset).\n user_context: Authentication context.\n trigger_service: Injected trigger service.\n secret_manager: Injected secret manager for credential storage.\n\nReturns:\n The updated trigger.\n\nRaises:\n HTTPException: If trigger not found or validation fails.", "operationId": "update_trigger_v1_triggers__trigger_id__put", "parameters": [ { "in": "path", "name": "trigger_id", "required": true, "schema": { "format": "uuid", "title": "Trigger Id", "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/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": "Page number", "in": "query", "name": "page", "required": false, "schema": { "default": 1, "description": "Page number", "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/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" } } ], "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/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" } } ], "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/triggers/{trigger_id}/execute": { "post": { "description": "Execute a trigger with the provided event data.\n\nCalled by the Go event service when a polling channel receives new messages.\nBuilds trigger data from the events and channel origin, then creates and\nsubmits a task for agent execution.\n\nArgs:\n trigger_id: The unique identifier of the trigger\n request: Events and channel origin data\n http_request: Raw request, used to verify the internal service token\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" } } ], "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", "public", "triggers" ] } }, "/v1/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)\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\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": "Page number", "in": "query", "name": "page", "required": false, "schema": { "default": 1, "description": "Page number", "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)", "in": "query", "name": "status", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by execution status (success, failed, timeout)", "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/triggers/{trigger_id}/metrics": { "get": { "description": "Get execution metrics for a trigger.\n\nReturns aggregated metrics including success rate, average execution time,\nand failure counts for the specified time period.\n\nArgs:\n trigger_id: The unique identifier of the trigger\n hours: Time period in hours to analyze (default 24, max 168)\n user_context: Authentication context\n trigger_service: Injected trigger service\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": "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" } } ], "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/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" } } ], "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/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": "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/workspace/dashboard": { "get": { "description": "Aggregate workspace state for the operator dashboard.", "operationId": "get_dashboard_v1_workspace_dashboard_get", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DashboardResponse" } } }, "description": "Successful Response" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Get Dashboard", "tags": [ "v1", "protected", "dashboard" ] } }, "/v1/workspace/export": { "get": { "description": "Export current workspace configuration as YAML.\n\nThis endpoint exports all workspace-scoped resources:\n- Agents (excluding system default agent)\n- MCP server instances\n- Provider configurations\n\n**Important Notes:**\n- Secrets (API keys, passwords) are replaced with placeholders\n- Built-in/catalog resources (carrying registry_item_id) are excluded\n- Only resources in the current workspace are exported\n- References to specs are included (server_spec_id, provider_spec_id)\n\n**Returns:**\nYAML file content that can be saved and later imported", "operationId": "export_workspace_config_v1_workspace_export_get", "responses": { "200": { "content": { "text/plain": { "schema": { "type": "string" } } }, "description": "Successful Response" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Export Workspace Config", "tags": [ "v1", "protected", "workspace-config" ] } }, "/v1/workspace/import": { "post": { "description": "Import workspace configuration from YAML.\n\nThis endpoint creates agents, MCP instances, and provider configs\nin the current workspace based on the provided YAML configuration.\n\n**Important Notes:**\n- All resources are created in the current workspace\n- Secrets (API keys, passwords) must be provided as they cannot be exported\n- References to MCP servers and provider specs must exist in the system\n- Import is atomic - if any resource fails, all changes are rolled back\n\n**Example YAML:**\n```yaml\nagents:\n - name: \"My Assistant\"\n description: \"Helpful assistant\"\n instruction: \"You are a helpful AI assistant\"\n tools:\n - type: code\n name: agentarea/math\n - type: mcp\n name: my-filesystem\n settings:\n allowed_tools: [read_file, write_file]\n planning: false\n\nmcp_instances:\n - name: \"My Filesystem\"\n description: \"Local file access\"\n server_spec_id: \"a1b2c3d4-...\"\n env_vars:\n FILESYSTEM_ROOT: \"/workspace\"\n\nprovider_configs:\n - name: \"My OpenAI\"\n provider_spec_id: \"932f3839-...\"\n api_key_placeholder: \"sk-...\"\n```", "operationId": "import_workspace_config_v1_workspace_import_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImportRequest" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImportResult" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Import Workspace Config", "tags": [ "v1", "protected", "workspace-config" ] } }, "/v1/workspace/import/file": { "post": { "description": "Import workspace configuration from uploaded YAML file.\n\nSame as /import but accepts a file upload instead of raw YAML content.", "operationId": "import_workspace_config_file_v1_workspace_import_file_post", "parameters": [ { "description": "Skip resources with missing dependencies", "in": "query", "name": "skip_missing_dependencies", "required": false, "schema": { "default": false, "description": "Skip resources with missing dependencies", "title": "Skip Missing Dependencies", "type": "boolean" } }, { "description": "Override existing resources with same name", "in": "query", "name": "override_existing", "required": false, "schema": { "default": false, "description": "Override existing resources with same name", "title": "Override Existing", "type": "boolean" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_import_workspace_config_file_v1_workspace_import_file_post" } } }, "required": true }, "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ImportResult" } } }, "description": "Successful Response" }, "422": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } }, "description": "Validation Error" } }, "security": [ { "HTTPBearer": [] } ], "summary": "Import Workspace Config File", "tags": [ "v1", "protected", "workspace-config" ] } }, "/v1/workspace/settings": { "get": { "description": "Read the current workspace's settings (cap, etc).", "operationId": "get_workspace_settings_v1_workspace_settings_get", "responses": { "200": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceSettingsResponse" } } }, "description": "Successful Response" } }, "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_workspace_settings_put", "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": { "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" ] } }, "/v1/workspaces/{workspace_id}/invitations": { "get": { "description": "List pending invitations for the workspace. Tokens are NOT returned.", "operationId": "list_invitations_v1_workspaces__workspace_id__invitations_get", "parameters": [ { "in": "path", "name": "workspace_id", "required": true, "schema": { "title": "Workspace Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/InvitationResponse" }, "title": "Response List Invitations V1 Workspaces Workspace Id 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_workspaces__workspace_id__invitations_post", "parameters": [ { "in": "path", "name": "workspace_id", "required": true, "schema": { "title": "Workspace Id", "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_id}/invitations/{invitation_id}": { "delete": { "description": "Revoke a pending invitation. Idempotent \u2014 already-resolved invitations are no-ops.", "operationId": "revoke_invitation_v1_workspaces__workspace_id__invitations__invitation_id__delete", "parameters": [ { "in": "path", "name": "workspace_id", "required": true, "schema": { "title": "Workspace Id", "type": "string" } }, { "in": "path", "name": "invitation_id", "required": true, "schema": { "format": "uuid", "title": "Invitation Id", "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_id}/members": { "get": { "operationId": "list_members_v1_workspaces__workspace_id__members_get", "parameters": [ { "in": "path", "name": "workspace_id", "required": true, "schema": { "title": "Workspace Id", "type": "string" } } ], "responses": { "200": { "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/MemberResponse" }, "title": "Response List Members V1 Workspaces Workspace Id 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_id}/members/{user_id}": { "delete": { "description": "Remove a member from the workspace. Self-removal allowed; removing\nothers requires the caller to be a member of the workspace (owner-only\ncheck belongs to the permissions PR).", "operationId": "remove_member_v1_workspaces__workspace_id__members__user_id__delete", "parameters": [ { "in": "path", "name": "workspace_id", "required": true, "schema": { "title": "Workspace Id", "type": "string" } }, { "in": "path", "name": "user_id", "required": true, "schema": { "title": "User Id", "type": "string" } } ], "responses": { "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" ] } }, "/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}": { "delete": { "description": "Process incoming webhook requests for registered triggers", "operationId": "handle_webhook_webhooks__webhook_id__delete", "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" ] }, "get": { "description": "Process incoming webhook requests for registered triggers", "operationId": "handle_webhook_webhooks__webhook_id__get", "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" ] }, "head": { "description": "Process incoming webhook requests for registered triggers", "operationId": "handle_webhook_webhooks__webhook_id__head", "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" ] }, "options": { "description": "Process incoming webhook requests for registered triggers", "operationId": "handle_webhook_webhooks__webhook_id__options", "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" ] }, "patch": { "description": "Process incoming webhook requests for registered triggers", "operationId": "handle_webhook_webhooks__webhook_id__patch", "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" ] }, "post": { "description": "Process incoming webhook requests for registered triggers", "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" ] }, "put": { "description": "Process incoming webhook requests for registered triggers", "operationId": "handle_webhook_webhooks__webhook_id__put", "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": [] } ] }