{"openapi":"3.1.0","info":{"title":"Weavr","description":"Powdr proprietary framework for agentic workflows and processes","version":"0.1.0"},"paths":{"/health":{"get":{"tags":["Health"],"summary":"Health Check","description":"Basic health check endpoint","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/health/detailed":{"get":{"tags":["Health"],"summary":"Detailed Health Check","description":"Detailed health check with system information","operationId":"detailed_health_check_health_detailed_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetailedHealthResponse"}}}}}}},"/ready":{"get":{"tags":["Health"],"summary":"Readiness Check","description":"Kubernetes-style readiness probe","operationId":"readiness_check_ready_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/live":{"get":{"tags":["Health"],"summary":"Liveness Check","description":"Kubernetes-style liveness probe","operationId":"liveness_check_live_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/setup/":{"get":{"tags":["Setup"],"summary":"Setup Page","description":"Serve the setup wizard HTML page","operationId":"setup_page_setup__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/setup/status":{"get":{"tags":["Setup"],"summary":"Get Setup Status","description":"Get current setup status","operationId":"get_setup_status_setup_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetupStatus"}}}}}}},"/setup/test-provider":{"post":{"tags":["Setup"],"summary":"Test Provider","description":"Test an AI provider connection","operationId":"test_provider_setup_test_provider_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestProviderRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/setup/complete":{"post":{"tags":["Setup"],"summary":"Complete Setup","description":"Complete the setup process. Provider API keys are persisted to the data\nvolume (config.json), applied to runtime settings immediately, and LLM\nclients are reinitialized — no container restart needed for keys.","operationId":"complete_setup_setup_complete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteSetupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/setup/config":{"get":{"tags":["Setup"],"summary":"Get Current Config","description":"Get current configuration (for editing). Provider details are only\nexposed where keys are editable - Powdr-managed instances must not learn\nwhich platform keys exist.","operationId":"get_current_config_setup_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/setup/display-settings":{"get":{"tags":["Setup"],"summary":"Get Display Settings","description":"Display preferences every page may read (no secrets here): the\ntenant company's timezone, used to render all UI timestamps.","operationId":"get_display_settings_setup_display_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/setup/reset":{"post":{"tags":["Setup"],"summary":"Reset Setup","description":"Reset setup (for reconfiguration)","operationId":"reset_setup_setup_reset_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/setup/generate-secret":{"get":{"tags":["Setup"],"summary":"Generate Secret","description":"Generate a secure secret key","operationId":"generate_secret_setup_generate_secret_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/agents/":{"get":{"tags":["Agents"],"summary":"List Agents","description":"List the CALLER'S organization's agents. Signed-out callers get 401,\nother organizations' agents are invisible - the store is multi-org and\nan unscoped listing is how one tenant saw another's agents.","operationId":"list_agents_api_v1_agents__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentResponse"},"type":"array","title":"Response List Agents Api V1 Agents  Get"}}}}}},"post":{"tags":["Agents"],"summary":"Create Agent","description":"Create a new agent","operationId":"create_agent_api_v1_agents__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agents/templates/":{"get":{"tags":["Agents"],"summary":"List Agent Templates","description":"List available agent templates.","operationId":"list_agent_templates_api_v1_agents_templates__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentConfig-Output"},"type":"array","title":"Response List Agent Templates Api V1 Agents Templates  Get"}}}}}}},"/api/v1/agents/generate":{"post":{"tags":["Agents"],"summary":"Generate Agent","description":"Build an agent config from a plain-English description using the\nplatform's connected LLMs. Returns a validated AgentConfig (plus a short\nrationale and an optional schedule suggestion) for the user to review in\nthe editor before saving - it does NOT create the agent.","operationId":"generate_agent_api_v1_agents_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentGenerateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agents/{agent_id}/edit-history":{"get":{"tags":["Agents"],"summary":"Get Agent Edit History","description":"The agent's AI-edit conversation: every plain-English request made\nagainst it and what the builder produced - the story of its evolution.","operationId":"get_agent_edit_history_api_v1_agents__agent_id__edit_history_get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agents/workflows/":{"get":{"tags":["Agents"],"summary":"List Workflows","description":"List the caller's organization's workflows.","operationId":"list_workflows_api_v1_agents_workflows__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkflowResponse"},"type":"array","title":"Response List Workflows Api V1 Agents Workflows  Get"}}}}}},"post":{"tags":["Agents"],"summary":"Create Workflow","description":"Create a workflow that chains agents via handoffs.","operationId":"create_workflow_api_v1_agents_workflows__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowCreateRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agents/workflows/{workflow_id}":{"get":{"tags":["Agents"],"summary":"Get Workflow","description":"Get a single workflow by ID (own org only).","operationId":"get_workflow_api_v1_agents_workflows__workflow_id__get","parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Agents"],"summary":"Update Workflow","description":"Update a saved workflow (own org only).","operationId":"update_workflow_api_v1_agents_workflows__workflow_id__put","parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Agents"],"summary":"Delete Workflow","description":"Delete a saved workflow (own org only).","operationId":"delete_workflow_api_v1_agents_workflows__workflow_id__delete","parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agents/workflows/{workflow_id}/run":{"post":{"tags":["Agents"],"summary":"Run Workflow","description":"Start a workflow run.\n\nRuns execute in the BACKGROUND by default: this returns as soon as the run\nis queued, so the user can navigate away and come back to the queue to see\nit running, finished, or failed. Pass ?wait=true for the old synchronous\nbehavior (the response then carries the full results).","operationId":"run_workflow_api_v1_agents_workflows__workflow_id__run_post","parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}},{"name":"wait","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Wait"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agents/workflows/{workflow_id}/trigger":{"post":{"tags":["Agents"],"summary":"Trigger Workflow","description":"Fire a saved workflow from ANY external system - Asana, Odoo, Zapier,\na mail rule, an ERP, anything that can send a webhook. This is the URL\nthe Workflow canvas advertises under \"How this flow starts\".\n\nAuth mirrors intake: when WEAVR_INTAKE_API_KEY is set, the caller must\nsend it (Authorization: Bearer <key> or X-Api-Key). The run executes in\nthe background; the response carries the run id and a status URL.","operationId":"trigger_workflow_api_v1_agents_workflows__workflow_id__trigger_post","parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowTriggerRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agents/workflows/runs/":{"get":{"tags":["Agents"],"summary":"List Workflow Runs","description":"The run queue and history: everything triggered in the last 90 days,\nnewest first. Full results are kept for 30 days (see run detail).","operationId":"list_workflow_runs_api_v1_agents_workflows_runs__get","parameters":[{"name":"workflow_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agents/workflows/runs/{run_id}":{"get":{"tags":["Agents"],"summary":"Get Workflow Run","description":"One run with its full results, while they are still retained.","operationId":"get_workflow_run_api_v1_agents_workflows_runs__run_id__get","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agents/{agent_id}/stop":{"post":{"tags":["Agents"],"summary":"Stop Agent","description":"Stop a running agent (IT Support polling, Email Assistant daily loop,\nor any agent marked running).","operationId":"stop_agent_api_v1_agents__agent_id__stop_post","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agents/{agent_id}":{"get":{"tags":["Agents"],"summary":"Get Agent","description":"Get agent by ID","operationId":"get_agent_api_v1_agents__agent_id__get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Agents"],"summary":"Update Agent","description":"Update an existing agent","operationId":"update_agent_api_v1_agents__agent_id__put","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Agents"],"summary":"Delete Agent","description":"Delete an agent","operationId":"delete_agent_api_v1_agents__agent_id__delete","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agents/{agent_id}/versions":{"get":{"tags":["Agents"],"summary":"List Agent Versions","description":"List all versions of an agent for rollback","operationId":"list_agent_versions_api_v1_agents__agent_id__versions_get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AgentVersionResponse"},"title":"Response List Agent Versions Api V1 Agents  Agent Id  Versions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agents/{agent_id}/versions/current":{"get":{"tags":["Agents"],"summary":"Get Current Version","description":"Get the current version number of an agent","operationId":"get_current_version_api_v1_agents__agent_id__versions_current_get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agents/{agent_id}/rollback/{version}":{"post":{"tags":["Agents"],"summary":"Rollback Agent","description":"Rollback an agent to a specific version (own org only)","operationId":"rollback_agent_api_v1_agents__agent_id__rollback__version__post","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer","title":"Version"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/AgentRollbackRequest"},{"type":"null"}],"title":"Rollback Request"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agents/{agent_id}/chat":{"post":{"tags":["Agents"],"summary":"Chat With Agent","description":"Send a chat message to an agent","operationId":"chat_with_agent_api_v1_agents__agent_id__chat_post","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentChatRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentChatResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agents/{agent_id}/task":{"post":{"tags":["Agents"],"summary":"Assign Task To Agent","description":"Assign a task to an agent for async execution","operationId":"assign_task_to_agent_api_v1_agents__agent_id__task_post","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentTaskRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentTaskResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/models/":{"get":{"tags":["Models"],"summary":"List Models","description":"List all available models with availability status","operationId":"list_models_api_v1_models__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelListResponse"}}}}}}},"/api/v1/models/providers":{"get":{"tags":["Models"],"summary":"List Providers","description":"List available model providers","operationId":"list_providers_api_v1_models_providers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/models/provider/{provider_id}":{"get":{"tags":["Models"],"summary":"List Provider Models","description":"List models for a specific provider","operationId":"list_provider_models_api_v1_models_provider__provider_id__get","parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","title":"Provider Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ModelInfo"},"title":"Response List Provider Models Api V1 Models Provider  Provider Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/models/{model_id}":{"get":{"tags":["Models"],"summary":"Get Model","description":"Get model information by ID","operationId":"get_model_api_v1_models__model_id__get","parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"string","title":"Model Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelInfo"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/models/{model_id}/test":{"post":{"tags":["Models"],"summary":"Test Model","description":"Test a model with a sample prompt","operationId":"test_model_api_v1_models__model_id__test_post","parameters":[{"name":"model_id","in":"path","required":true,"schema":{"type":"string","title":"Model Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelTestRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModelTestResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/files/exports/{name}":{"get":{"tags":["Files"],"summary":"Download Export","operationId":"download_export_api_v1_files_exports__name__get","parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}},{"name":"expires","in":"query","required":true,"schema":{"type":"integer","title":"Expires"}},{"name":"sig","in":"query","required":true,"schema":{"type":"string","title":"Sig"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tasks/":{"get":{"tags":["Tasks"],"summary":"List Tasks","description":"List tasks with optional filtering","operationId":"list_tasks_api_v1_tasks__get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"task_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task Type"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Tasks"],"summary":"Create Task","description":"Create a new task and optionally run it","operationId":"create_task_api_v1_tasks__post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tasks/{task_id}":{"get":{"tags":["Tasks"],"summary":"Get Task","description":"Get task by ID","operationId":"get_task_api_v1_tasks__task_id__get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Tasks"],"summary":"Delete Task","description":"Delete a task","operationId":"delete_task_api_v1_tasks__task_id__delete","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tasks/{task_id}/cancel":{"post":{"tags":["Tasks"],"summary":"Cancel Task","description":"Cancel a running or pending task","operationId":"cancel_task_api_v1_tasks__task_id__cancel_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tasks/{task_id}/retry":{"post":{"tags":["Tasks"],"summary":"Retry Task","description":"Retry a failed task","operationId":"retry_task_api_v1_tasks__task_id__retry_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tasks/{task_id}/logs":{"get":{"tags":["Tasks"],"summary":"Get Task Logs","description":"Get logs for a task","operationId":"get_task_logs_api_v1_tasks__task_id__logs_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TaskLogEntry"},"title":"Response Get Task Logs Api V1 Tasks  Task Id  Logs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tasks/{task_id}/run":{"post":{"tags":["Tasks"],"summary":"Run Task","description":"Execute a task using the AI IT Support Agent","operationId":"run_task_api_v1_tasks__task_id__run_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tasks/activity/":{"get":{"tags":["Tasks"],"summary":"Get Activity Log","description":"Get recent activity from all agents (or filter by agent)","operationId":"get_activity_log_api_v1_tasks_activity__get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"level","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Level"}},{"name":"action","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tasks/runs/":{"get":{"tags":["Tasks"],"summary":"Get Run History","description":"Unified run history: workflow runs and agent runs in one timeline.\n\nThese live in two different stores and were surfaced on two different\npages - workflow runs on the Workflow canvas, agent runs on the Monitor -\nso there was nowhere to answer \"what has run recently?\" without knowing\nwhich kind of thing you were looking for first. They are normalized onto a\ncommon shape here and tagged with `kind`, which is what lets one list be\nsegmented rather than two lists be compared by eye.\n\nOrg-scoped both ways: workflow runs by the workflow's org, agent runs by\nthe set of agent ids this caller can see.","operationId":"get_run_history_api_v1_tasks_runs__get","parameters":[{"name":"kind","in":"query","required":false,"schema":{"type":"string","pattern":"^(all|workflow|agent)$","default":"all","title":"Kind"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tasks/monitoring/workflows":{"get":{"tags":["Tasks"],"summary":"Get Workflow Monitoring","description":"Per-workflow health, in the same shape as the per-agent view.\n\nThe Monitor could already show a workflow's individual runs in the\ntimeline, but not the thing you actually scan a monitor for: which\nworkflows exist, which are failing, and when each last did anything. Agents\nhad that and workflows did not, so half the automation on the platform was\nonly reviewable one run at a time.\n\nAggregated from the run store rather than the activity feed, because a\nworkflow's unit of work is a run - its member agents already report their\nown actions separately, and counting both would double-count the same work.","operationId":"get_workflow_monitoring_api_v1_tasks_monitoring_workflows_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/tasks/monitoring/":{"get":{"tags":["Tasks"],"summary":"Get All Agents Monitoring","description":"Get complete monitoring data for ALL agents","operationId":"get_all_agents_monitoring_api_v1_tasks_monitoring__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/tasks/monitoring/{agent_id}":{"get":{"tags":["Tasks"],"summary":"Get Single Agent Monitoring","description":"Get monitoring data for a specific agent","operationId":"get_single_agent_monitoring_api_v1_tasks_monitoring__agent_id__get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tasks/stats/":{"get":{"tags":["Tasks"],"summary":"Get All Agent Stats","description":"Get statistics for all agents","operationId":"get_all_agent_stats_api_v1_tasks_stats__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/tasks/stats/{agent_id}":{"get":{"tags":["Tasks"],"summary":"Get Single Agent Stats","description":"Get statistics for a specific agent","operationId":"get_single_agent_stats_api_v1_tasks_stats__agent_id__get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tasks/requests/active":{"get":{"tags":["Tasks"],"summary":"Get Active Llm Requests","description":"Get all active LLM requests, optionally filtered by agent","operationId":"get_active_llm_requests_api_v1_tasks_requests_active_get","parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tasks/requests/completed":{"get":{"tags":["Tasks"],"summary":"Get Completed Llm Requests","description":"Get recent completed LLM requests","operationId":"get_completed_llm_requests_api_v1_tasks_requests_completed_get","parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tasks/requests/agent/{agent_id}":{"get":{"tags":["Tasks"],"summary":"Get Agent Request Stats","description":"Get LLM request statistics for a specific agent","operationId":"get_agent_request_stats_api_v1_tasks_requests_agent__agent_id__get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tasks/llm/health":{"get":{"tags":["Tasks"],"summary":"Get Llm Health","description":"Get health status for all LLM providers","operationId":"get_llm_health_api_v1_tasks_llm_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/tasks/llm/health/{provider}":{"get":{"tags":["Tasks"],"summary":"Get Provider Health","description":"Get health status for a specific LLM provider","operationId":"get_provider_health_api_v1_tasks_llm_health__provider__get","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tasks/llm/health/check":{"post":{"tags":["Tasks"],"summary":"Trigger Health Check","description":"Manually trigger an LLM health check for all providers","operationId":"trigger_health_check_api_v1_tasks_llm_health_check_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/tasks/stats/reset/":{"post":{"tags":["Tasks"],"summary":"Reset All Agent Stats","description":"Reset statistics for all agents","operationId":"reset_all_agent_stats_api_v1_tasks_stats_reset__post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/tasks/stats/{agent_id}/reset/":{"post":{"tags":["Tasks"],"summary":"Reset Single Agent Stats","description":"Reset statistics for a specific agent","operationId":"reset_single_agent_stats_api_v1_tasks_stats__agent_id__reset__post","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tasks/summary/":{"get":{"tags":["Tasks"],"summary":"Get Activity Summary","description":"Generate an activity summary for reporting","operationId":"get_activity_summary_api_v1_tasks_summary__get","parameters":[{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":168,"minimum":1,"default":24,"title":"Hours"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tasks/retention/":{"get":{"tags":["Tasks"],"summary":"Get Monitor Retention","description":"Get retention and archive state for the agent monitor.","operationId":"get_monitor_retention_api_v1_tasks_retention__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/tasks/types/":{"get":{"tags":["Tasks"],"summary":"List Task Types","description":"List available task types including IT Support tasks","operationId":"list_task_types_api_v1_tasks_types__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response List Task Types Api V1 Tasks Types  Get"}}}}}}},"/api/v1/workspaces/":{"get":{"tags":["Workspaces"],"summary":"List Workspaces","description":"List all registered workspaces","operationId":"list_workspaces_api_v1_workspaces__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/WorkspaceResponse"},"type":"array","title":"Response List Workspaces Api V1 Workspaces  Get"}}}}}},"post":{"tags":["Workspaces"],"summary":"Create Workspace","description":"Register a new workspace","operationId":"create_workspace_api_v1_workspaces__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/workspaces/{workspace_id}":{"get":{"tags":["Workspaces"],"summary":"Get Workspace","description":"Get workspace by ID","operationId":"get_workspace_api_v1_workspaces__workspace_id__get","parameters":[{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string","title":"Workspace Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Workspaces"],"summary":"Delete Workspace","description":"Unregister a workspace (doesn't delete files)","operationId":"delete_workspace_api_v1_workspaces__workspace_id__delete","parameters":[{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string","title":"Workspace Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/workspaces/{workspace_id}/files":{"get":{"tags":["Workspaces"],"summary":"List Workspace Files","description":"List files in a workspace","operationId":"list_workspace_files_api_v1_workspaces__workspace_id__files_get","parameters":[{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string","title":"Workspace Id"}},{"name":"path","in":"query","required":false,"schema":{"type":"string","default":"","title":"Path"}},{"name":"recursive","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Recursive"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FileInfo"},"title":"Response List Workspace Files Api V1 Workspaces  Workspace Id  Files Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/workspaces/{workspace_id}/analyze":{"post":{"tags":["Workspaces"],"summary":"Analyze Workspace","description":"Analyze a workspace","operationId":"analyze_workspace_api_v1_workspaces__workspace_id__analyze_post","parameters":[{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string","title":"Workspace Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceAnalysis"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/workspaces/{workspace_id}/file":{"get":{"tags":["Workspaces"],"summary":"Get File Content","description":"Get content of a specific file","operationId":"get_file_content_api_v1_workspaces__workspace_id__file_get","parameters":[{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string","title":"Workspace Id"}},{"name":"path","in":"query","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get File Content Api V1 Workspaces  Workspace Id  File Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/workspaces/{workspace_id}/sync":{"post":{"tags":["Workspaces"],"summary":"Sync Workspace","description":"Sync/refresh workspace (re-analyze and update file count)","operationId":"sync_workspace_api_v1_workspaces__workspace_id__sync_post","parameters":[{"name":"workspace_id","in":"path","required":true,"schema":{"type":"string","title":"Workspace Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/workspaces/templates/":{"get":{"tags":["Workspaces"],"summary":"List Workspace Templates","description":"List workspace templates for products","operationId":"list_workspace_templates_api_v1_workspaces_templates__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response List Workspace Templates Api V1 Workspaces Templates  Get"}}}}}}},"/api/v1/schedules/":{"get":{"tags":["Schedules"],"summary":"List Schedules","description":"List all schedules, optionally filtered by agent","operationId":"list_schedules_api_v1_schedules__get","parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ScheduleResponse"},"title":"Response List Schedules Api V1 Schedules  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Schedules"],"summary":"Create Schedule","description":"Create a new agent schedule","operationId":"create_schedule_api_v1_schedules__post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/schedules/{schedule_id}":{"get":{"tags":["Schedules"],"summary":"Get Schedule","description":"Get a schedule by ID","operationId":"get_schedule_api_v1_schedules__schedule_id__get","parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Schedules"],"summary":"Update Schedule","description":"Update a schedule","operationId":"update_schedule_api_v1_schedules__schedule_id__put","parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleUpdateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScheduleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Schedules"],"summary":"Delete Schedule","description":"Delete a schedule","operationId":"delete_schedule_api_v1_schedules__schedule_id__delete","parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/schedules/{schedule_id}/pause":{"post":{"tags":["Schedules"],"summary":"Pause Schedule","description":"Pause a schedule","operationId":"pause_schedule_api_v1_schedules__schedule_id__pause_post","parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/schedules/{schedule_id}/resume":{"post":{"tags":["Schedules"],"summary":"Resume Schedule","description":"Resume a paused schedule","operationId":"resume_schedule_api_v1_schedules__schedule_id__resume_post","parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/schedules/{schedule_id}/run":{"post":{"tags":["Schedules"],"summary":"Run Schedule Now","description":"Manually trigger a schedule to run now","operationId":"run_schedule_now_api_v1_schedules__schedule_id__run_post","parameters":[{"name":"schedule_id","in":"path","required":true,"schema":{"type":"string","title":"Schedule Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/schedules/agents/{agent_id}/run":{"post":{"tags":["Schedules"],"summary":"Run Agent Now","description":"Manually run an agent immediately - starts continuous polling for IT Support agents","operationId":"run_agent_now_api_v1_schedules_agents__agent_id__run_post","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/connections/catalog":{"get":{"tags":["Connections"],"summary":"List Connection Catalog","description":"List known connection types (built-in + custom-built) and their\nrequired credential fields.","operationId":"list_connection_catalog_api_v1_connections_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/connections/push-targets":{"get":{"tags":["Connections"],"summary":"List Push Targets","description":"Connections that flows can DELIVER results into - i.e. their type has\nat least one registered write-capable tool. Used by the Workplace\ndestination picker.","operationId":"list_push_targets_api_v1_connections_push_targets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/connections/design":{"post":{"tags":["Connections"],"summary":"Design Connector","description":"Design a connector for a platform Weavr doesn't have yet.\n\nThe user says what they use; the platform proposes the whole definition -\ncredential fields, auth, a real test request, and plain-English directions\nfor finding each value. They review it and publish, so a system nobody has\nintegrated before takes the same three steps as a built-in one.","operationId":"design_connector_api_v1_connections_design_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorDesignRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/connections/definitions":{"get":{"tags":["Connections"],"summary":"List Connector Definitions","description":"List custom connector definitions (shared platform-wide, no credentials).","operationId":"list_connector_definitions_api_v1_connections_definitions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["Connections"],"summary":"Create Connector Definition","description":"Build a new connector type. Definitions are stored on the control\nplane and become available to every tenant; credentials are never part\nof a definition.","operationId":"create_connector_definition_api_v1_connections_definitions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorDefinition"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/connections/definitions/{connector_type}":{"put":{"tags":["Connections"],"summary":"Update Connector Definition","description":"Update a custom connector definition (platform-wide).","operationId":"update_connector_definition_api_v1_connections_definitions__connector_type__put","parameters":[{"name":"connector_type","in":"path","required":true,"schema":{"type":"string","title":"Connector Type"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorDefinition"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Connections"],"summary":"Delete Connector Definition","description":"Delete a custom connector definition (platform-wide).","operationId":"delete_connector_definition_api_v1_connections_definitions__connector_type__delete","parameters":[{"name":"connector_type","in":"path","required":true,"schema":{"type":"string","title":"Connector Type"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/connections/":{"get":{"tags":["Connections"],"summary":"List Connections","description":"List the caller's organization's connections (credentials redacted).","operationId":"list_connections_api_v1_connections__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ConnectionResponse"},"type":"array","title":"Response List Connections Api V1 Connections  Get"}}}}}},"post":{"tags":["Connections"],"summary":"Create Connection","description":"Create a shared connection that can be referenced by multiple agents.","operationId":"create_connection_api_v1_connections__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/connections/{connection_id}":{"get":{"tags":["Connections"],"summary":"Get Connection","description":"Get one shared connection with credentials redacted (own org only).","operationId":"get_connection_api_v1_connections__connection_id__get","parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Connections"],"summary":"Update Connection","description":"Update a shared connection definition (own org only).","operationId":"update_connection_api_v1_connections__connection_id__put","parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Connections"],"summary":"Delete Connection","description":"Delete a shared connection (own org only).","operationId":"delete_connection_api_v1_connections__connection_id__delete","parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/connections/validate":{"post":{"tags":["Connections"],"summary":"Validate Connection","description":"Validate required credential fields for a connection type.","operationId":"validate_connection_api_v1_connections_validate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionValidationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/connections/{connection_id}/test":{"post":{"tags":["Connections"],"summary":"Test Connection","description":"Test a connection by attempting to authenticate and make a simple API call.","operationId":"test_connection_api_v1_connections__connection_id__test_post","parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/connections/test-credentials":{"post":{"tags":["Connections"],"summary":"Test Credentials Direct","description":"Test credentials without saving - for UI validation before creating.","operationId":"test_credentials_direct_api_v1_connections_test_credentials_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/connections/auto-register":{"post":{"tags":["Connections"],"summary":"Auto Register Connections","description":"Auto-register shared connections from environment variables.\nLooks for standard environment variables for NinjaOne, Outlook, and Teams.\nReturns list of registered connections.","operationId":"auto_register_connections_api_v1_connections_auto_register_post","responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/connections/by-type/{connection_type}":{"get":{"tags":["Connections"],"summary":"Get Connections By Type","description":"Get all connections of a specific type (e.g., 'ninjaone', 'outlook').","operationId":"get_connections_by_type_api_v1_connections_by_type__connection_type__get","parameters":[{"name":"connection_type","in":"path","required":true,"schema":{"type":"string","title":"Connection Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/connections/{connection_id}/credentials":{"get":{"tags":["Connections"],"summary":"Get Connection Credentials","description":"Get full credentials for a connection (internal use by agents).\nWARNING: Returns unredacted secrets. Use only server-side.","operationId":"get_connection_credentials_api_v1_connections__connection_id__credentials_get","parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/presentations/generate":{"post":{"tags":["Presentations"],"summary":"Generate Presentation","description":"Generate a new HTML presentation from a prompt","operationId":"generate_presentation_api_v1_presentations_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresentationGenerateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresentationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/presentations/edit":{"post":{"tags":["Presentations"],"summary":"Edit Presentation","description":"Edit an existing HTML presentation based on a change prompt","operationId":"edit_presentation_api_v1_presentations_edit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresentationEditRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PresentationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/presentations/health":{"get":{"tags":["Presentations"],"summary":"Presentations Health","description":"Health check for presentations service","operationId":"presentations_health_api_v1_presentations_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/project-plans/generate":{"post":{"tags":["Project Plans"],"summary":"Generate Project Plan","description":"Generate a new HTML project plan from a prompt","operationId":"generate_project_plan_api_v1_project_plans_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectPlanGenerateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectPlanResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/project-plans/edit":{"post":{"tags":["Project Plans"],"summary":"Edit Project Plan","description":"Edit an existing HTML project plan based on a change prompt","operationId":"edit_project_plan_api_v1_project_plans_edit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectPlanEditRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectPlanResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/deploy/targets":{"get":{"tags":["Deployment","deployment"],"summary":"List Targets","description":"List all deployment targets","operationId":"list_targets_api_v1_deploy_targets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/deploy/status/{target}":{"get":{"tags":["Deployment","deployment"],"summary":"Get Status","description":"Get container status for a deployment target","operationId":"get_status_api_v1_deploy_status__target__get","parameters":[{"name":"target","in":"path","required":true,"schema":{"type":"string","title":"Target"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/deploy/status":{"get":{"tags":["Deployment","deployment"],"summary":"Get All Status","description":"Get container status for all deployment targets","operationId":"get_all_status_api_v1_deploy_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/deploy/pull/{target}":{"post":{"tags":["Deployment","deployment"],"summary":"Pull Image","description":"Pull the latest image for a target (does not restart)","operationId":"pull_image_api_v1_deploy_pull__target__post","parameters":[{"name":"target","in":"path","required":true,"schema":{"type":"string","title":"Target"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/deploy/deploy":{"post":{"tags":["Deployment","deployment"],"summary":"Deploy","description":"Deploy latest image for a target (pull + restart)","operationId":"deploy_api_v1_deploy_deploy_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeployRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/deploy/rollback":{"post":{"tags":["Deployment","deployment"],"summary":"Rollback","description":"Rollback a target to a specific image tag","operationId":"rollback_api_v1_deploy_rollback_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RollbackRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/deploy/history":{"get":{"tags":["Deployment","deployment"],"summary":"Deployment History","description":"Get deployment history","operationId":"deployment_history_api_v1_deploy_history_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/deploy/health-check/{target}":{"get":{"tags":["Deployment","deployment"],"summary":"Health Check","description":"Run an HTTP health check against a deployment target and return version info","operationId":"health_check_api_v1_deploy_health_check__target__get","parameters":[{"name":"target","in":"path","required":true,"schema":{"type":"string","title":"Target"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/deploy/action":{"post":{"tags":["Deployment","deployment"],"summary":"Execute Action","description":"Execute a deployment action directly (no LLM).\nUsed by the chat endpoint to execute parsed intents.","operationId":"execute_action_api_v1_deploy_action_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentActionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/deploy/chat":{"post":{"tags":["Deployment","deployment"],"summary":"Deployment Chat","description":"Chat with the Deployment Agent for natural-language deployments","operationId":"deployment_chat_api_v1_deploy_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentChatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/usage/summary":{"get":{"tags":["Usage & Cost"],"summary":"Get Usage Summary","description":"Per-agent + rolled-up usage for the caller's organization (the hub sees\nthe whole platform; a spoke sees only its own agents' spend).","operationId":"get_usage_summary_api_v1_usage_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/usage/limits":{"get":{"tags":["Usage & Cost"],"summary":"Get Limits","description":"Current limit configuration","operationId":"get_limits_api_v1_usage_limits_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"put":{"tags":["Usage & Cost"],"summary":"Update Limits","description":"Update platform caps, agent defaults, and/or pricing overrides (admin)","operationId":"update_limits_api_v1_usage_limits_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LimitsUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/usage/agents/{agent_id}/limits":{"get":{"tags":["Usage & Cost"],"summary":"Get Agent Limits","description":"Effective limits for one agent","operationId":"get_agent_limits_api_v1_usage_agents__agent_id__limits_get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["Usage & Cost"],"summary":"Set Agent Limits","description":"Set per-agent limit overrides (agent-level control)","operationId":"set_agent_limits_api_v1_usage_agents__agent_id__limits_put","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentLimitsUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/tiers":{"get":{"tags":["Billing & Subscriptions"],"summary":"List Tiers","description":"Public tier catalog. price_display/usage_display are rendered\nserver-side so every frontend stays interval- and ceiling-agnostic.","operationId":"list_tiers_api_v1_billing_tiers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/billing/signup":{"post":{"tags":["Billing & Subscriptions"],"summary":"Signup","description":"Create an organization and a Stripe Checkout session for the chosen\ntier. Requires an OTP-verified session - the verified business email\nbecomes the organization owner. Stays pending_payment until Stripe\nconfirms the first invoice.","operationId":"signup_api_v1_billing_signup_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignupRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/session/{session_id}":{"get":{"tags":["Billing & Subscriptions"],"summary":"Checkout Session Status","description":"Post-checkout status poll for the success page. Once the tenant is\nactive this reveals the API key and instance details exactly once per\ncheckout session (the session id is the proof of purchase).","operationId":"checkout_session_status_api_v1_billing_session__session_id__get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/redeem":{"post":{"tags":["Billing & Subscriptions"],"summary":"Redeem Promo Code","description":"Redeem a promotional code for a trial organization. Requires an\nOTP-verified session (same as signup). The trial activates immediately -\nno Stripe checkout - with the code's free-usage allowance as a hard\nmonthly Powdr Cost ceiling and the code's trial window as the prepaid\nperiod. Fully manageable from tenant management like any tenant.","operationId":"redeem_promo_code_api_v1_billing_redeem_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedeemRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/webhook":{"post":{"tags":["Billing & Subscriptions"],"summary":"Stripe Webhook","description":"Stripe webhook endpoint - drives the whole tenant lifecycle","operationId":"stripe_webhook_api_v1_billing_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/billing/account":{"get":{"tags":["Billing & Subscriptions"],"summary":"Get Account","description":"The calling tenant's subscription, instance, and usage vs ceiling","operationId":"get_account_api_v1_billing_account_get","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/portal":{"post":{"tags":["Billing & Subscriptions"],"summary":"Billing Portal","description":"Stripe customer portal session (manage payment method, invoices)","operationId":"billing_portal_api_v1_billing_portal_post","parameters":[{"name":"X-API-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/tenants":{"get":{"tags":["Billing & Subscriptions"],"summary":"List Tenants","description":"All tenants with live instance state and this month's Powdr Cost -\nPowdr, Inc's own (control plane) usage included - plus the platform\ntotal across every organization.","operationId":"list_tenants_api_v1_billing_tenants_get","parameters":[{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Billing & Subscriptions"],"summary":"Admin Create Org","description":"Weavr Admin+: manually create an organization (pending payment -\nits org_admin completes checkout by signing in on /subscribe)","operationId":"admin_create_org_api_v1_billing_tenants_post","parameters":[{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AdminCreateOrgRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/tenants/{tenant_id}/archive":{"post":{"tags":["Billing & Subscriptions"],"summary":"Admin Archive","description":"Weavr Admin+: archive (cancel) an organization - except Powdr, Inc","operationId":"admin_archive_api_v1_billing_tenants__tenant_id__archive_post","parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}},{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/tenants/{tenant_id}/suspend":{"post":{"tags":["Billing & Subscriptions"],"summary":"Admin Suspend","operationId":"admin_suspend_api_v1_billing_tenants__tenant_id__suspend_post","parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}},{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/tenants/{tenant_id}/resume":{"post":{"tags":["Billing & Subscriptions"],"summary":"Admin Resume","operationId":"admin_resume_api_v1_billing_tenants__tenant_id__resume_post","parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}},{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/tenants/{tenant_id}/provision":{"post":{"tags":["Billing & Subscriptions"],"summary":"Admin Provision","description":"(Re)provision the tenant's instance - also the retry path after a\nprovisioning failure or an image upgrade (volume is preserved)","operationId":"admin_provision_api_v1_billing_tenants__tenant_id__provision_post","parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}},{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/tenants/{tenant_id}/deprovision":{"post":{"tags":["Billing & Subscriptions"],"summary":"Admin Deprovision","operationId":"admin_deprovision_api_v1_billing_tenants__tenant_id__deprovision_post","parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}},{"name":"remove_volume","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Remove Volume"}},{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/tenants/{tenant_id}/tier":{"post":{"tags":["Billing & Subscriptions"],"summary":"Admin Change Tier","description":"Change a tenant's tier: swaps the Stripe subscription price and\nre-provisions the instance with the new cost ceiling (data preserved)","operationId":"admin_change_tier_api_v1_billing_tenants__tenant_id__tier_post","parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}},{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TierChangeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/tenants/{tenant_id}/usage":{"get":{"tags":["Billing & Subscriptions"],"summary":"Admin Tenant Usage","description":"Owner/Weavr Admin drill-down: one tenant's COST attribution for the\nmonth - totals, build vs run, and the provider/model breakdown.\n\nDeliberately agent-free for real tenants: the parent monitors what a\ntenant costs and where the spend lands, never what agents the tenant is\nbuilding (their agent names and configs are their business). Powdr, Inc\nitself is the exception - it IS the control plane, so its own drill-down\nkeeps the full per-agent summary.","operationId":"admin_tenant_usage_api_v1_billing_tenants__tenant_id__usage_get","parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}},{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/tenants/{tenant_id}/cost-limit":{"post":{"tags":["Billing & Subscriptions"],"summary":"Admin Set Cost Limit","description":"Owner/Weavr Admin: apply free usage to a tenant by setting a monthly\nPowdr Cost ceiling override (e.g. $25). null clears the override (back\nto the trial allowance or tier ceiling). The instance is re-provisioned\nso the new ceiling is enforced immediately (data preserved).","operationId":"admin_set_cost_limit_api_v1_billing_tenants__tenant_id__cost_limit_post","parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}},{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CostLimitRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/tenants/{tenant_id}/trial/extend":{"post":{"tags":["Billing & Subscriptions"],"summary":"Admin Extend Trial","description":"Owner/Weavr Admin: extend a trial tenant's window by N days (from its\ncurrent expiry, or from now if already lapsed)","operationId":"admin_extend_trial_api_v1_billing_tenants__tenant_id__trial_extend_post","parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}},{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrialExtendRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/promo-codes":{"get":{"tags":["Billing & Subscriptions"],"summary":"List Promo Codes","description":"All promotional codes with their redemption history","operationId":"list_promo_codes_api_v1_billing_promo_codes_get","parameters":[{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Billing & Subscriptions"],"summary":"Create Promo Code","description":"Owner/Weavr Admin: create a promotional code granting trial accounts\n(free usage allowance + trial window). Code is auto-generated unless given.","operationId":"create_promo_code_api_v1_billing_promo_codes_post","parameters":[{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoCodeCreateRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/promo-codes/{code}/deactivate":{"post":{"tags":["Billing & Subscriptions"],"summary":"Deactivate Promo Code","operationId":"deactivate_promo_code_api_v1_billing_promo_codes__code__deactivate_post","parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","title":"Code"}},{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/promo-codes/{code}/activate":{"post":{"tags":["Billing & Subscriptions"],"summary":"Activate Promo Code","operationId":"activate_promo_code_api_v1_billing_promo_codes__code__activate_post","parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","title":"Code"}},{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/promo-codes/{code}":{"delete":{"tags":["Billing & Subscriptions"],"summary":"Delete Promo Code","description":"Delete a never-redeemed code (redeemed ones keep their audit trail -\ndeactivate instead)","operationId":"delete_promo_code_api_v1_billing_promo_codes__code__delete","parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","title":"Code"}},{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/tenants/upgrade-all":{"post":{"tags":["Billing & Subscriptions"],"summary":"Admin Upgrade All Instances","description":"Bring every active tenant's dedicated instance onto the current Weavr\nimage now (the same rollout that runs automatically after each deploy).","operationId":"admin_upgrade_all_instances_api_v1_billing_tenants_upgrade_all_post","parameters":[{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/stripe/ensure-prices":{"post":{"tags":["Billing & Subscriptions"],"summary":"Admin Ensure Prices","description":"Create/resolve the Stripe products and prices for every tier","operationId":"admin_ensure_prices_api_v1_billing_stripe_ensure_prices_post","parameters":[{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/pricing":{"get":{"tags":["Billing & Subscriptions"],"summary":"Admin Pricing Overview","description":"Current market pricing per tier plus every subscriber's standing\nagainst it: what they agreed to pay, whether their signup price is still\ngrandfathered (honored for PRICE_LOCK_DAYS from first activation), and\nwho is past the lock and needs repricing.","operationId":"admin_pricing_overview_api_v1_billing_pricing_get","parameters":[{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/pricing/tiers/{tier_id}":{"put":{"tags":["Billing & Subscriptions"],"summary":"Admin Update Tier Pricing","description":"Set a tier's market price, included cost ceiling, and monthly token\nlimit. Applies to NEW signups immediately; existing subscribers keep\ntheir agreed price until their grandfather window lapses and they are\nexplicitly repriced.","operationId":"admin_update_tier_pricing_api_v1_billing_pricing_tiers__tier_id__put","parameters":[{"name":"tier_id","in":"path","required":true,"schema":{"type":"string","title":"Tier Id"}},{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TierPricingRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/billing/tenants/{tenant_id}/apply-market-rate":{"post":{"tags":["Billing & Subscriptions"],"summary":"Admin Apply Market Rate","description":"Move a subscriber whose grandfather window has lapsed onto the tier's\ncurrent price, cost ceiling, and token limit. Swaps the Stripe\nsubscription price and re-provisions the instance so the new ceiling is\nenforced immediately.","operationId":"admin_apply_market_rate_api_v1_billing_tenants__tenant_id__apply_market_rate_post","parameters":[{"name":"tenant_id","in":"path","required":true,"schema":{"type":"string","title":"Tenant Id"}},{"name":"X-Admin-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Admin-Key"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/otp/request":{"post":{"tags":["Auth & Organizations"],"summary":"Request Otp","description":"Send a one-time login code to a business email address","operationId":"request_otp_api_v1_auth_otp_request_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OTPRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/otp/verify":{"post":{"tags":["Auth & Organizations"],"summary":"Verify Otp","description":"Exchange a valid code for a session. Joins the caller to their\ncompany's organization automatically when the domain matches.","operationId":"verify_otp_api_v1_auth_otp_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OTPVerify"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/me":{"get":{"tags":["Auth & Organizations"],"summary":"Whoami","description":"Current session: verified email, organization membership, and roles","operationId":"whoami_api_v1_auth_me_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/orgs/me":{"get":{"tags":["Auth & Organizations"],"summary":"My Organization","operationId":"my_organization_api_v1_orgs_me_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/orgs/me/members":{"get":{"tags":["Auth & Organizations"],"summary":"List Members","operationId":"list_members_api_v1_orgs_me_members_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/orgs/me/members/{member_email}":{"delete":{"tags":["Auth & Organizations"],"summary":"Remove Member","operationId":"remove_member_api_v1_orgs_me_members__member_email__delete","parameters":[{"name":"member_email","in":"path","required":true,"schema":{"type":"string","title":"Member Email"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/orgs/me/members/{member_email}/role":{"put":{"tags":["Auth & Organizations"],"summary":"Assign Role","description":"Assign an organization role: operator, agent_builder, ops_admin, or\norg_admin. The org creator always keeps org_admin.","operationId":"assign_role_api_v1_orgs_me_members__member_email__role_put","parameters":[{"name":"member_email","in":"path","required":true,"schema":{"type":"string","title":"Member Email"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoleRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/orgs/me/members/{member_email}/status":{"put":{"tags":["Auth & Organizations"],"summary":"Set Member Status","description":"Block (disabled=true) or restore (disabled=false) a member's access.\nA blocked member keeps their role and history but can neither sign in nor\nmake API calls until restored. You can't block yourself or the org creator.","operationId":"set_member_status_api_v1_orgs_me_members__member_email__status_put","parameters":[{"name":"member_email","in":"path","required":true,"schema":{"type":"string","title":"Member Email"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemberStatusRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/orgs/me/invites":{"get":{"tags":["Auth & Organizations"],"summary":"List Invites","operationId":"list_invites_api_v1_orgs_me_invites_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Auth & Organizations"],"summary":"Invite Member","description":"Invite a colleague to the organization. Sends them a sign-in link by\nemail (when mail is configured) and pre-authorizes them to join with the\ngiven role on their first login - even off an unclaimed domain.","operationId":"invite_member_api_v1_orgs_me_invites_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/orgs/me/invites/{invite_email}":{"delete":{"tags":["Auth & Organizations"],"summary":"Revoke Invite","operationId":"revoke_invite_api_v1_orgs_me_invites__invite_email__delete","parameters":[{"name":"invite_email","in":"path","required":true,"schema":{"type":"string","title":"Invite Email"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/orgs/me/archive":{"post":{"tags":["Auth & Organizations"],"summary":"Archive My Org","description":"Archive (cancel) the organization: the Stripe subscription is\ncancelled immediately, the instance stops, data is retained.","operationId":"archive_my_org_api_v1_orgs_me_archive_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/admin/platform-roles":{"post":{"tags":["Auth & Organizations"],"summary":"Grant Platform Role","description":"Owner only: grant or revoke the Weavr Admin platform role","operationId":"grant_platform_role_api_v1_admin_platform_roles_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformRoleRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/orgs/me/domains":{"post":{"tags":["Auth & Organizations"],"summary":"Add Domain","description":"Attach another company email domain to the organization","operationId":"add_domain_api_v1_orgs_me_domains_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/orgs/me/sso":{"post":{"tags":["Auth & Organizations"],"summary":"Configure Sso","description":"Configure Microsoft Entra ID or Google Workspace SSO for the org.\nRegister the returned redirect_uri in the IdP app registration.","operationId":"configure_sso_api_v1_orgs_me_sso_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SSOConfigRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Auth & Organizations"],"summary":"Remove Sso","operationId":"remove_sso_api_v1_orgs_me_sso_delete","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/sso/start":{"get":{"tags":["Auth & Organizations"],"summary":"Sso Start","description":"Begin SSO for the org that owns this email's domain. Returns the\nIdP authorization URL for the login page to redirect to.","operationId":"sso_start_api_v1_auth_sso_start_get","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/sso/callback":{"get":{"tags":["Auth & Organizations"],"summary":"Sso Callback","description":"IdP redirect target: exchange the code, verify the user belongs to\nthe organization, sign them in, and land them on the account page.","operationId":"sso_callback_api_v1_auth_sso_callback_get","parameters":[{"name":"code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},{"name":"error","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},{"name":"error_description","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Description"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agent-builder/capabilities":{"get":{"tags":["Agent Builder"],"summary":"Capabilities","description":"Tool catalog plus which connections are already configured.","operationId":"capabilities_api_v1_agent_builder_capabilities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/agent-builder/plan":{"post":{"tags":["Agent Builder"],"summary":"Plan Agent","description":"Turn a plain-English goal into a proposed agent definition.","operationId":"plan_agent_api_v1_agent_builder_plan_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agent-builder/plan-workflow":{"post":{"tags":["Agent Builder"],"summary":"Plan Workflow","description":"Turn a plain-English process description into a full workflow design:\nsteps, agents (reused or newly designed), hand-off contracts, and the\nconnections still needed.","operationId":"plan_workflow_api_v1_agent_builder_plan_workflow_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowPlanRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agent-builder/create-workflow":{"post":{"tags":["Agent Builder"],"summary":"Create Workflow From Plan","description":"Materialize a planned workflow in one shot: create every NEW agent it\nneeds (on the runtime default model), lay the steps out on the canvas,\nwire the hand-off edges, and save the workflow. Returns the saved\nworkflow plus the ids of any agents created.","operationId":"create_workflow_from_plan_api_v1_agent_builder_create_workflow_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowCreateFromPlanRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agent-builder/create":{"post":{"tags":["Agent Builder"],"summary":"Create Agent From Plan","description":"Create the agent the wizard assembled.","operationId":"create_agent_from_plan_api_v1_agent_builder_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/feature-builder/health":{"get":{"tags":["Feature Builder"],"summary":"Health","operationId":"health_api_v1_feature_builder_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/feature-builder/build":{"post":{"tags":["Feature Builder"],"summary":"Create Build","description":"Start a feature build. Returns immediately with a build_id to poll -\na build takes minutes (two Opus passes plus GitHub round-trips).","operationId":"create_build_api_v1_feature_builder_build_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/feature-builder/build/{build_id}":{"get":{"tags":["Feature Builder"],"summary":"Build Status","operationId":"build_status_api_v1_feature_builder_build__build_id__get","parameters":[{"name":"build_id","in":"path","required":true,"schema":{"type":"string","title":"Build Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/feature-builder/builds":{"get":{"tags":["Feature Builder"],"summary":"All Builds","operationId":"all_builds_api_v1_feature_builder_builds_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agent-backup/destinations":{"get":{"tags":["Agent Backup"],"summary":"List Destinations","operationId":"list_destinations_api_v1_agent_backup_destinations_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/agent-backup/preview":{"get":{"tags":["Agent Backup"],"summary":"Preview Backup","description":"What THIS org's backup would contain (counts + non-secret manifest).","operationId":"preview_backup_api_v1_agent_backup_preview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/agent-backup/run":{"post":{"tags":["Agent Backup"],"summary":"Run Agent Backup","description":"Export this org's agents/workflows to an external destination.","operationId":"run_agent_backup_api_v1_agent_backup_run_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agent-backup/export":{"get":{"tags":["Agent Backup"],"summary":"Export Org","description":"Download this organization's agents and workflows as one JSON file.\n\n`agent_ids` / `workflow_ids` are optional comma-separated selections;\nselecting a workflow pulls in the agents it depends on, since a workflow\nwithout its members cannot be imported into an empty org.\n\nNever contains credentials, so the file is safe to store in a repo or\nemail to another tenant.","operationId":"export_org_api_v1_agent_backup_export_get","parameters":[{"name":"agent_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Ids"}},{"name":"workflow_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Ids"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agent-backup/import":{"post":{"tags":["Agent Backup"],"summary":"Import Org","description":"Import an exported snapshot into the caller's organization.\n\nEverything lands owned by the importing org with freshly minted ids, and\nworkflow steps are remapped onto the agents created alongside them - an\nexport reused its source ids would otherwise overwrite another tenant's\nrecords. Credentials are never in an export, so any connection an agent\nneeds is reported as remaining setup rather than silently half-wired.\n\n`dry_run` answers \"what would this do to my org\" without writing anything.","operationId":"import_org_api_v1_agent_backup_import_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/intake/{source}/events":{"post":{"tags":["External Intake"],"summary":"Intake Events","description":"Generic event intake for any external platform.","operationId":"intake_events_api_v1_intake__source__events_post","parameters":[{"name":"source","in":"path","required":true,"schema":{"type":"string","title":"Source"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeBatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/intake/health":{"get":{"tags":["External Intake"],"summary":"Intake Health","operationId":"intake_health_api_v1_intake_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/kyni-support/analyze":{"post":{"tags":["External Intake"],"summary":"Kyni Support Analyze","description":"Kyni's log monitor contract: {logs, source, instance_id} ->\n{escalations_sent, ...}. Same pipeline as /intake/kyni/events.","operationId":"kyni_support_analyze_api_v1_kyni_support_analyze_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntakeBatch"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/kyni-support/health":{"get":{"tags":["External Intake"],"summary":"Kyni Support Health","operationId":"kyni_support_health_api_v1_kyni_support_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/external/agents/{agent_id}/invoke":{"post":{"tags":["External Agent API"],"summary":"Invoke Agent","description":"Run one agent and get its answer back.","operationId":"invoke_agent_api_v1_external_agents__agent_id__invoke_post","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvokeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/external/workflows/{workflow_id}/invoke":{"post":{"tags":["External Agent API"],"summary":"Invoke Workflow","description":"Run a workflow - controller-routed or DAG - and get the final answer.","operationId":"invoke_workflow_api_v1_external_workflows__workflow_id__invoke_post","parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvokeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/external/runs/{run_id}":{"get":{"tags":["External Agent API"],"summary":"Get Run Result","description":"Read the result of an invoke that timed out or used a callback.\n\nScoped: a run is only readable by the org that owns the agent or workflow\nthat produced it, so a guessed run id reveals nothing.","operationId":"get_run_result_api_v1_external_runs__run_id__get","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"string","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/external/agents":{"get":{"tags":["External Agent API"],"summary":"List Invokable Agents","description":"The agents this key may invoke - so an integration can discover its\ntargets instead of having ids pasted into its config.","operationId":"list_invokable_agents_api_v1_external_agents_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/external/workflows":{"get":{"tags":["External Agent API"],"summary":"List Invokable Workflows","operationId":"list_invokable_workflows_api_v1_external_workflows_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/slack/events":{"post":{"tags":["Slack"],"summary":"Slack Events","description":"Slack Events API. Acks inside 3s; the agent runs in the background.","operationId":"slack_events_api_v1_slack_events_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/slack/commands":{"post":{"tags":["Slack"],"summary":"Slack Commands","description":"Slash commands. The ack itself is the 'working on it' the user sees.","operationId":"slack_commands_api_v1_slack_commands_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/slack/interactions":{"post":{"tags":["Slack"],"summary":"Slack Interactions","description":"Block Kit interactions. Acked so Slack stops showing a spinner; no\ninteractive components ship yet, so nothing is dispatched.","operationId":"slack_interactions_api_v1_slack_interactions_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/slack/install-url":{"get":{"tags":["Slack"],"summary":"Slack Install Url","description":"Where to send the browser to install Weavr into a Slack workspace.\n\nReturned as JSON for the page to redirect to, rather than being a redirect\nitself, because a browser navigating to a link does not send the session\nheader - and the org this install belongs to comes from that session.\nThat org is sealed into `state` so the callback, which arrives from Slack\nwith no session at all, still knows whose workspace this is.","operationId":"slack_install_url_api_v1_slack_install_url_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/slack/oauth/callback":{"get":{"tags":["Slack"],"summary":"Slack Oauth Callback","description":"Where Slack sends the browser after the user approves the install.\n\nArrives with no session, so the organization comes from `state` - which is\nsigned, scoped to one purpose, and expires in ten minutes. An unsigned or\nstale state is refused outright: it is the only thing deciding which\ntenant a workspace gets attached to.","operationId":"slack_oauth_callback_api_v1_slack_oauth_callback_get","parameters":[{"name":"code","in":"query","required":false,"schema":{"type":"string","default":"","title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","default":"","title":"State"}},{"name":"error","in":"query","required":false,"schema":{"type":"string","default":"","title":"Error"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/slack/deliveries":{"get":{"tags":["Slack"],"summary":"Slack Deliveries","description":"The delivery ledger: every recent Slack message and what became of it.\n\nThis is the answer to \"I typed in the channel and nothing happened\" -\neach entry names the disposition in plain words (ran, duplicate, ignored\nbecause the channel has no explicit binding, refused because the\nsubscription lapsed...). Org-scoped; the hub sees everything.","operationId":"slack_deliveries_api_v1_slack_deliveries_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/slack/status":{"get":{"tags":["Slack"],"summary":"Slack Status","description":"Whether this organization has a working Slack link, and what is bound.","operationId":"slack_status_api_v1_slack_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/slack/bindings":{"get":{"tags":["Slack"],"summary":"Get Bindings","operationId":"get_bindings_api_v1_slack_bindings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["Slack"],"summary":"Create Binding","description":"Bind a Slack channel to an agent or workflow.\n\nThe target must belong to the caller's org, and the workspace must be this\norg's - otherwise a binding would be a way to point someone else's Slack at\nyour agents, or yours at theirs.","operationId":"create_binding_api_v1_slack_bindings_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BindingCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/slack/bindings/{team_id}/{channel_id}":{"delete":{"tags":["Slack"],"summary":"Delete Binding","operationId":"delete_binding_api_v1_slack_bindings__team_id___channel_id__delete","parameters":[{"name":"team_id","in":"path","required":true,"schema":{"type":"string","title":"Team Id"}},{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","title":"Channel Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/slack/channels":{"post":{"tags":["Slack"],"summary":"Create Slack Channel","description":"Create a channel in this organization's workspace and put the bot in it.\n\nCreating it is not enough - a bot that is not a member receives no events\nfrom the channel, so the join is part of the same operation.","operationId":"create_slack_channel_api_v1_slack_channels_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/engagements":{"get":{"tags":["Engagements"],"summary":"List Engagements","operationId":"list_engagements_api_v1_engagements_get","parameters":[{"name":"stage","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"}},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/engagements/{engagement_id}":{"get":{"tags":["Engagements"],"summary":"Get Engagement","operationId":"get_engagement_api_v1_engagements__engagement_id__get","parameters":[{"name":"engagement_id","in":"path","required":true,"schema":{"type":"string","title":"Engagement Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/engagements/webhooks/asana":{"post":{"tags":["Engagements"],"summary":"Asana Webhook","operationId":"asana_webhook_api_v1_engagements_webhooks_asana_post","parameters":[{"name":"connection","in":"query","required":false,"schema":{"type":"string","default":"","title":"Connection"}},{"name":"engagement","in":"query","required":false,"schema":{"type":"string","default":"","title":"Engagement"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/teams/message":{"post":{"tags":["Teams"],"summary":"Teams Message","description":"Answer a Teams message. Called by the user's Power Automate flow.\n\nResponds with `{\"reply\": \"...\"}` - the flow posts that back into the\nchannel. Synchronous by design: Power Automate is already waiting, and\nhanding it the answer directly is simpler and more reliable than pushing\nthe reply back through a second connector.","operationId":"teams_message_api_v1_teams_message_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamsMessage"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/teams/bindings":{"get":{"tags":["Teams"],"summary":"List Teams Bindings","description":"This organization's Teams channel bindings.","operationId":"list_teams_bindings_api_v1_teams_bindings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["Teams"],"summary":"Create Teams Binding","description":"Bind a channel name (or `*`) to one of this org's agents or workflows.\nThe generated flow recipe carries the name; the flow never needs an id.","operationId":"create_teams_binding_api_v1_teams_bindings_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TeamsBindingRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/teams/bindings/{channel}":{"delete":{"tags":["Teams"],"summary":"Delete Teams Binding","operationId":"delete_teams_binding_api_v1_teams_bindings__channel__delete","parameters":[{"name":"channel","in":"path","required":true,"schema":{"type":"string","title":"Channel"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/teams/health":{"get":{"tags":["Teams"],"summary":"Teams Health","operationId":"teams_health_api_v1_teams_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/setup-guide/platforms":{"get":{"tags":["Setup Guide"],"summary":"List Platforms","description":"The platforms the guide can walk someone through, with live progress.","operationId":"list_platforms_api_v1_setup_guide_platforms_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/setup-guide/{platform}":{"get":{"tags":["Setup Guide"],"summary":"Get Platform State","description":"The live checklist: which steps are done (checked against real\nconfiguration, not user claims) and which one is next.","operationId":"get_platform_state_api_v1_setup_guide__platform__get","parameters":[{"name":"platform","in":"path","required":true,"schema":{"type":"string","title":"Platform"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/setup-guide/{platform}/ask":{"post":{"tags":["Setup Guide"],"summary":"Ask Guide","description":"Ask the guide anything about the setup - it answers about the step the\norg is actually on.","operationId":"ask_guide_api_v1_setup_guide__platform__ask_post","parameters":[{"name":"platform","in":"path","required":true,"schema":{"type":"string","title":"Platform"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AskRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/setup-guide/teams/flow-recipe":{"get":{"tags":["Setup Guide"],"summary":"Get Teams Recipe","description":"The exact HTTP action to paste into the Power Automate flow - generated\nfor this instance so the URL is never stale documentation. `channel` is\nthe binding name the flow should carry (default `*`).","operationId":"get_teams_recipe_api_v1_setup_guide_teams_flow_recipe_get","parameters":[{"name":"channel","in":"query","required":false,"schema":{"type":"string","default":"","title":"Channel"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/api-keys/":{"get":{"tags":["API Keys"],"summary":"List Keys","description":"This organization's keys. Never includes the secret or its hash.","operationId":"list_keys_api_v1_api_keys__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["API Keys"],"summary":"Issue Key","description":"Mint a key. `key` in the response is the ONLY time the secret is\nvisible - store it in the calling system now.","operationId":"issue_key_api_v1_api_keys__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/api-keys/{key_id}":{"delete":{"tags":["API Keys"],"summary":"Revoke Key","operationId":"revoke_key_api_v1_api_keys__key_id__delete","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/it-support/status":{"get":{"tags":["IT Support Agent"],"summary":"Get It Support Status","description":"Get IT Support Agent status","operationId":"get_it_support_status_api_v1_it_support_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/it-support/start":{"post":{"tags":["IT Support Agent"],"summary":"Start It Support Agent","description":"Manually start the IT Support Agent","operationId":"start_it_support_agent_api_v1_it_support_start_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/it-support/stop":{"post":{"tags":["IT Support Agent"],"summary":"Stop It Support Agent","description":"Manually stop the IT Support Agent","operationId":"stop_it_support_agent_api_v1_it_support_stop_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"summary":"Landing","description":"Public marketing landing page for the Weavr platform","operationId":"landing__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/dashboard":{"get":{"summary":"Dashboard","description":"Serve the internal app - setup wizard (first run) or dashboard","operationId":"dashboard_dashboard_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/agents":{"get":{"summary":"Agents Page","description":"Serve agents management page","operationId":"agents_page_agents_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/agent-builder":{"get":{"summary":"Agent Builder Page","description":"Serve the guided agent builder wizard","operationId":"agent_builder_page_agent_builder_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/university":{"get":{"summary":"University Page","description":"Serve Weavr University - the self-paced platform curriculum.\nPublic by design: prospects evaluate depth, customers learn.","operationId":"university_page_university_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/subscribe":{"get":{"summary":"Subscribe Page","description":"Public pricing & signup page for Weavr subscriptions","operationId":"subscribe_page_subscribe_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/login":{"get":{"summary":"Login Page","description":"OTP / SSO sign-in page","operationId":"login_page_login_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/account":{"get":{"summary":"Account Page","description":"Organization account dashboard (members, SSO, subscription)","operationId":"account_page_account_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/tenants":{"get":{"summary":"Tenants Page","description":"Admin tenant management page","operationId":"tenants_page_tenants_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/monitoring":{"get":{"summary":"Monitoring Page","description":"Serve agent monitoring page","operationId":"monitoring_page_monitoring_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/tasks":{"get":{"summary":"Tasks Page","description":"Serve tasks management page","operationId":"tasks_page_tasks_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/workspaces":{"get":{"summary":"Workspaces Page","description":"Serve workspaces management page","operationId":"workspaces_page_workspaces_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/workflow":{"get":{"summary":"Workflow Page","description":"Serve the Workflow visual agent-orchestration page","operationId":"workflow_page_workflow_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/models":{"get":{"summary":"Models Page","description":"Serve models page","operationId":"models_page_models_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/settings":{"get":{"summary":"Settings Page","description":"Serve settings page","operationId":"settings_page_settings_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/connections":{"get":{"summary":"Connections Page","description":"Serve shared connections page","operationId":"connections_page_connections_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/pricing-admin":{"get":{"summary":"Pricing Admin Page","description":"Serve subscription pricing management page (Owner / Weavr Admin)","operationId":"pricing_admin_page_pricing_admin_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/deploy":{"get":{"summary":"Deployment Page","description":"Serve R1 deployment management page","operationId":"deployment_page_deploy_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api":{"get":{"summary":"Api Info","description":"API information endpoint","operationId":"api_info_api_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WelcomeResponse"}}}}}}}},"components":{"schemas":{"AdminCreateOrgRequest":{"properties":{"company":{"type":"string","maxLength":200,"minLength":1,"title":"Company"},"email":{"type":"string","maxLength":320,"minLength":3,"title":"Email"},"tier":{"type":"string","title":"Tier"}},"type":"object","required":["company","email","tier"],"title":"AdminCreateOrgRequest"},"AgentChatRequest":{"properties":{"message":{"type":"string","title":"Message"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"stream":{"type":"boolean","title":"Stream","default":false}},"type":"object","required":["message"],"title":"AgentChatRequest","description":"Chat request to an agent"},"AgentChatResponse":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"message":{"type":"string","title":"Message"},"thoughts":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Thoughts"},"actions_taken":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Actions Taken"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["agent_id","message"],"title":"AgentChatResponse","description":"Chat response from an agent"},"AgentConfig-Output":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"model_provider":{"type":"string","title":"Model Provider"},"model_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Name"},"temperature":{"type":"number","title":"Temperature","default":0.7},"max_tokens":{"type":"integer","title":"Max Tokens","default":4096},"tools":{"items":{"type":"string"},"type":"array","title":"Tools"},"connection_ids":{"items":{"type":"string"},"type":"array","title":"Connection Ids"},"tasks":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tasks","description":"Scheduled tasks for this agent"},"system_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Prompt"},"run_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Prompt","description":"Custom prompt to use when clicking Run"},"memory_enabled":{"type":"boolean","title":"Memory Enabled","default":true},"planning_depth":{"type":"integer","title":"Planning Depth","default":3},"settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Settings","description":"Agent-specific settings (e.g. mailbox_email, digest_recipients, digest_hour_utc for the Email Virtual Assistant)"}},"type":"object","required":["name","description"],"title":"AgentConfig","description":"Configuration for an agent"},"AgentCreate":{"properties":{"config":{"$ref":"#/components/schemas/weavr__routers__agents__AgentConfig"},"workspace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Id"}},"type":"object","required":["config"],"title":"AgentCreate","description":"Request to create a new agent"},"AgentDefaultLimits":{"properties":{"daily_request_limit":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Daily Request Limit","description":"Default max LLM requests per agent per day"},"daily_cost_limit":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Daily Cost Limit","description":"Default max USD per agent per day"}},"type":"object","title":"AgentDefaultLimits"},"AgentGenerateRequest":{"properties":{"description":{"type":"string","maxLength":4000,"minLength":8,"title":"Description"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},"type":"object","required":["description"],"title":"AgentGenerateRequest","description":"A plain-English description of the agent a user wants built - or, when\nagent_id is set, an EDIT request against an existing agent. Edits are\nadditive: the builder receives the current config plus the agent's prior\nAI-edit conversation and must evolve it, never regress it."},"AgentLimitsUpdate":{"properties":{"daily_request_limit":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Daily Request Limit"},"daily_cost_limit":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Daily Cost Limit"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"clear":{"type":"boolean","title":"Clear","description":"Clear all overrides for this agent (fall back to defaults)","default":false}},"type":"object","title":"AgentLimitsUpdate"},"AgentResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","title":"Created At"},"config":{"$ref":"#/components/schemas/AgentConfig-Output"}},"type":"object","required":["id","name","description","status","created_at","config"],"title":"AgentResponse","description":"Agent response model"},"AgentRollbackRequest":{"properties":{"notes":{"type":"string","title":"Notes","default":"Rolled back to previous version"}},"type":"object","title":"AgentRollbackRequest","description":"Request to rollback to a specific version"},"AgentTaskRequest":{"properties":{"task":{"type":"string","title":"Task"},"workspace_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Path"},"files":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Files"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"}},"type":"object","required":["task"],"title":"AgentTaskRequest","description":"Request agent to perform a task"},"AgentTaskResponse":{"properties":{"task_id":{"type":"string","title":"Task Id"},"agent_id":{"type":"string","title":"Agent Id"},"status":{"type":"string","title":"Status"},"result":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Result"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["task_id","agent_id","status","created_at"],"title":"AgentTaskResponse","description":"Response from agent task"},"AgentUpdate":{"properties":{"config":{"anyOf":[{"$ref":"#/components/schemas/weavr__routers__agents__AgentConfig"},{"type":"null"}]},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},"type":"object","title":"AgentUpdate","description":"Request to update an agent"},"AgentVersionResponse":{"properties":{"version":{"type":"integer","title":"Version"},"agent_id":{"type":"string","title":"Agent Id"},"config":{"$ref":"#/components/schemas/AgentConfig-Output"},"notes":{"type":"string","title":"Notes","default":""},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["version","agent_id","config","created_at"],"title":"AgentVersionResponse","description":"Agent version snapshot"},"ApiKeyCreate":{"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name","description":"What this key is for, e.g. 'Slack - Plum Good Marketing'"},"role":{"type":"string","title":"Role","description":"One of: operator, agent_builder","default":"operator"}},"type":"object","required":["name"],"title":"ApiKeyCreate"},"AskRequest":{"properties":{"question":{"type":"string","maxLength":4000,"minLength":1,"title":"Question"},"history":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array","maxItems":12},{"type":"null"}],"title":"History","description":"Prior turns [{role, text}] so the guide keeps context"}},"type":"object","required":["question"],"title":"AskRequest"},"Attachment":{"properties":{"filename":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Filename","description":"Original file name"},"mime_type":{"type":"string","title":"Mime Type","description":"File MIME type, e.g. application/pdf or image/png"},"data":{"type":"string","title":"Data","description":"Base64-encoded file contents"}},"type":"object","required":["mime_type","data"],"title":"Attachment","description":"A user-supplied supporting file (image or PDF) forwarded to the\nmultimodal model as a native content block."},"BackupRequest":{"properties":{"destination_type":{"type":"string","title":"Destination Type"},"connection_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connection Id"},"credentials":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Credentials"}},"type":"object","required":["destination_type"],"title":"BackupRequest"},"BindingCreate":{"properties":{"team_id":{"type":"string","title":"Team Id","description":"Slack workspace id, e.g. T0BTTN2NY1Z"},"channel_id":{"type":"string","title":"Channel Id","description":"Slack channel id, or '*' for the workspace default"},"target_type":{"type":"string","title":"Target Type","description":"'agent' or 'workflow'","default":"agent"},"target_id":{"type":"string","title":"Target Id","description":"The Weavr agent or workflow id"},"channel_name":{"type":"string","title":"Channel Name","description":"For display, e.g. 'nimbus'","default":""}},"type":"object","required":["team_id","channel_id","target_id"],"title":"BindingCreate"},"BuildRequest":{"properties":{"request_id":{"type":"string","maxLength":100,"minLength":1,"title":"Request Id"},"title":{"type":"string","maxLength":300,"minLength":5,"title":"Title"},"description":{"type":"string","maxLength":20000,"minLength":20,"title":"Description"},"requested_by":{"type":"string","maxLength":200,"title":"Requested By"},"approved_by":{"type":"string","maxLength":200,"title":"Approved By","description":"The super_admin/owner who approved this request"},"source":{"type":"string","title":"Source","default":"kyni"}},"type":"object","required":["request_id","title","description","requested_by","approved_by"],"title":"BuildRequest"},"BuilderAttachment":{"properties":{"filename":{"type":"string","maxLength":255,"title":"Filename"},"mime_type":{"type":"string","maxLength":100,"title":"Mime Type"},"data":{"type":"string","title":"Data","description":"Base64-encoded file contents"}},"type":"object","required":["filename","mime_type","data"],"title":"BuilderAttachment","description":"A reference file (image or PDF) attached for planning context."},"ChannelCreate":{"properties":{"name":{"type":"string","maxLength":80,"minLength":1,"title":"Name"},"is_private":{"type":"boolean","title":"Is Private","default":false},"team_id":{"type":"string","title":"Team Id","default":""}},"type":"object","required":["name"],"title":"ChannelCreate"},"CompleteSetupRequest":{"properties":{"providers":{"anyOf":[{"$ref":"#/components/schemas/ProviderConfig"},{"type":"null"}]},"general":{"$ref":"#/components/schemas/GeneralConfig"},"agents":{"$ref":"#/components/schemas/weavr__routers__setup__AgentConfig"}},"type":"object","required":["general","agents"],"title":"CompleteSetupRequest","description":"Complete setup request. providers may be omitted - instances whose\nkeys are Powdr-managed save general/agent settings without touching\nprovider configuration."},"ConnectionConfig":{"properties":{"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"},"description":{"type":"string","title":"Description","default":""},"auth_type":{"type":"string","title":"Auth Type","default":"api_key"},"credentials":{"additionalProperties":{"type":"string"},"type":"object","title":"Credentials"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"linked_agent_ids":{"items":{"type":"string"},"type":"array","title":"Linked Agent Ids"}},"type":"object","required":["name","type"],"title":"ConnectionConfig","description":"Shared reusable connection definition."},"ConnectionCreate":{"properties":{"config":{"$ref":"#/components/schemas/ConnectionConfig"}},"type":"object","required":["config"],"title":"ConnectionCreate","description":"Request to create a shared connection."},"ConnectionResponse":{"properties":{"id":{"type":"string","title":"Id"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"},"config":{"$ref":"#/components/schemas/ConnectionConfig"}},"type":"object","required":["id","created_at","updated_at","config"],"title":"ConnectionResponse","description":"Connection response model (credentials are redacted)."},"ConnectionValidationRequest":{"properties":{"config":{"$ref":"#/components/schemas/ConnectionConfig"}},"type":"object","required":["config"],"title":"ConnectionValidationRequest","description":"Request to validate a shared connection config."},"ConnectorDefinition":{"properties":{"type":{"type":"string","title":"Type"},"display_name":{"type":"string","title":"Display Name"},"description":{"type":"string","title":"Description","default":""},"category":{"type":"string","title":"Category","default":"Custom"},"auth_types":{"items":{"type":"string"},"type":"array","title":"Auth Types"},"required_fields":{"items":{"type":"string"},"type":"array","title":"Required Fields"},"optional_fields":{"items":{"type":"string"},"type":"array","title":"Optional Fields"},"docs_url":{"type":"string","title":"Docs Url","default":""},"test_request":{"anyOf":[{"$ref":"#/components/schemas/ConnectorTestRequest"},{"type":"null"}]},"intro":{"type":"string","title":"Intro","default":""},"field_help":{"additionalProperties":{"type":"string"},"type":"object","title":"Field Help"}},"type":"object","required":["type","display_name"],"title":"ConnectorDefinition","description":"A connector type built in the Connection Builder."},"ConnectorDesignRequest":{"properties":{"description":{"type":"string","maxLength":500,"minLength":2,"title":"Description","description":"The platform name, or a sentence about it"}},"type":"object","required":["description"],"title":"ConnectorDesignRequest","description":"Ask the platform to design a connector for a system we don't have yet."},"ConnectorTestRequest":{"properties":{"method":{"type":"string","title":"Method","default":"GET"},"url":{"type":"string","title":"Url"},"headers":{"additionalProperties":{"type":"string"},"type":"object","title":"Headers"},"body":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Body"},"success_statuses":{"items":{"type":"integer"},"type":"array","title":"Success Statuses"}},"type":"object","required":["url"],"title":"ConnectorTestRequest","description":"Templated HTTP request used to test connections of a custom type.\n{field} placeholders are filled from the tenant's stored credentials."},"ConversationTurn":{"properties":{"role":{"type":"string","pattern":"^(user|assistant)$","title":"Role"},"content":{"type":"string","maxLength":8000,"title":"Content"}},"type":"object","required":["role","content"],"title":"ConversationTurn"},"CostLimitRequest":{"properties":{"cost_limit_usd":{"anyOf":[{"type":"number","maximum":10000.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Cost Limit Usd"}},"type":"object","title":"CostLimitRequest"},"CreateRequest":{"properties":{"name":{"type":"string","maxLength":120,"minLength":2,"title":"Name"},"description":{"type":"string","maxLength":1000,"title":"Description","default":""},"system_prompt":{"type":"string","minLength":20,"title":"System Prompt"},"tools":{"items":{"type":"string"},"type":"array","title":"Tools"},"connection_ids":{"items":{"type":"string"},"type":"array","title":"Connection Ids"},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider"},"model_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Name"},"goal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Goal"}},"type":"object","required":["name","system_prompt"],"title":"CreateRequest"},"DeployRequest":{"properties":{"target":{"type":"string","title":"Target"},"confirm":{"type":"boolean","title":"Confirm","default":false}},"type":"object","required":["target"],"title":"DeployRequest"},"DeploymentActionRequest":{"properties":{"action":{"type":"string","title":"Action"},"target":{"type":"string","title":"Target"},"image_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Tag"},"confirm":{"type":"boolean","title":"Confirm","default":false}},"type":"object","required":["action","target"],"title":"DeploymentActionRequest","description":"Direct action execution (no LLM needed)"},"DeploymentChatRequest":{"properties":{"message":{"type":"string","title":"Message"},"context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context"}},"type":"object","required":["message"],"title":"DeploymentChatRequest"},"DetailedHealthResponse":{"properties":{"status":{"type":"string","title":"Status"},"timestamp":{"type":"string","title":"Timestamp"},"version":{"type":"string","title":"Version"},"build":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Build"},"services":{"additionalProperties":{"type":"string"},"type":"object","title":"Services"},"gpu_available":{"type":"boolean","title":"Gpu Available"},"gpu_count":{"type":"integer","title":"Gpu Count"},"memory_usage_mb":{"type":"number","title":"Memory Usage Mb"},"uptime_seconds":{"type":"number","title":"Uptime Seconds"}},"type":"object","required":["status","timestamp","version","services","gpu_available","gpu_count","memory_usage_mb","uptime_seconds"],"title":"DetailedHealthResponse"},"DomainRequest":{"properties":{"domain":{"type":"string","maxLength":253,"minLength":3,"title":"Domain"}},"type":"object","required":["domain"],"title":"DomainRequest"},"FileInfo":{"properties":{"path":{"type":"string","title":"Path"},"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"},"size":{"type":"integer","title":"Size"},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"last_modified":{"type":"string","title":"Last Modified"}},"type":"object","required":["path","name","type","size","last_modified"],"title":"FileInfo","description":"File information"},"GeneralConfig":{"properties":{"instance_name":{"type":"string","title":"Instance Name","default":"Weavr"},"admin_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Admin Email"},"log_level":{"type":"string","title":"Log Level","default":"INFO"},"cors_origins":{"type":"string","title":"Cors Origins","default":""},"display_timezone":{"type":"string","title":"Display Timezone","default":"America/New_York"}},"type":"object","title":"GeneralConfig","description":"General configuration"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status"},"timestamp":{"type":"string","title":"Timestamp"},"version":{"type":"string","title":"Version"},"build":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Build"},"services":{"additionalProperties":{"type":"string"},"type":"object","title":"Services"}},"type":"object","required":["status","timestamp","version","services"],"title":"HealthResponse"},"ImportRequest":{"properties":{"payload":{"additionalProperties":true,"type":"object","title":"Payload"},"dry_run":{"type":"boolean","title":"Dry Run","default":false},"connection_map":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Connection Map"}},"type":"object","required":["payload"],"title":"ImportRequest"},"IntakeBatch":{"properties":{"events":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Events"},"logs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Logs"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source"},"instance_id":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Instance Id"}},"type":"object","title":"IntakeBatch","description":"One batch of events from an external system. `logs` is accepted as an\nalias for `events` (the Kyni log monitor's original field name)."},"InviteRequest":{"properties":{"email":{"type":"string","maxLength":320,"minLength":3,"title":"Email"},"role":{"type":"string","title":"Role","default":"operator"}},"type":"object","required":["email"],"title":"InviteRequest"},"InvokeRequest":{"properties":{"message":{"type":"string","maxLength":32000,"minLength":1,"title":"Message","description":"What you want the agent to do"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context","description":"Structured context from your system; the agent sees it alongside the message"},"callback_url":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Callback Url","description":"POST the result here instead of holding the request open"},"timeout_seconds":{"type":"integer","maximum":240.0,"minimum":5.0,"title":"Timeout Seconds","default":90},"source":{"type":"string","maxLength":60,"title":"Source","description":"Which system is calling, for the activity feed","default":"external"}},"type":"object","required":["message"],"title":"InvokeRequest"},"LimitsUpdate":{"properties":{"platform":{"anyOf":[{"$ref":"#/components/schemas/PlatformLimits"},{"type":"null"}]},"agent_defaults":{"anyOf":[{"$ref":"#/components/schemas/AgentDefaultLimits"},{"type":"null"}]},"pricing":{"anyOf":[{"additionalProperties":{"items":{},"type":"array"},"type":"object"},{"type":"null"}],"title":"Pricing","description":"Overrides: {'provider/model': [input_per_M, output_per_M]}"}},"type":"object","title":"LimitsUpdate"},"MemberStatusRequest":{"properties":{"disabled":{"type":"boolean","title":"Disabled"}},"type":"object","required":["disabled"],"title":"MemberStatusRequest"},"ModelInfo":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"provider":{"type":"string","title":"Provider"},"description":{"type":"string","title":"Description"},"context_length":{"type":"integer","title":"Context Length"},"capabilities":{"items":{"type":"string"},"type":"array","title":"Capabilities"},"available":{"type":"boolean","title":"Available","default":true}},"type":"object","required":["id","name","provider","description","context_length","capabilities"],"title":"ModelInfo","description":"Model information"},"ModelListResponse":{"properties":{"models":{"items":{"$ref":"#/components/schemas/ModelInfo"},"type":"array","title":"Models"},"default_model":{"type":"string","title":"Default Model"},"default_provider":{"type":"string","title":"Default Provider"}},"type":"object","required":["models","default_model","default_provider"],"title":"ModelListResponse","description":"Response containing list of models"},"ModelTestRequest":{"properties":{"prompt":{"type":"string","title":"Prompt"},"temperature":{"type":"number","title":"Temperature","default":0.7},"max_tokens":{"type":"integer","title":"Max Tokens","default":256}},"type":"object","required":["prompt"],"title":"ModelTestRequest","description":"Request to test a model"},"ModelTestResponse":{"properties":{"model_id":{"type":"string","title":"Model Id"},"response":{"type":"string","title":"Response"},"tokens_used":{"type":"integer","title":"Tokens Used"},"latency_ms":{"type":"number","title":"Latency Ms"}},"type":"object","required":["model_id","response","tokens_used","latency_ms"],"title":"ModelTestResponse","description":"Response from model test"},"OTPRequest":{"properties":{"email":{"type":"string","maxLength":320,"minLength":3,"title":"Email"}},"type":"object","required":["email"],"title":"OTPRequest"},"OTPVerify":{"properties":{"email":{"type":"string","maxLength":320,"minLength":3,"title":"Email"},"code":{"type":"string","maxLength":10,"minLength":4,"title":"Code"}},"type":"object","required":["email","code"],"title":"OTPVerify"},"PlanRequest":{"properties":{"goal":{"type":"string","maxLength":4000,"minLength":5,"title":"Goal","description":"Plain-English description of what the agent should do (or a refinement of the running conversation)"},"role":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Role","description":"The requester's role, e.g. 'Director of Sales'"},"conversation":{"anyOf":[{"items":{"$ref":"#/components/schemas/ConversationTurn"},"type":"array","maxItems":20},{"type":"null"}],"title":"Conversation","description":"Prior exchange with the builder, so the plan is refined conversationally instead of restarted"},"attachments":{"anyOf":[{"items":{"$ref":"#/components/schemas/BuilderAttachment"},"type":"array","maxItems":8},{"type":"null"}],"title":"Attachments","description":"Reference files whose content should inform the agent's instructions"},"context_urls":{"anyOf":[{"items":{"type":"string"},"type":"array","maxItems":5},{"type":"null"}],"title":"Context Urls","description":"Web pages whose content should inform the agent's instructions"}},"type":"object","required":["goal"],"title":"PlanRequest"},"PlatformLimits":{"properties":{"daily_cost_limit":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Daily Cost Limit","description":"Max platform-wide USD per day (null = unlimited)"},"monthly_cost_limit":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Monthly Cost Limit","description":"Max platform-wide USD per month (null = unlimited)"}},"type":"object","title":"PlatformLimits"},"PlatformRoleRequest":{"properties":{"email":{"type":"string","title":"Email"},"platform_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platform Role"}},"type":"object","required":["email"],"title":"PlatformRoleRequest"},"PresentationEditRequest":{"properties":{"html_content":{"type":"string","minLength":50,"title":"Html Content","description":"Current HTML content of the presentation"},"edit_prompt":{"type":"string","maxLength":5000,"minLength":5,"title":"Edit Prompt","description":"Description of changes to make"},"source":{"type":"string","title":"Source","description":"Source system making the request","default":"kyni"},"requested_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requested By","description":"Email of requesting user"}},"type":"object","required":["html_content","edit_prompt"],"title":"PresentationEditRequest","description":"Request to edit an existing presentation"},"PresentationGenerateRequest":{"properties":{"prompt":{"type":"string","maxLength":10000,"minLength":10,"title":"Prompt","description":"Description of the presentation to generate"},"title":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Title","description":"Optional title for the presentation"},"style":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Style","description":"Style hint: project_plan, sales_deck, training, executive_briefing, proposal"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context","description":"Additional context (templates, company info, etc.)"},"attachments":{"anyOf":[{"items":{"$ref":"#/components/schemas/Attachment"},"type":"array","maxItems":8},{"type":"null"}],"title":"Attachments","description":"Supporting files (PDF or image) whose content should inform the presentation"},"source":{"type":"string","title":"Source","description":"Source system making the request","default":"kyni"},"requested_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requested By","description":"Email of requesting user"}},"type":"object","required":["prompt"],"title":"PresentationGenerateRequest","description":"Request to generate a new presentation"},"PresentationResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"html_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Html Content"},"request_id":{"type":"string","title":"Request Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["success","request_id"],"title":"PresentationResponse","description":"Response containing generated/edited presentation"},"ProjectPlanEditRequest":{"properties":{"html_content":{"type":"string","minLength":50,"title":"Html Content","description":"Current HTML content of the project plan"},"edit_prompt":{"type":"string","maxLength":10000,"minLength":5,"title":"Edit Prompt","description":"Description of changes to make"},"current_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Date","description":"Caller's current date (YYYY-MM-DD)"},"source":{"type":"string","title":"Source","description":"Source system making the request","default":"kyni"},"requested_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requested By","description":"Email of requesting user"}},"type":"object","required":["html_content","edit_prompt"],"title":"ProjectPlanEditRequest","description":"Request to edit an existing project plan"},"ProjectPlanGenerateRequest":{"properties":{"prompt":{"type":"string","maxLength":50000,"minLength":10,"title":"Prompt","description":"Description of the project to plan (supports full conversation/meeting summaries)"},"title":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Title","description":"Optional title for the project"},"client_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Client Name","description":"Client/organization name"},"start_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Start Date","description":"Project start date (YYYY-MM-DD)"},"end_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"End Date","description":"Target end date (YYYY-MM-DD)"},"estimated_hours":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Estimated Hours","description":"Estimated total hours"},"project_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Type","description":"Type hint: migration, implementation, integration, infrastructure, security"},"current_date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Date","description":"Caller's current date (YYYY-MM-DD) - anchors all generated schedule dates"},"attachments":{"anyOf":[{"items":{"$ref":"#/components/schemas/Attachment"},"type":"array","maxItems":8},{"type":"null"}],"title":"Attachments","description":"Supporting files (PDF or image) whose content should inform the project plan"},"source":{"type":"string","title":"Source","description":"Source system making the request","default":"kyni"},"requested_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requested By","description":"Email of requesting user"}},"type":"object","required":["prompt"],"title":"ProjectPlanGenerateRequest","description":"Request to generate a new project plan"},"ProjectPlanResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"html_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Html Content"},"request_id":{"type":"string","title":"Request Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["success","request_id"],"title":"ProjectPlanResponse","description":"Response containing generated project plan"},"PromoCodeCreateRequest":{"properties":{"code":{"anyOf":[{"type":"string","maxLength":40,"minLength":4},{"type":"null"}],"title":"Code"},"trial_cost_limit_usd":{"type":"number","maximum":500.0,"exclusiveMinimum":0.0,"title":"Trial Cost Limit Usd","default":25.0},"trial_days":{"type":"integer","maximum":90.0,"minimum":1.0,"title":"Trial Days","default":14},"max_redemptions":{"type":"integer","maximum":1000.0,"minimum":1.0,"title":"Max Redemptions","default":1},"description":{"type":"string","maxLength":200,"title":"Description","default":""}},"type":"object","title":"PromoCodeCreateRequest"},"ProviderConfig":{"properties":{"nvidia_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nvidia Api Key"},"openai_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Openai Api Key"},"anthropic_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Anthropic Api Key"},"groq_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Groq Api Key"},"gemini_api_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gemini Api Key"},"default_provider":{"type":"string","title":"Default Provider","default":"nvidia"}},"type":"object","title":"ProviderConfig","description":"AI Provider configuration"},"RedeemRequest":{"properties":{"company":{"type":"string","maxLength":200,"minLength":1,"title":"Company"},"code":{"type":"string","maxLength":40,"minLength":4,"title":"Code"}},"type":"object","required":["company","code"],"title":"RedeemRequest"},"RoleRequest":{"properties":{"role":{"type":"string","title":"Role"}},"type":"object","required":["role"],"title":"RoleRequest"},"RollbackRequest":{"properties":{"target":{"type":"string","title":"Target"},"image_tag":{"type":"string","title":"Image Tag"},"confirm":{"type":"boolean","title":"Confirm","default":false}},"type":"object","required":["target","image_tag"],"title":"RollbackRequest"},"SSOConfigRequest":{"properties":{"provider":{"type":"string","title":"Provider"},"client_id":{"type":"string","maxLength":200,"minLength":1,"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Secret"},"ms_tenant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ms Tenant Id"},"enabled":{"type":"boolean","title":"Enabled","default":true}},"type":"object","required":["provider","client_id"],"title":"SSOConfigRequest"},"ScheduleCreateRequest":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"schedule_type":{"type":"string","title":"Schedule Type"},"run_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run At"},"interval_minutes":{"type":"integer","title":"Interval Minutes","default":60},"poll_interval_seconds":{"type":"integer","title":"Poll Interval Seconds","default":60},"inbox_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inbox Email"},"auto_start":{"type":"boolean","title":"Auto Start","default":true}},"type":"object","required":["agent_id","schedule_type"],"title":"ScheduleCreateRequest","description":"Request to create a schedule"},"ScheduleResponse":{"properties":{"id":{"type":"string","title":"Id"},"agent_id":{"type":"string","title":"Agent Id"},"schedule_type":{"type":"string","title":"Schedule Type"},"status":{"type":"string","title":"Status"},"interval_minutes":{"type":"integer","title":"Interval Minutes","default":60},"poll_interval_seconds":{"type":"integer","title":"Poll Interval Seconds","default":60},"inbox_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inbox Email"},"last_run":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Run"},"next_run":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Run"},"run_count":{"type":"integer","title":"Run Count","default":0},"error_count":{"type":"integer","title":"Error Count","default":0},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","agent_id","schedule_type","status","created_at"],"title":"ScheduleResponse","description":"Schedule response model"},"ScheduleUpdateRequest":{"properties":{"interval_minutes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Interval Minutes"},"poll_interval_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Poll Interval Seconds"},"inbox_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Inbox Email"}},"type":"object","title":"ScheduleUpdateRequest","description":"Request to update a schedule"},"SetupStatus":{"properties":{"setup_complete":{"type":"boolean","title":"Setup Complete"},"setup_required":{"type":"boolean","title":"Setup Required"},"current_step":{"type":"integer","title":"Current Step"},"total_steps":{"type":"integer","title":"Total Steps"},"nvidia_configured":{"type":"boolean","title":"Nvidia Configured"},"openai_configured":{"type":"boolean","title":"Openai Configured"},"anthropic_configured":{"type":"boolean","title":"Anthropic Configured"},"groq_configured":{"type":"boolean","title":"Groq Configured"},"gemini_configured":{"type":"boolean","title":"Gemini Configured"},"database_configured":{"type":"boolean","title":"Database Configured"},"has_any_provider":{"type":"boolean","title":"Has Any Provider"},"provider_keys_editable":{"type":"boolean","title":"Provider Keys Editable"}},"type":"object","required":["setup_complete","setup_required","current_step","total_steps","nvidia_configured","openai_configured","anthropic_configured","groq_configured","gemini_configured","database_configured","has_any_provider","provider_keys_editable"],"title":"SetupStatus","description":"Setup status response"},"SignupRequest":{"properties":{"company":{"type":"string","maxLength":200,"minLength":1,"title":"Company"},"tier":{"type":"string","title":"Tier"},"trial":{"type":"boolean","title":"Trial","default":false}},"type":"object","required":["company","tier"],"title":"SignupRequest"},"TaskCreate":{"properties":{"name":{"type":"string","title":"Name"},"task_type":{"type":"string","title":"Task Type"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"workspace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Id"},"input_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input Prompt"},"target_files":{"items":{"type":"string"},"type":"array","title":"Target Files"},"parameters":{"additionalProperties":true,"type":"object","title":"Parameters"},"priority":{"type":"integer","title":"Priority","default":5}},"type":"object","required":["name","task_type"],"title":"TaskCreate","description":"Request to create a new task"},"TaskListResponse":{"properties":{"tasks":{"items":{"$ref":"#/components/schemas/TaskResponse"},"type":"array","title":"Tasks"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["tasks","total","page","page_size"],"title":"TaskListResponse","description":"Response containing list of tasks"},"TaskLogEntry":{"properties":{"timestamp":{"type":"string","title":"Timestamp"},"level":{"type":"string","title":"Level"},"message":{"type":"string","title":"Message"},"data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Data"}},"type":"object","required":["timestamp","level","message"],"title":"TaskLogEntry","description":"Task log entry"},"TaskResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"task_type":{"type":"string","title":"Task Type"},"status":{"type":"string","title":"Status"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"workspace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Id"},"progress":{"type":"number","title":"Progress","default":0.0},"result":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Result"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"created_at":{"type":"string","title":"Created At"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"}},"type":"object","required":["id","name","task_type","status","created_at"],"title":"TaskResponse","description":"Task response model"},"TeamsBindingRequest":{"properties":{"channel":{"type":"string","maxLength":200,"minLength":1,"title":"Channel","description":"Channel name as the flow will send it, or * for the default"},"target_type":{"type":"string","title":"Target Type","description":"agent | workflow"},"target_id":{"type":"string","minLength":1,"title":"Target Id"}},"type":"object","required":["channel","target_type","target_id"],"title":"TeamsBindingRequest"},"TeamsMessage":{"properties":{"message":{"type":"string","maxLength":32000,"minLength":1,"title":"Message"},"channel":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Channel","description":"The channel name bound in Weavr (or * for the default)"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id","description":"The Weavr agent to run (legacy - prefer a binding)"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id","description":"...or the workflow to run (legacy - prefer a binding)"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id","description":"Teams conversation/thread id"},"channel_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Channel Name"},"user_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"User Name"},"team_name":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Team Name"}},"type":"object","required":["message"],"title":"TeamsMessage","description":"What the Power Automate flow sends.\n\nEvery field except `message` has a fallback, because the Teams trigger's\noutput shape differs between a channel message and a chat message, and a\nnon-technical user building this from a template should not have to know\nwhich one they picked."},"TestProviderRequest":{"properties":{"provider":{"type":"string","title":"Provider"},"api_key":{"type":"string","title":"Api Key"}},"type":"object","required":["provider","api_key"],"title":"TestProviderRequest","description":"Test provider request"},"TierChangeRequest":{"properties":{"tier":{"type":"string","title":"Tier"}},"type":"object","required":["tier"],"title":"TierChangeRequest"},"TierPricingRequest":{"properties":{"monthly_price_usd":{"anyOf":[{"type":"number","maximum":100000.0,"exclusiveMinimum":0.0},{"type":"null"}],"title":"Monthly Price Usd"},"cost_ceiling_usd":{"anyOf":[{"type":"number","maximum":100000.0,"minimum":0.0},{"type":"null"}],"title":"Cost Ceiling Usd"},"monthly_token_limit":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Monthly Token Limit"}},"type":"object","title":"TierPricingRequest"},"TrialExtendRequest":{"properties":{"extend_days":{"type":"integer","maximum":90.0,"minimum":1.0,"title":"Extend Days"}},"type":"object","required":["extend_days"],"title":"TrialExtendRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"WelcomeResponse":{"properties":{"message":{"type":"string","title":"Message"},"version":{"type":"string","title":"Version"},"status":{"type":"string","title":"Status"},"setup_complete":{"type":"boolean","title":"Setup Complete"},"endpoints":{"additionalProperties":{"type":"string"},"type":"object","title":"Endpoints"}},"type":"object","required":["message","version","status","setup_complete","endpoints"],"title":"WelcomeResponse"},"WorkflowController":{"properties":{"enabled":{"type":"boolean","title":"Enabled","default":false},"job_description":{"type":"string","title":"Job Description","default":""},"model_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Provider"},"model_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Name"},"temperature":{"type":"number","title":"Temperature","default":0.3},"max_tokens":{"type":"integer","title":"Max Tokens","default":8192}},"type":"object","title":"WorkflowController","description":"A manager agent that orchestrates the workflow's member agents based on\nthe request, instead of running the fixed DAG. Opt-in per workflow."},"WorkflowCreateFromPlanRequest":{"properties":{"name":{"type":"string","maxLength":120,"minLength":2,"title":"Name"},"description":{"type":"string","maxLength":1000,"title":"Description","default":""},"steps":{"items":{"$ref":"#/components/schemas/WorkflowCreateStep"},"type":"array","maxItems":12,"minItems":1,"title":"Steps"}},"type":"object","required":["name","steps"],"title":"WorkflowCreateFromPlanRequest"},"WorkflowCreateRequest":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description","default":""},"entry_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entry Node Id"},"nodes":{"items":{"$ref":"#/components/schemas/WorkflowNode"},"type":"array","title":"Nodes"},"edges":{"items":{"$ref":"#/components/schemas/WorkflowEdge"},"type":"array","title":"Edges"},"destination":{"anyOf":[{"$ref":"#/components/schemas/WorkflowDestination"},{"type":"null"}]},"controller":{"anyOf":[{"$ref":"#/components/schemas/WorkflowController"},{"type":"null"}]},"trigger":{"anyOf":[{"$ref":"#/components/schemas/WorkflowTrigger"},{"type":"null"}]}},"type":"object","required":["name"],"title":"WorkflowCreateRequest","description":"Request body for creating or updating a workflow."},"WorkflowCreateStep":{"properties":{"label":{"type":"string","maxLength":120,"minLength":1,"title":"Label"},"handoff_prompt":{"type":"string","maxLength":4000,"title":"Handoff Prompt","default":""},"depends_on":{"items":{"type":"string"},"type":"array","title":"Depends On","description":"Labels of upstream steps; empty = receives the Client Ask"},"agent":{"$ref":"#/components/schemas/WorkflowStepAgent"}},"type":"object","required":["label","agent"],"title":"WorkflowCreateStep"},"WorkflowDestination":{"properties":{"formats":{"items":{"type":"string"},"type":"array","title":"Formats"},"connection_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connection Id"},"instruction":{"type":"string","title":"Instruction","default":""}},"type":"object","title":"WorkflowDestination","description":"Where a flow's results go beyond the Weavr results panel:\nfile deliverables (html/pdf/csv download links) and/or a push into a\nconnected system with a plain-language delivery instruction."},"WorkflowEdge":{"properties":{"id":{"type":"string","title":"Id"},"source":{"type":"string","title":"Source"},"target":{"type":"string","title":"Target"},"handoff_prompt":{"type":"string","title":"Handoff Prompt","default":"Continue this work using the previous agent output as context."},"order":{"type":"integer","title":"Order","default":0}},"type":"object","required":["id","source","target"],"title":"WorkflowEdge","description":"Directed handoff between two workflow nodes."},"WorkflowNode":{"properties":{"id":{"type":"string","title":"Id"},"agent_id":{"type":"string","title":"Agent Id"},"label":{"type":"string","title":"Label"},"x":{"type":"number","title":"X","default":0},"y":{"type":"number","title":"Y","default":0}},"type":"object","required":["id","agent_id","label"],"title":"WorkflowNode","description":"Workflow node that references an agent."},"WorkflowPlanRequest":{"properties":{"goal":{"type":"string","maxLength":4000,"minLength":15,"title":"Goal"},"role":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Role"}},"type":"object","required":["goal"],"title":"WorkflowPlanRequest","description":"Plain-English description of a multi-step PROCESS. The planner decides\nthe steps, which existing agents to reuse, which new agents to design,\nand the hand-off contract between them."},"WorkflowResponse":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description","default":""},"entry_node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Entry Node Id"},"nodes":{"items":{"$ref":"#/components/schemas/WorkflowNode"},"type":"array","title":"Nodes"},"edges":{"items":{"$ref":"#/components/schemas/WorkflowEdge"},"type":"array","title":"Edges"},"destination":{"anyOf":[{"$ref":"#/components/schemas/WorkflowDestination"},{"type":"null"}]},"controller":{"anyOf":[{"$ref":"#/components/schemas/WorkflowController"},{"type":"null"}]},"trigger":{"anyOf":[{"$ref":"#/components/schemas/WorkflowTrigger"},{"type":"null"}]},"id":{"type":"string","title":"Id"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"}},"type":"object","required":["name","id","created_at","updated_at"],"title":"WorkflowResponse","description":"Workflow persistence model."},"WorkflowRunRequest":{"properties":{"message":{"type":"string","title":"Message"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"}},"type":"object","required":["message"],"title":"WorkflowRunRequest","description":"Request body for running a workflow."},"WorkflowRunResponse":{"properties":{"workflow_id":{"type":"string","title":"Workflow Id"},"run_id":{"type":"string","title":"Run Id","default":""},"status":{"type":"string","title":"Status"},"started_at":{"type":"string","title":"Started At"},"completed_at":{"type":"string","title":"Completed At"},"final_response":{"type":"string","title":"Final Response"},"steps":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Steps"},"deliverables":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Deliverables"},"delivery":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Delivery"}},"type":"object","required":["workflow_id","status","started_at","completed_at","final_response"],"title":"WorkflowRunResponse","description":"Response from a workflow run. When started in the background this comes\nback immediately with status 'queued' and the run_id to follow."},"WorkflowStepAgent":{"properties":{"existing_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Existing Agent Id"},"name":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Description"},"system_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Prompt"},"tools":{"items":{"type":"string"},"type":"array","title":"Tools"}},"type":"object","title":"WorkflowStepAgent","description":"One step's agent: either an existing agent id, or a full design for a\nnew agent the wizard will create (runtime = platform default model)."},"WorkflowTrigger":{"properties":{"modes":{"items":{"type":"string"},"type":"array","title":"Modes"},"app_connection_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"App Connection Id"},"app_event":{"type":"string","title":"App Event","default":""},"schedule":{"type":"string","title":"Schedule","default":""},"notes":{"type":"string","title":"Notes","default":""}},"type":"object","title":"WorkflowTrigger","description":"How this flow gets started - the counterpart to WorkflowDestination.\n\nA flow can be reached several ways at once, so `modes` is a list:\n  manual   - typed into the Run panel on the Workflow page\n  slack    - a Slack channel bound to this flow (see slack_bindings)\n  teams    - a Microsoft Teams channel posting to the trigger URL\n  app      - a connected business system (Kyni, Salesforce, HubSpot, Odoo,\n             NinjaOne...) calling the trigger URL on an event\n  schedule - an agent in this flow polls a connected system on a schedule\n  webhook  - any other system calling the trigger URL directly\n\nRecording the intent here is what lets the page show the exact setup for\neach entry point instead of a generic list, and lets a run report where it\ncame from. The trigger URL is always live once the flow is saved; these\nsettings document and configure which callers are meant to use it."},"WorkflowTriggerRequest":{"properties":{"message":{"type":"string","title":"Message","default":""},"ask":{"type":"string","title":"Ask","default":""},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"source":{"type":"string","title":"Source","default":""}},"type":"object","title":"WorkflowTriggerRequest","description":"External trigger payload. `message` (or `ask`) becomes the Client Ask\nthat every starting step receives; `context` is appended to it."},"WorkspaceAnalysis":{"properties":{"workspace_id":{"type":"string","title":"Workspace Id"},"analyzed_at":{"type":"string","title":"Analyzed At"},"file_count":{"type":"integer","title":"File Count"},"total_lines":{"type":"integer","title":"Total Lines"},"languages":{"additionalProperties":{"type":"integer"},"type":"object","title":"Languages"},"frameworks":{"items":{"type":"string"},"type":"array","title":"Frameworks"},"dependencies":{"items":{"type":"string"},"type":"array","title":"Dependencies"},"test_coverage":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Test Coverage"},"issues":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Issues"},"recommendations":{"items":{"type":"string"},"type":"array","title":"Recommendations"}},"type":"object","required":["workspace_id","analyzed_at","file_count","total_lines","languages","frameworks","dependencies"],"title":"WorkspaceAnalysis","description":"Workspace analysis results"},"WorkspaceCreate":{"properties":{"name":{"type":"string","title":"Name"},"path":{"type":"string","title":"Path"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"product":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product"},"repository_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repository Url"},"branch":{"type":"string","title":"Branch","default":"main"}},"type":"object","required":["name","path"],"title":"WorkspaceCreate","description":"Request to create/register a workspace"},"WorkspaceResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"path":{"type":"string","title":"Path"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"product":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product"},"repository_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repository Url"},"branch":{"type":"string","title":"Branch"},"status":{"type":"string","title":"Status"},"file_count":{"type":"integer","title":"File Count","default":0},"last_analyzed":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Analyzed"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","name","path","branch","status","created_at"],"title":"WorkspaceResponse","description":"Workspace response model"},"weavr__routers__agents__AgentConfig":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"model_provider":{"type":"string","title":"Model Provider"},"model_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model Name"},"temperature":{"type":"number","title":"Temperature","default":0.7},"max_tokens":{"type":"integer","title":"Max Tokens","default":4096},"tools":{"items":{"type":"string"},"type":"array","title":"Tools"},"connection_ids":{"items":{"type":"string"},"type":"array","title":"Connection Ids"},"tasks":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tasks","description":"Scheduled tasks for this agent"},"system_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Prompt"},"run_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Run Prompt","description":"Custom prompt to use when clicking Run"},"memory_enabled":{"type":"boolean","title":"Memory Enabled","default":true},"planning_depth":{"type":"integer","title":"Planning Depth","default":3},"settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Settings","description":"Agent-specific settings (e.g. mailbox_email, digest_recipients, digest_hour_utc for the Email Virtual Assistant)"}},"type":"object","required":["name","description"],"title":"AgentConfig","description":"Configuration for an agent"},"weavr__routers__setup__AgentConfig":{"properties":{"default_model":{"type":"string","title":"Default Model","default":"meta/llama3-70b-instruct"},"temperature":{"type":"number","title":"Temperature","default":0.7},"max_tokens":{"type":"integer","title":"Max Tokens","default":4096},"max_iterations":{"type":"integer","title":"Max Iterations","default":50},"timeout":{"type":"integer","title":"Timeout","default":300}},"type":"object","title":"AgentConfig","description":"Default agent configuration"}}}}