{"openapi":"3.1.0","info":{"title":"AgentStack Core API","description":"AgentStack is a Universal Processing System — a patented AI-first platform that replaces an entire backend stack and ships a ready admin UI. One ecosystem covers auth, payments, data, social, messenger, AI, knowledge base, game economy, RBAC and more — behind a single SDK, REST API and Model Context Protocol surface. You say the outcome. An AI with AgentStack connected hosts, configures, and reads the result back. Free tier from $0.\n\n**Two layers:** (1) **Universal access** — `POST /mcp` (`agentstack.execute`), `GET /mcp/actions`, `GET /mcp/discovery`; `GET/POST /api/dna/data` (8DNA key-value); `POST /api/commands/*` (Protein, same stack as MCP `commands.execute`). (2) **REST compatibility** — many `/api/*` routes for SPA, SDK, OAuth, webhooks, uploads. See repo doc `docs/API_CHANNELS_AND_PROTOCOLS.md`.\n\n**Channels:** Prefer MCP (`POST /mcp`, `GET /mcp/actions`), 8DNA (`/api/dna/data`), and Protein commands (`/api/commands/*`) for new integrations. REST paths below are the compatibility surface for SPA, SDKs, OAuth, and uploads. See `/api-docs`, `/mcp-docs`, and docs/API_CHANNELS_AND_PROTOCOLS.md.\n\n**Try it:** Use Authorize with `X-API-Key` or Bearer JWT. Changelog: docs/api/API_CHANGELOG.md.","version":"0.4.23","x-agentstack-version":"0.4.23","x-genetic-tag":"docs.api.specs.gen1","x-changelog-url":"docs/api/API_CHANGELOG.md","x-exported-at":"2026-10-21T00:37:09Z"},"paths":{"/api/billing/health":{"get":{"tags":["Billing"],"summary":"Billing Health","description":"Проверка здоровья billing service","operationId":"billing_health_api_billing_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/billing/overview":{"get":{"tags":["Billing"],"summary":"Get Billing Overview","description":"User billing overview for SPA Profile/Finance (session user_id; query user_id ignored).\n\nAgents: merged limits → MCP ``buffs.get_effective_limits``; finance hub KPIs →\n``finance.dashboard_bundle``. Not batched on cold shell (``X-No-Batch`` / defer policy).","operationId":"get_billing_overview_api_billing_overview_get","parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"User ID","title":"User Id"},"description":"User ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/billing/project/{project_id}":{"get":{"tags":["Billing"],"summary":"Get Project Billing","description":"Получить детальную информацию по билингу проекта","operationId":"get_project_billing_api_billing_project__project_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID (ignored, uses authenticated user)","title":"User Id"},"description":"User ID (ignored, uses authenticated user)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/billing/usage/{project_id}":{"get":{"tags":["Billing"],"summary":"Get Usage History","description":"Получить историю использования проекта","operationId":"get_usage_history_api_billing_usage__project_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID (ignored, uses authenticated user)","title":"User Id"},"description":"User ID (ignored, uses authenticated user)"},{"name":"period","in":"query","required":false,"schema":{"type":"string","description":"Period (7d, 30d, 90d)","default":"30d","title":"Period"},"description":"Period (7d, 30d, 90d)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/billing/limits":{"get":{"tags":["Billing"],"summary":"Get User Limits","description":"Получить лимиты пользователя","operationId":"get_user_limits_api_billing_limits_get","parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID (ignored, uses authenticated user)","title":"User Id"},"description":"User ID (ignored, uses authenticated user)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/billing/recommendations":{"get":{"tags":["Billing"],"summary":"Get Recommendations","description":"Получить рекомендации по оптимизации","operationId":"get_recommendations_api_billing_recommendations_get","parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"User ID (ignored, uses authenticated user)","title":"User Id"},"description":"User ID (ignored, uses authenticated user)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/billing/usage":{"get":{"tags":["Billing"],"summary":"Get Billing Usage","description":"Получить использование и overage (объединяет всё в одном)\nВозвращает: Logic Engine usage, Storage usage, купленные пакеты, текущие overage charges, статус overage","operationId":"get_billing_usage_api_billing_usage_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/billing/storage-package":{"post":{"tags":["Billing"],"summary":"Purchase Storage Package","description":"Купить storage пакет для проекта\nОбновляет project.data.config.storage","operationId":"purchase_storage_package_api_billing_storage_package_post","parameters":[{"name":"package_size","in":"query","required":true,"schema":{"type":"integer","description":"Package size in GB (5, 10, 25)","title":"Package Size"},"description":"Package size in GB (5, 10, 25)"},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/billing/logic-engine-package":{"post":{"tags":["Billing"],"summary":"Purchase Logic Engine Package","description":"Купить пакет расширения Logic Engine для пользователя\nОбновляет user.data.config.packages.logic_engine","operationId":"purchase_logic_engine_package_api_billing_logic_engine_package_post","parameters":[{"name":"package_size","in":"query","required":true,"schema":{"type":"string","description":"Package size: small, medium, large","title":"Package Size"},"description":"Package size: small, medium, large"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/billing/api-calls-package":{"post":{"tags":["Billing"],"summary":"Purchase Api Calls Package","description":"Купить пакет расширения API calls для пользователя\nОбновляет user.data.config.packages.api_calls","operationId":"purchase_api_calls_package_api_billing_api_calls_package_post","parameters":[{"name":"package_size","in":"query","required":true,"schema":{"type":"string","description":"Package size: small, medium, large","title":"Package Size"},"description":"Package size: small, medium, large"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/billing/overage":{"patch":{"tags":["Billing"],"summary":"Update Overage Config","description":"Включить/отключить overage для проекта\nОбновляет project.data.config.overage","operationId":"update_overage_config_api_billing_overage_patch","parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Enable/disable overage","title":"Enabled"},"description":"Enable/disable overage"},{"name":"logic_engine_enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Enable/disable Logic Engine overage","title":"Logic Engine Enabled"},"description":"Enable/disable Logic Engine overage"},{"name":"api_calls_enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Enable/disable API calls overage","title":"Api Calls Enabled"},"description":"Enable/disable API calls overage"},{"name":"storage_enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Enable/disable Storage overage","title":"Storage Enabled"},"description":"Enable/disable Storage overage"},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/mcp/":{"get":{"tags":["MCP"],"summary":"MCP root (use discovery/actions)","description":"Root endpoint for embedded MCP.\nReturns an SSE stream when the client asks for text/event-stream.\nStreamable HTTP (MCP-Protocol-Version or a Cursor user-agent) gets a\ncomment heartbeat only. ``event: endpoint`` stays for the legacy SSE\ntransport, which tells the client to open a second URL.\nReturns JSON for browsers and other clients.","operationId":"mcp_root_mcp__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Mcp Root Mcp  Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"},"post":{"tags":["MCP"],"summary":"Execute unified AgentStack batch (agentstack.execute)","description":"Unified MCP entrypoint.\nHandles both standard MCP JSON-RPC 2.0 (Cursor streamable-http) and batch format with steps.\n\n**Batch format (steps):**\n- `steps`: array of { id, action, params?, if? }. Params may use refs: {\"from\": \"stepId.result.field\"} or {\"from\": \"context.field\"}.\n- `context` (optional): object merged into request context for all steps. `project_id` and `user_id` override the session. `locale` and `client_locale` select this request's language and are not saved.\n  Use this to override project/user without changing API key. Example: {\"context\": {\"project_id\": 123, \"user_id\": 456}}.\n- If context.project_id or context.user_id is sent, they override session context; otherwise session (API key/JWT) is used.\n\n**Report (who got what, until when):** If any step is buffs.apply_buff or buffs.apply_temporary_effect and succeeds,\nthe response includes `applied_buffs_summary`: [{ buff_id, state, applied_at, expires_at, ... }] for buffs.apply_*,\nbuffs.grant_subscription, and buffs.grant_tenant_subscription. Otherwise collect\nthe same from step results manually (each step.result has applied_at, expires_at).","operationId":"agentstack_execute_mcp__post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Agentstack Execute Mcp  Post"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"universal"}},"/mcp/tools":{"get":{"tags":["MCP"],"summary":"MCP tools list (single agentstack.execute entry)","description":"Scanner compat: one tool row; per-action describe at GET /mcp/tools/{name} or /mcp/actions/{name}.","operationId":"list_tools_mcp_tools_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Tools Mcp Tools Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"},"post":{"tags":["MCP"],"summary":"MCP-compatible JSON-RPC on /mcp/tools","description":"One POST /mcp/tools.\n\nJSON-RPC uses the same handler as POST /mcp (tools/list, tools/call, errors).\nA body that is not JSON-RPC is a scanner probe and returns the tool list.","operationId":"agentstack_execute_compat_tools_mcp_tools_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"title":"Response Agentstack Execute Compat Tools Mcp Tools Post"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"universal"}},"/mcp/actions":{"get":{"tags":["MCP"],"summary":"Action catalog for agentstack.execute (canonical MCP action ids)","description":"Return all available MCP tool actions grouped by domain.\nThis is primarily for AI/tooling discovery of valid `action` values.\nSupports ``If-None-Match`` and ``?since_etag=`` against the catalog ETag.\nWhen ``?since_etag=<stale>&delta=1`` and the revision is known, returns changed rows only.\nResponse JSON includes ``catalog_etag`` for clients that cannot read headers.","operationId":"list_mcp_actions_mcp_actions_get","parameters":[{"name":"schemas","in":"query","required":false,"schema":{"type":"string","description":"inputSchema attachment: none (default, no JSON schemas), public, hot (descriptor pilots), or all","default":"none","title":"Schemas"},"description":"inputSchema attachment: none (default, no JSON schemas), public, hot (descriptor pilots), or all"},{"name":"domain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by action domain prefix","title":"Domain"},"description":"Filter by action domain prefix"},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Substring filter on action/summary","title":"Q"},"description":"Substring filter on action/summary"},{"name":"effect_kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by effect.kind","title":"Effect Kind"},"description":"Filter by effect.kind"},{"name":"required_cap","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by required_cap","title":"Required Cap"},"description":"Filter by required_cap"},{"name":"audience","in":"query","required":false,"schema":{"type":"string","description":"tenant|operator|all","default":"all","title":"Audience"},"description":"tenant|operator|all"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":20,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pagination offset cursor","title":"Cursor"},"description":"Pagination offset cursor"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/actions/summary":{"get":{"tags":["MCP"],"summary":"MCP action catalog summary (total_actions only, no domains list)","description":"Lightweight sibling of GET /mcp/actions for clients that only need the action count.","operationId":"list_mcp_actions_summary_mcp_actions_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Mcp Actions Summary Mcp Actions Summary Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/actions/{action_name}":{"get":{"tags":["MCP"],"summary":"Single MCP action schema (alias-aware)","description":"Resolve aliases; wire matches MCP discovery.describe (not legacy to_dict).","operationId":"get_mcp_action_mcp_actions__action_name__get","parameters":[{"name":"action_name","in":"path","required":true,"schema":{"type":"string","title":"Action Name"}},{"name":"density","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"slim|default|full|summary — same projection as discovery.describe","default":"default","title":"Density"},"description":"slim|default|full|summary — same projection as discovery.describe"},{"name":"descriptor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alias for density (discovery.describe descriptor=)","title":"Descriptor"},"description":"Alias for density (discovery.describe descriptor=)"},{"name":"detail","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alias for descriptor/density (discovery.describe detail=)","title":"Detail"},"description":"Alias for descriptor/density (discovery.describe detail=)"},{"name":"expand","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated describe expand panels (schema, instruction, …)","title":"Expand"},"description":"Comma-separated describe expand panels (schema, instruction, …)"},{"name":"action_params","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object — slice for effect/preflight on describe","title":"Action Params"},"description":"JSON object — slice for effect/preflight on describe"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Mcp Action Mcp Actions  Action Name  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/preflight":{"get":{"tags":["MCP"],"summary":"Tenant mutation preflight (supply + optional RBAC)","description":"HTTP parity with MCP preflight.check — shared build_preflight_check_data spine.","operationId":"mcp_preflight_mcp_preflight_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Tenant project id","title":"Project Id"},"description":"Tenant project id"},{"name":"permission","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional RBAC permission to check","title":"Permission"},"description":"Optional RBAC permission to check"},{"name":"action","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional MCP action for risk/effect probe","title":"Action"},"description":"Optional MCP action for risk/effect probe"},{"name":"action_params","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object — invoke params for FAP path probe","title":"Action Params"},"description":"JSON object — invoke params for FAP path probe"},{"name":"path_updates","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON array — [{path, role?}] FAP probe before mutation","title":"Path Updates"},"description":"JSON array — [{path, role?}] FAP probe before mutation"},{"name":"publish_asked","in":"query","required":false,"schema":{"type":"boolean","description":"User already asked to publish — skips second confirm in action_risk","default":false,"title":"Publish Asked"},"description":"User already asked to publish — skips second confirm in action_risk"},{"name":"goal_text","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Natural-language goal for effect_policy probe (parity with preflight.check)","title":"Goal Text"},"description":"Natural-language goal for effect_policy probe (parity with preflight.check)"},{"name":"semantic_contract","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON fingerprinted semantic_contract (parity with preflight.check)","title":"Semantic Contract"},"description":"JSON fingerprinted semantic_contract (parity with preflight.check)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mcp Preflight Mcp Preflight Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/prompts/list":{"get":{"tags":["MCP"],"summary":"REST shim for MCP prompts/list","description":"GET /mcp/prompts/list — same prompt array as JSON-RPC prompts/list.","operationId":"mcp_prompts_list_get_mcp_prompts_list_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Mcp Prompts List Get Mcp Prompts List Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/prompts/get":{"get":{"tags":["MCP"],"summary":"REST shim for MCP prompts/get (Cursor compatibility)","description":"Return a single MCP prompt by name (same content as JSON-RPC prompts/get).","operationId":"mcp_prompts_get_rest_mcp_prompts_get_get","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","description":"Prompt name","title":"Name"},"description":"Prompt name"},{"name":"arguments","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object of prompt template arguments (same as JSON-RPC params.arguments)","title":"Arguments"},"description":"JSON object of prompt template arguments (same as JSON-RPC params.arguments)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mcp Prompts Get Rest Mcp Prompts Get Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/stream":{"post":{"tags":["MCP"],"summary":"Stream execution of AgentStack batch (agentstack.execute)","description":"Streaming variant of agentstack.execute using Server-Sent Events.\nDelegates to the shared McpController instance.","operationId":"agentstack_execute_stream_mcp_stream_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Request Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"universal"},"get":{"tags":["MCP"],"summary":"Sse Stream","description":"SSE endpoint for streaming tool execution (GET method for browser compatibility).","operationId":"sse_stream_mcp_stream_get","parameters":[{"name":"tool","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Tool name to execute","title":"Tool"},"description":"Tool name to execute"},{"name":"Last-Event-ID","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Last event ID for reconnection","title":"Last-Event-Id"},"description":"Last event ID for reconnection"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/jobs/{job_id}":{"get":{"tags":["MCP"],"summary":"Get status of an async MCP job","description":"Return status and result (if completed) for an async agentstack.execute job.","operationId":"get_mcp_job_mcp_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Mcp Job Mcp Jobs  Job Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal","x-mcp-action":"discovery.job_status","x-capability-id":"discovery.job_status"}},"/mcp/tools/list":{"get":{"tags":["MCP"],"summary":"Tools list (single-tool format)","description":"GET /mcp/tools/list — scanner compat; returns single tool agentstack.execute + actions_url.","operationId":"mcp_tools_list_get_mcp_tools_list_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Mcp Tools List Get Mcp Tools List Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"},"post":{"tags":["MCP"],"summary":"POST tools/list (single-tool format)","description":"POST /mcp/tools/list — JSON-RPC uses the same handler as POST /mcp.\n\nA body that is not JSON-RPC stays the scanner tool list.","operationId":"mcp_tools_list_post_mcp_tools_list_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"universal"}},"/mcp/tools/call":{"get":{"tags":["MCP"],"summary":"Discovery hint for tools/call","description":"GET /mcp/tools/call — scanner compat; use POST /mcp or POST /mcp/tools for execution.","operationId":"mcp_tools_call_get_mcp_tools_call_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Mcp Tools Call Get Mcp Tools Call Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"},"post":{"tags":["MCP"],"summary":"Tools Call Post Alias","description":"POST /mcp/tools/call. Flat {name, arguments} becomes JSON-RPC tools/call.","operationId":"tools_call_post_alias_mcp_tools_call_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"universal"}},"/mcp/.well-known/oauth-protected-resource":{"get":{"tags":["MCP"],"summary":"Well Known Oauth Protected Resource","description":"GET /mcp/.well-known/oauth-protected-resource — RFC 9728; ChatGPT requires this for verification.","operationId":"well_known_oauth_protected_resource_mcp__well_known_oauth_protected_resource_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Well Known Oauth Protected Resource Mcp  Well Known Oauth Protected Resource Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/.well-known/oauth-authorization-server":{"get":{"tags":["MCP"],"summary":"Well Known Oauth Server","description":"GET /mcp/.well-known/oauth-authorization-server — RFC 8414; PKCE (S256) and registration_endpoint required for ChatGPT.","operationId":"well_known_oauth_server_mcp__well_known_oauth_authorization_server_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Well Known Oauth Server Mcp  Well Known Oauth Authorization Server Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/.well-known/openid-configuration":{"get":{"tags":["MCP"],"summary":"Well Known Openid Configuration","description":"GET /mcp/.well-known/openid-configuration — OpenID Connect Discovery.","operationId":"well_known_openid_configuration_mcp__well_known_openid_configuration_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Well Known Openid Configuration Mcp  Well Known Openid Configuration Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/.well-known/jwks.json":{"get":{"tags":["MCP"],"summary":"Well Known Mcp Jwks","description":"Public RSA key for MCP OAuth id_token (RS256). Access tokens are not signed with this key.","operationId":"well_known_mcp_jwks_mcp__well_known_jwks_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/connect/return":{"get":{"tags":["MCP"],"summary":"Mcp Oauth Connect Pages","description":"Fallback HTML for native MCP OAuth return (ChatGPT scheme leg).","operationId":"mcp_oauth_connect_pages_mcp_connect_return_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/connect":{"get":{"tags":["MCP"],"summary":"Mcp Oauth Connect Pages","description":"Fallback HTML for native MCP OAuth return (ChatGPT scheme leg).","operationId":"mcp_oauth_connect_pages_mcp_connect_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/.well-known/oauth-authorize":{"get":{"tags":["MCP"],"summary":"Oauth Authorize Stub","operationId":"oauth_authorize_stub_mcp__well_known_oauth_authorize_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"},"post":{"tags":["MCP"],"summary":"Oauth Authorize Stub","operationId":"oauth_authorize_stub_mcp__well_known_oauth_authorize_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"universal"}},"/mcp/.well-known/oauth-token":{"get":{"tags":["MCP"],"summary":"Oauth Token Metadata","description":"Discovery helper — token exchange is POST-only (RFC 6749).","operationId":"oauth_token_metadata_mcp__well_known_oauth_token_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"},"post":{"tags":["MCP"],"summary":"Oauth Token Stub","operationId":"oauth_token_stub_mcp__well_known_oauth_token_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"universal"}},"/mcp/.well-known/oauth-register":{"post":{"tags":["MCP"],"summary":"Oauth Register Stub","description":"Dynamic client registration (minimal RFC 7591-compatible). 'stub' = minimal implementation for MCP verifier, not placeholder code.","operationId":"oauth_register_stub_mcp__well_known_oauth_register_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"universal"}},"/mcp/.well-known/oauth-userinfo":{"get":{"tags":["MCP"],"summary":"Oauth Userinfo","description":"OpenID Connect userinfo — returns claims from the MCP OAuth Bearer token.\n\nFor verification tokens issued by `oauth-token` the response mirrors the JWT\npayload so that `sub` values are consistent across token + userinfo.","operationId":"oauth_userinfo_mcp__well_known_oauth_userinfo_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/tools/{tool_name}":{"get":{"tags":["MCP"],"summary":"Single tool or MCP action describe (alias-aware)","description":"Canonical MCP actions use discovery.describe wire; execute tool uses fat schemas when density=full.","operationId":"get_tool_info_mcp_tools__tool_name__get","parameters":[{"name":"tool_name","in":"path","required":true,"schema":{"type":"string","title":"Tool Name"}},{"name":"density","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"slim|default|full|summary — same as GET /mcp/actions/{name} for MCP actions","default":"default","title":"Density"},"description":"slim|default|full|summary — same as GET /mcp/actions/{name} for MCP actions"},{"name":"descriptor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alias for density (discovery.describe descriptor=)","title":"Descriptor"},"description":"Alias for density (discovery.describe descriptor=)"},{"name":"detail","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alias for descriptor/density (discovery.describe detail=)","title":"Detail"},"description":"Alias for descriptor/density (discovery.describe detail=)"},{"name":"expand","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated describe expand panels (schema, instruction, …)","title":"Expand"},"description":"Comma-separated describe expand panels (schema, instruction, …)"},{"name":"action_params","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object — slice for effect/preflight on describe","title":"Action Params"},"description":"JSON object — slice for effect/preflight on describe"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Tool Info Mcp Tools  Tool Name  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/health":{"get":{"tags":["MCP"],"summary":"MCP health with discovery pointers","description":"Lightweight MCP health endpoint.\nReturns module status and pointers to discovery/actions contracts.","operationId":"mcp_health_mcp_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Mcp Health Mcp Health Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/organs":{"get":{"tags":["MCP"],"summary":"Organ self-description index for MCP agents","description":"Machine-readable organ index — genetic tags, MCP prefixes, capability ids.\n\nComplements ``GET /mcp/actions`` with organism-level self-description\n(``core.composition.organ_descriptor.gen1``).","operationId":"mcp_organs_mcp_organs_get","parameters":[{"name":"domain","in":"query","required":false,"schema":{"type":"string","description":"Filter by MCP domain prefix (e.g. crm)","title":"Domain"},"description":"Filter by MCP domain prefix (e.g. crm)"},{"name":"kind","in":"query","required":false,"schema":{"type":"string","description":"Filter by organ kind (e.g. mcp_domain)","title":"Kind"},"description":"Filter by organ kind (e.g. mcp_domain)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/manifest":{"get":{"tags":["MCP"],"summary":"MCP server manifest for registry publish","description":"Machine-readable MCP server manifest (version, protocol, catalog counts, publisher patterns).\nGenerated by ``gen_mcp_server_manifest.py``; rebuilt in-process when artifact is missing.","operationId":"mcp_manifest_mcp_manifest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/cache/clear":{"post":{"tags":["MCP"],"summary":"Clear Discovery Cache","description":"Clear discovery, actions catalog, prompts/list, ai_prompt caches, and static list endpoints\n(recipes, examples, patterns, tool_chains, creative examples, alternative_uses).\nCall after deploy or registry/content change.","operationId":"clear_discovery_cache_mcp_cache_clear_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Clear Discovery Cache Mcp Cache Clear Post"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"universal"}},"/mcp/settings/resources":{"post":{"tags":["MCP"],"summary":"Update Mcp Resources Settings","description":"Update MCP resources preferences (favorites, hide list, show_self).\nBody: { \"favorite_project_ids\": [...], \"hide_in_mcp_project_ids\": [...], \"show_self_in_mcp_resources\": bool }.\nRequires authentication (X-API-Key). Used by UI to sync favorites and MCP visibility.","operationId":"update_mcp_resources_settings_mcp_settings_resources_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Update Mcp Resources Settings Mcp Settings Resources Post"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"universal"}},"/mcp/ai_prompt":{"get":{"tags":["MCP"],"summary":"Get Ai Prompt","description":"AI system prompt for MCP agents.\n\n``mode=contract`` — bootstrap (prose cap 8 KiB). ``mode=full`` (default) — workflows + pointers.","operationId":"get_ai_prompt_mcp_ai_prompt_get","parameters":[{"name":"mode","in":"query","required":false,"schema":{"type":"string","default":"full","title":"Mode"}},{"name":"locale","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"BCP-47 hint for error_codes copy (ru/en/pt)","title":"Locale"},"description":"BCP-47 hint for error_codes copy (ru/en/pt)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Ai Prompt Mcp Ai Prompt Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/ai_prompt/workflows":{"get":{"tags":["MCP"],"summary":"Get Ai Workflows","description":"Get common workflows with step-by-step examples.\nUseful for understanding how to combine tools for typical tasks.","operationId":"get_ai_workflows_mcp_ai_prompt_workflows_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Ai Workflows Mcp Ai Prompt Workflows Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/ai_prompt/examples":{"get":{"tags":["MCP"],"summary":"Get Ai Examples","description":"Get examples of complex tasks and tool combinations.\nShows how to solve multi-step problems using MCP tools.","operationId":"get_ai_examples_mcp_ai_prompt_examples_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Ai Examples Mcp Ai Prompt Examples Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/resources/notifications":{"get":{"tags":["MCP"],"summary":"Resources Notifications Stream","description":"SSE endpoint for resource update notifications.\nClients connect here to receive notifications about subscribed resources.","operationId":"resources_notifications_stream_mcp_resources_notifications_get","parameters":[{"name":"Last-Event-ID","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last-Event-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/discover/by_intent":{"get":{"tags":["MCP"],"summary":"Discover By Intent Get","description":"Find tools based on user intent (read-only).\n\nAccepts ``q``, ``query``, ``intent``, or ``search`` on GET query string, or\nthe same keys in JSON body on POST (SDK-compatible).","operationId":"discover_by_intent_mcp_discover_by_intent_get","parameters":[{"name":"intent","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Intent description (e.g., 'create card game')","title":"Intent"},"description":"Intent description (e.g., 'create card game')"},{"name":"query","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alias for intent (legacy GET clients)","title":"Query"},"description":"Alias for intent (legacy GET clients)"},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Discovery search term (parity with discovery.search)","title":"Q"},"description":"Discovery search term (parity with discovery.search)"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alias for q/query (discovery.search parity)","title":"Search"},"description":"Alias for q/query (discovery.search parity)"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional category filter","title":"Category"},"description":"Optional category filter"},{"name":"tokens","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Admin debug: comma GTPI tokens — adds gtpi_debug bindings","title":"Tokens"},"description":"Admin debug: comma GTPI tokens — adds gtpi_debug bindings"},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Optional workspace project scope (parity with POST body project_id)","title":"Project Id"},"description":"Optional workspace project scope (parity with POST body project_id)"},{"name":"semantic_contract","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON GoalSemanticContract (parity with POST body semantic_contract)","title":"Semantic Contract"},"description":"JSON GoalSemanticContract (parity with POST body semantic_contract)"},{"name":"observed","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON inverse orchestration slots (parity with POST body observed)","title":"Observed"},"description":"JSON inverse orchestration slots (parity with POST body observed)"},{"name":"include_scope","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"When 1/true, attach catalog scope stats (parity with discovery.search)","title":"Include Scope"},"description":"When 1/true, attach catalog scope stats (parity with discovery.search)"},{"name":"domain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional domain shard hint for intent scoring","title":"Domain"},"description":"Optional domain shard hint for intent scoring"},{"name":"scope","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Discovery scope global|node (parity with discovery.search)","title":"Scope"},"description":"Discovery scope global|node (parity with discovery.search)"},{"name":"focus_node_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Work-graph node scope for hydrate gate","title":"Focus Node Id"},"description":"Work-graph node scope for hydrate gate"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Discover By Intent Mcp Discover By Intent Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"},"post":{"tags":["MCP"],"summary":"Discover By Intent Post","description":"POST variant — JSON body ``q`` / ``query`` / ``intent`` / ``search`` (SDK-compatible).\n\nOptional body fields (parity with ``discovery.search``):\n\n- ``semantic_contract``: fingerprinted GoalSemanticContract — skips re-compile\n- ``observed``: inverse orchestration slots (completed_steps, workflow_state_key)\n- ``include_scope``: ``1`` / ``true`` — attach catalog scope stats (O(registry); opt-in)\n- ``domain``, ``scope``, ``focus_node_id``: routing / hydrate gate (same as GET query)\n- ``supplements``: pre-built archetype/recipe block (skip rebuild in intent payload)","operationId":"discover_by_intent_mcp_discover_by_intent_post","parameters":[{"name":"intent","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Intent description (e.g., 'create card game')","title":"Intent"},"description":"Intent description (e.g., 'create card game')"},{"name":"query","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alias for intent (legacy GET clients)","title":"Query"},"description":"Alias for intent (legacy GET clients)"},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Discovery search term (parity with discovery.search)","title":"Q"},"description":"Discovery search term (parity with discovery.search)"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Alias for q/query (discovery.search parity)","title":"Search"},"description":"Alias for q/query (discovery.search parity)"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional category filter","title":"Category"},"description":"Optional category filter"},{"name":"tokens","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Admin debug: comma GTPI tokens — adds gtpi_debug bindings","title":"Tokens"},"description":"Admin debug: comma GTPI tokens — adds gtpi_debug bindings"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Discover By Intent Mcp Discover By Intent Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/discover/next_tool":{"post":{"tags":["MCP"],"summary":"Discover Next Tool","description":"Suggest next tool based on execution history.\n\nRequest body:\n{\n    \"executed_tools\": [\"projects.create_project_anonymous\", \"buffs.create_buff\"],\n    \"last_result\": {\"success\": true, \"data\": {...}},\n    \"goal\": \"create card game\"  # optional\n}","operationId":"discover_next_tool_mcp_discover_next_tool_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Request Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Discover Next Tool Mcp Discover Next Tool Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"universal"}},"/mcp/recipes":{"get":{"tags":["MCP"],"summary":"List Recipes Endpoint","description":"List available recipes with optional filters","operationId":"list_recipes_endpoint_mcp_recipes_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","description":"Filter by category (game, saas, ecommerce, economy, social, backend_api, buffs)","title":"Category"},"description":"Filter by category (game, saas, ecommerce, economy, social, backend_api, buffs)"},{"name":"difficulty","in":"query","required":false,"schema":{"type":"string","description":"Filter by difficulty (beginner, intermediate, advanced)","title":"Difficulty"},"description":"Filter by difficulty (beginner, intermediate, advanced)"},{"name":"search","in":"query","required":false,"schema":{"type":"string","description":"Search by name or description","title":"Search"},"description":"Search by name or description"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Recipes Endpoint Mcp Recipes Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/recipes/{recipe_id}":{"get":{"tags":["MCP"],"summary":"Get Recipe Endpoint","description":"Get detailed recipe with all steps","operationId":"get_recipe_endpoint_mcp_recipes__recipe_id__get","parameters":[{"name":"recipe_id","in":"path","required":true,"schema":{"type":"string","title":"Recipe Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Recipe Endpoint Mcp Recipes  Recipe Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/recipes/{recipe_id}/validate":{"post":{"tags":["MCP"],"summary":"Validate Recipe Progress","description":"Validate recipe progress and suggest next step.\n\nRequest body:\n{\n    \"completed_steps\": [0, 1, 2]\n}","operationId":"validate_recipe_progress_mcp_recipes__recipe_id__validate_post","parameters":[{"name":"recipe_id","in":"path","required":true,"schema":{"type":"string","title":"Recipe Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Request Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Validate Recipe Progress Mcp Recipes  Recipe Id  Validate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/suggest/next":{"post":{"tags":["MCP"],"summary":"Suggest Next Action","description":"Get AI suggestions for next action based on execution history.\n\nRequest body:\n{\n    \"history\": [\n        {\"tool\": \"projects.create_project_anonymous\", \"result\": {...}},\n        {\"tool\": \"buffs.create_buff\", \"result\": {...}}\n    ],\n    \"goal\": \"create trial system\"  # optional\n}","operationId":"suggest_next_action_mcp_suggest_next_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Request Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Suggest Next Action Mcp Suggest Next Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"universal"}},"/mcp/visualize/workflow":{"post":{"tags":["MCP"],"summary":"Visualize Workflow","description":"Generate Mermaid diagram showing tool workflow.\n\nRequest body:\n{\n    \"tools\": [\"projects.create_project_anonymous\", \"buffs.create_buff\", \"buffs.apply_buff\"]\n}","operationId":"visualize_workflow_mcp_visualize_workflow_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Request Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Visualize Workflow Mcp Visualize Workflow Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"universal"}},"/mcp/ai/plan_steps":{"post":{"tags":["MCP"],"summary":"Suggest MCP steps for a high-level goal","description":"Convert intent / execution history into a suggested `steps[]` plan for agentstack.execute.\nDelegates to the shared McpController instance.","operationId":"mcp_ai_plan_steps_mcp_ai_plan_steps_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Request Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Mcp Ai Plan Steps Mcp Ai Plan Steps Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"universal"}},"/mcp/examples":{"get":{"tags":["MCP"],"summary":"List Examples Endpoint","description":"List interactive examples","operationId":"list_examples_endpoint_mcp_examples_get","parameters":[{"name":"use_case","in":"query","required":false,"schema":{"type":"string","description":"Filter by use case","title":"Use Case"},"description":"Filter by use case"},{"name":"difficulty","in":"query","required":false,"schema":{"type":"string","description":"Filter by difficulty","title":"Difficulty"},"description":"Filter by difficulty"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Examples Endpoint Mcp Examples Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/examples/{example_id}":{"get":{"tags":["MCP"],"summary":"Get Example Endpoint","description":"Get complete example with all steps","operationId":"get_example_endpoint_mcp_examples__example_id__get","parameters":[{"name":"example_id","in":"path","required":true,"schema":{"type":"string","title":"Example Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Example Endpoint Mcp Examples  Example Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/examples/{example_id}/step/{step_number}":{"get":{"tags":["MCP"],"summary":"Get Example Step Endpoint","description":"Get specific step from example","operationId":"get_example_step_endpoint_mcp_examples__example_id__step__step_number__get","parameters":[{"name":"example_id","in":"path","required":true,"schema":{"type":"string","title":"Example Id"}},{"name":"step_number","in":"path","required":true,"schema":{"type":"integer","title":"Step Number"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Example Step Endpoint Mcp Examples  Example Id  Step  Step Number  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/ai_prompt/for_use_case/{use_case}":{"get":{"tags":["MCP"],"summary":"Get Use Case Prompt Endpoint","description":"Get AI prompt optimized for specific use case.\n\nuse_case: \"game\", \"saas\", \"ecommerce\", \"social\", \"backend_api\", \"project_setup\"","operationId":"get_use_case_prompt_endpoint_mcp_ai_prompt_for_use_case__use_case__get","parameters":[{"name":"use_case","in":"path","required":true,"schema":{"type":"string","title":"Use Case"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Use Case Prompt Endpoint Mcp Ai Prompt For Use Case  Use Case  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/tool_chains":{"get":{"tags":["MCP"],"summary":"List Tool Chains Endpoint","description":"List predefined tool chains for common workflows","operationId":"list_tool_chains_endpoint_mcp_tool_chains_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","description":"Filter by category","title":"Category"},"description":"Filter by category"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Tool Chains Endpoint Mcp Tool Chains Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/tool_chains/{chain_name}":{"get":{"tags":["MCP"],"summary":"Get Tool Chain Endpoint","description":"Get specific tool chain","operationId":"get_tool_chain_endpoint_mcp_tool_chains__chain_name__get","parameters":[{"name":"chain_name","in":"path","required":true,"schema":{"type":"string","title":"Chain Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Tool Chain Endpoint Mcp Tool Chains  Chain Name  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/discover/alternative_uses":{"get":{"tags":["MCP"],"summary":"Discover Alternative Uses","description":"Discover creative and alternative ways to use tools.\n\nQuery params:\n- tool: Tool category (buffs, users, projects, scheduler, logic) or specific tool name\n\nReturns paradigm shifts, alternative uses, and creative examples.","operationId":"discover_alternative_uses_mcp_discover_alternative_uses_get","parameters":[{"name":"tool","in":"query","required":false,"schema":{"type":"string","description":"Tool name or category (buffs, users, projects)","title":"Tool"},"description":"Tool name or category (buffs, users, projects)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Discover Alternative Uses Mcp Discover Alternative Uses Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/patterns":{"get":{"tags":["MCP"],"summary":"List Patterns Endpoint","description":"List creative patterns showing alternative tool combinations.","operationId":"list_patterns_endpoint_mcp_patterns_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","description":"Pattern category (timing, data_modeling, global_state, automation)","title":"Category"},"description":"Pattern category (timing, data_modeling, global_state, automation)"},{"name":"use_case","in":"query","required":false,"schema":{"type":"string","description":"Use case (game, saas, ecommerce, social, backend_api)","title":"Use Case"},"description":"Use case (game, saas, ecommerce, social, backend_api)"},{"name":"search","in":"query","required":false,"schema":{"type":"string","description":"Search query","title":"Search"},"description":"Search query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Patterns Endpoint Mcp Patterns Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/patterns/{pattern_id}":{"get":{"tags":["MCP"],"summary":"Get Pattern Endpoint","description":"Get specific creative pattern","operationId":"get_pattern_endpoint_mcp_patterns__pattern_id__get","parameters":[{"name":"pattern_id","in":"path","required":true,"schema":{"type":"string","title":"Pattern Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Pattern Endpoint Mcp Patterns  Pattern Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/creative/examples":{"get":{"tags":["MCP"],"summary":"List Creative Examples Endpoint","description":"List creative examples showing alternative approaches","operationId":"list_creative_examples_endpoint_mcp_creative_examples_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","description":"Category","title":"Category"},"description":"Category"},{"name":"creativity_level","in":"query","required":false,"schema":{"type":"string","description":"Creativity level (low, medium, high, genius)","title":"Creativity Level"},"description":"Creativity level (low, medium, high, genius)"},{"name":"search","in":"query","required":false,"schema":{"type":"string","description":"Search query","title":"Search"},"description":"Search query"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Creative Examples Endpoint Mcp Creative Examples Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/creative/examples/{example_id}":{"get":{"tags":["MCP"],"summary":"Get Creative Example Endpoint","description":"Get specific creative example","operationId":"get_creative_example_endpoint_mcp_creative_examples__example_id__get","parameters":[{"name":"example_id","in":"path","required":true,"schema":{"type":"string","title":"Example Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Creative Example Endpoint Mcp Creative Examples  Example Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/mcp/paradigm":{"get":{"tags":["MCP"],"summary":"Get Paradigm Info","description":"Get paradigm shift information for all tools.\n\nReturns conceptual aliases, alternative uses, and mental models.","operationId":"get_paradigm_info_mcp_paradigm_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Paradigm Info Mcp Paradigm Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal"}},"/api/health":{"get":{"tags":["Health & Metrics"],"summary":"Health","description":"Health check endpoint","operationId":"health_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[],"x-channel":"rest_compat"}},"/api/health/metrics":{"get":{"tags":["Health & Metrics"],"summary":"Metrics","description":"AgentStack Native Metrics Endpoint (single source of truth for admin monitoring).\n\nResponse contract (all keys present; values may be null/empty/error on failure):\n- timestamp (str), service (str), version (str), metrics_source (str), execution_sample_limit (int)\n- system: { cpu_percent?, memory?: { total_gb, used_gb, available_gb, percent }, disk?: {...}, error? }\n- execution_logs: { [service_name]: stats | { error } }; stats may include outcome_unknown,\n  p50_duration_ms, p95_duration_ms, top_operations, by_log_source, scope_note\n- execution_logs_meta: { methodology, diagnostic_sql }\n- cache: { [cache_name]: { service, role?, entries, memory_mb?, ... } }\n- database: { total_connections?, active_connections?, idle_connections? } | { error }\n- uptime_seconds (float), network: { rx, tx }\n- services: [{ name, status, uptime, responseTime, lastChecked }]\n- alerts: [{ id, level, title, message, timestamp, resolved }]\n- performance: { active_session_slots, recent_session_logs_sample_size,\n  recent_session_logs_error_rate_percent, avg_response_time_ms }\n- managed_organism: { active_cells, draining_count, by_activity, schedule_heap_pending,\n  schedule_driver_running, runtime_started, io_db_straggler_count, io_db_max_workers,\n  io_db_shutdown } | { error } — aggregates only (no cell names; safe for public metrics)\n\nOn collection errors, individual blocks include \"error\" key; endpoint does not raise.","operationId":"metrics_api_health_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[],"x-channel":"rest_compat"}},"/api/metrics":{"get":{"tags":["Health & Metrics"],"summary":"Metrics","description":"AgentStack Native Metrics Endpoint (single source of truth for admin monitoring).\n\nResponse contract (all keys present; values may be null/empty/error on failure):\n- timestamp (str), service (str), version (str), metrics_source (str), execution_sample_limit (int)\n- system: { cpu_percent?, memory?: { total_gb, used_gb, available_gb, percent }, disk?: {...}, error? }\n- execution_logs: { [service_name]: stats | { error } }; stats may include outcome_unknown,\n  p50_duration_ms, p95_duration_ms, top_operations, by_log_source, scope_note\n- execution_logs_meta: { methodology, diagnostic_sql }\n- cache: { [cache_name]: { service, role?, entries, memory_mb?, ... } }\n- database: { total_connections?, active_connections?, idle_connections? } | { error }\n- uptime_seconds (float), network: { rx, tx }\n- services: [{ name, status, uptime, responseTime, lastChecked }]\n- alerts: [{ id, level, title, message, timestamp, resolved }]\n- performance: { active_session_slots, recent_session_logs_sample_size,\n  recent_session_logs_error_rate_percent, avg_response_time_ms }\n- managed_organism: { active_cells, draining_count, by_activity, schedule_heap_pending,\n  schedule_driver_running, runtime_started, io_db_straggler_count, io_db_max_workers,\n  io_db_shutdown } | { error } — aggregates only (no cell names; safe for public metrics)\n\nOn collection errors, individual blocks include \"error\" key; endpoint does not raise.","operationId":"metrics_api_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[],"x-channel":"rest_compat"}},"/api/metrics/scrape":{"get":{"tags":["Health & Metrics"],"summary":"Metrics Prometheus Scrape","description":"Token-gated Prometheus scrape for server SLO gauges (WS-K.3).\n\nSet ``AGENTSTACK_METRICS_SCRAPE_TOKEN`` and pass header ``X-Metrics-Token``.\nReturns 404 when the token env is unset (endpoint hidden).","operationId":"metrics_prometheus_scrape_api_metrics_scrape_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[],"x-channel":"rest_compat"}},"/api/simple-test":{"get":{"tags":["Health & Metrics"],"summary":"Simple Test Endpoint","description":"Simple test endpoint for dashboard","operationId":"simple_test_endpoint_api_simple_test_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/status":{"get":{"tags":["Health & Metrics"],"summary":"System Status","description":"Detailed system status","operationId":"system_status_api_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/info":{"get":{"tags":["Health & Metrics"],"summary":"System Info","description":"System information. Public endpoint; must not expose secrets, env vars, or internal paths (Plan backend_log_20260226).","operationId":"system_info_api_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ping":{"get":{"tags":["Health & Metrics"],"summary":"Ping","description":"Simple ping endpoint — ignores query string (scanner CMDI probes are harmless pong).","operationId":"ping_api_ping_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/startup":{"get":{"tags":["Health & Metrics"],"summary":"Startup Check","description":"Startup probe — routers mounted (K8s startup vs readiness split, INC-084403-02).\n\nNginx continues to use ``/ready`` for traffic; this endpoint signals router\nregistration including deferred commerce/grants groups (~250ms after yield).","operationId":"startup_check_api_startup_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ready":{"get":{"tags":["Health & Metrics"],"summary":"Readiness Check","description":"Readiness check for Kubernetes. In production, DB/error details are not exposed in the response.","operationId":"readiness_check_api_ready_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/live":{"get":{"tags":["Health & Metrics"],"summary":"Liveness Check","description":"Liveness check for Kubernetes","operationId":"liveness_check_api_live_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/version":{"get":{"tags":["Health & Metrics"],"summary":"Version Info","description":"Version information","operationId":"version_info_api_version_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/build-info":{"get":{"tags":["Health & Metrics"],"summary":"Build Info","description":"Deploy fidelity probe — git SHA and core version (scanner compat).","operationId":"build_info_api_build_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/components":{"get":{"tags":["Health & Metrics"],"summary":"Components Status","description":"Check status of all components","operationId":"components_status_api_components_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/stats":{"get":{"tags":["Health & Metrics"],"summary":"System Stats","description":"System statistics","operationId":"system_stats_api_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/admin/drain":{"get":{"tags":["admin-drain"],"summary":"Admin Drain Status","description":"Readiness drain state for deploy scripts (poll until in_flight=0).","operationId":"admin_drain_status_api_admin_drain_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["admin-drain"],"summary":"Admin Drain Start","description":"Enable readiness drain before container stop (deploy anti-thrash).","operationId":"admin_drain_start_api_admin_drain_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/admin/drain/clear":{"post":{"tags":["admin-drain"],"summary":"Admin Drain Clear","description":"Clear drain flag (ops only — normal path is process exit).","operationId":"admin_drain_clear_api_admin_drain_clear_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/optrace/cardgame/ingest":{"post":{"tags":["OpTrace"],"summary":"Post Cardgame Optrace Ingest","description":"Hosted cardgame telemetry (navigator.sendBeacon).\n\nOptional auth — when bearer present, project_id scopes rate cap.","operationId":"post_cardgame_optrace_ingest_api_optrace_cardgame_ingest_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CardgameIngestBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/shell/user-home-snapshot":{"get":{"tags":["Shell Hub"],"summary":"Get User Home Snapshot","description":"CFD-05a / H-01 — dual-shell ``/user`` home cold-open BFF.\n\nOne RT: projects head + rbac claims + optional notifications peek.","operationId":"get_user_home_snapshot_api_shell_user_home_snapshot_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get User Home Snapshot Api Shell User Home Snapshot Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/shell/dev-home-snapshot":{"get":{"tags":["Shell Hub"],"summary":"Get Dev Home Snapshot","description":"CFD-05b / H-02 — dual-shell ``/dev`` home cold-open BFF.\n\nExtends user home with support project roles + builder_summary.","operationId":"get_dev_home_snapshot_api_shell_dev_home_snapshot_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Dev Home Snapshot Api Shell Dev Home Snapshot Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/cardgame/bootstrap":{"get":{"tags":["Cardgame"],"summary":"Cardgame Bootstrap","description":"Aggregate cardgame_deck, cardgame_collection, cardgame_gold, cardgame_dust lists.\n\nReplaces parallel DNA list storm on hosted cardgame login.","operationId":"cardgame_bootstrap_api_cardgame_bootstrap_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Project scope (defaults to session)","title":"Project Id"},"description":"Project scope (defaults to session)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Cardgame Bootstrap Api Cardgame Bootstrap Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/platform/feature-availability":{"get":{"tags":["Platform"],"summary":"Get Feature Availability","description":"Compact feature-availability slice for SPA, MCP, and anonymous clients.\n\nHot path: in-memory tunable snapshot only (see ADR PLATFORM_FEATURE_GATES).","operationId":"get_feature_availability_api_platform_feature_availability_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[],"x-channel":"rest_compat"}},"/api/dna/data":{"get":{"tags":["8DNA API"],"summary":"Get Dna Data By Key","description":"Get value at key (project.data.* or user.data.*). For built apps using sdk.db.get(key).","operationId":"get_dna_data_by_key_api_dna_data_get","parameters":[{"name":"key","in":"query","required":true,"schema":{"type":"string","description":"Key: project.data.<path> or user.data.<path>","title":"Key"},"description":"Key: project.data.<path> or user.data.<path>"},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Project ID (required for project.data.*)","title":"Project Id"},"description":"Project ID (required for project.data.*)"},{"name":"paths","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated PathAtom paths for structured GET (relative to value)","title":"Paths"},"description":"Comma-separated PathAtom paths for structured GET (relative to value)"},{"name":"max_depth","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":64,"minimum":0},{"type":"null"}],"description":"Truncate nested depth of a leaf that fits the budget","title":"Max Depth"},"description":"Truncate nested depth of a leaf that fits the budget"},{"name":"exclude_paths","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exclude Paths"}},{"name":"detail","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"full asks for the body up to the hard ceiling","title":"Detail"},"description":"full asks for the body up to the hard ceiling"},{"name":"min_depth","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":64,"minimum":0},{"type":"null"}],"title":"Min Depth"}},{"name":"item_offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Item Offset"}},{"name":"item_limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":200,"minimum":1},{"type":"null"}],"title":"Item Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"max_chars","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Max Chars"}},{"name":"key_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key After"}},{"name":"key_limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":64,"minimum":1},{"type":"null"}],"title":"Key Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal","x-mcp-action":"dna.get","x-capability-id":"dna.get"},"post":{"tags":["8DNA API"],"summary":"Set Dna Data By Key","description":"Set value at key (project.data.* or user.data.*). For built apps using sdk.db.set(key, value).\n\nThis endpoint is an **immediate leaf write** (jsonb_set), same grammar as\n``PATCH /api/projects/{id}/data``. Query ``commit_mode=dirty`` is accepted for\ncompatibility but does **not** make KV write-behind — use the protein command\nbus for dirty journals. Prefer MCP ``projects.patch_data`` when the client\nspeaks MCP.","operationId":"set_dna_data_by_key_api_dna_data_post","parameters":[{"name":"commit_mode","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional: dirty only if domain allowlisted; DNA KV still defaults to immediate SoT","title":"Commit Mode"},"description":"Optional: dirty only if domain allowlisted; DNA KV still defaults to immediate SoT"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DnaKvSetBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"universal","x-mcp-action":"dna.set","x-capability-id":"dna.set"}},"/api/dna/tables":{"get":{"tags":["8DNA API"],"summary":"Get Available Tables","description":"Get list of available DNA tables","operationId":"get_available_tables_api_dna_tables_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/dna/entities/stats":{"get":{"tags":["8DNA API"],"summary":"Get All Dna Entities Stats","description":"Get statistics for all DNA tables\n\nReturns aggregated stats across all valid DNA tables","operationId":"get_all_dna_entities_stats_api_dna_entities_stats_get","parameters":[{"name":"exclude_blanks","in":"query","required":false,"schema":{"type":"boolean","description":"For data_projects_8dna: exclude rows with data.is_blank=true from counts","default":true,"title":"Exclude Blanks"},"description":"For data_projects_8dna: exclude rows with data.is_blank=true from counts"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/dna/hub-snapshot":{"get":{"tags":["8DNA API"],"summary":"Get Dna Hub Snapshot","description":"Single read-model for Economy hub batch (stats + recent project rows).","operationId":"get_dna_hub_snapshot_api_dna_hub_snapshot_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Logical project id for list head","default":1,"title":"Project Id"},"description":"Logical project id for list head"},{"name":"exclude_blanks","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Exclude Blanks"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/dna/entities/bulk-delete":{"post":{"tags":["8DNA API"],"summary":"Bulk Delete Dna Entities","description":"Delete many DNA rows.\n\nResponse shape: { succeeded: [uuid...], failed: [{id, error}], table, total_requested }.","operationId":"bulk_delete_dna_entities_api_dna_entities_bulk_delete_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body","description":"Bulk delete by logical ids or UUIDs"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/dna/{table_name}":{"get":{"tags":["8DNA API"],"summary":"Get Dna Entities","description":"Get DNA entities from table\n\nUniversal GET operation for any DNA table","operationId":"get_dna_entities_api_dna__table_name__get","parameters":[{"name":"table_name","in":"path","required":true,"schema":{"type":"string","description":"DNA table name","title":"Table Name"},"description":"DNA table name"},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by project ID","title":"Project Id"},"description":"Filter by project ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Limit results","default":100,"title":"Limit"},"description":"Limit results"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Offset for pagination","default":0,"title":"Offset"},"description":"Offset for pagination"},{"name":"order_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort field (whitelist): created_at, updated_at, user_id, project_id, id, generation","title":"Order By"},"description":"Sort field (whitelist): created_at, updated_at, user_id, project_id, id, generation"},{"name":"order","in":"query","required":false,"schema":{"type":"string","description":"asc or desc","default":"desc","title":"Order"},"description":"asc or desc"},{"name":"service_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"✅ Unified table: Filter by service_name (for execution_ecosystem_logs)","title":"Service Name"},"description":"✅ Unified table: Filter by service_name (for execution_ecosystem_logs)"},{"name":"unified_8dna_role","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"For data_projects_8dna only: 'project' (user_id=0 rows) or 'user' (user_id>0 rows)","title":"Unified 8Dna Role"},"description":"For data_projects_8dna only: 'project' (user_id=0 rows) or 'user' (user_id>0 rows)"},{"name":"exclude_blanks","in":"query","required":false,"schema":{"type":"boolean","description":"For data_projects_8dna: exclude rows with data.is_blank=true from results","default":true,"title":"Exclude Blanks"},"description":"For data_projects_8dna: exclude rows with data.is_blank=true from results"},{"name":"filter_data","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"JSON object of data.* filters (CardGame / FAP logical entities)","title":"Filter Data"},"description":"JSON object of data.* filters (CardGame / FAP logical entities)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["8DNA API"],"summary":"Create Dna Entity","description":"Create new DNA entity\n\nUniversal CREATE operation","operationId":"create_dna_entity_api_dna__table_name__post","parameters":[{"name":"table_name","in":"path","required":true,"schema":{"type":"string","description":"DNA table name","title":"Table Name"},"description":"DNA table name"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Entity data","title":"Entity Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/dna/{table_name}/{entity_uuid}":{"get":{"tags":["8DNA API"],"summary":"Get Dna Entity","description":"Get specific DNA entity by UUID\n\n✅ Philosophy: Use uuid instead of database ID!\n\nUniversal GET by UUID operation\n\nArgs:\n    entity_uuid: UUID сущности\n    decrypt_protected: If True, automatically decrypts protected field","operationId":"get_dna_entity_api_dna__table_name___entity_uuid__get","parameters":[{"name":"table_name","in":"path","required":true,"schema":{"type":"string","description":"DNA table name","title":"Table Name"},"description":"DNA table name"},{"name":"entity_uuid","in":"path","required":true,"schema":{"type":"string","description":"Row UUID, or for data_projects_8dna a numeric user_id / project_id (user row tried first, then project-role slice)","title":"Entity Uuid"},"description":"Row UUID, or for data_projects_8dna a numeric user_id / project_id (user row tried first, then project-role slice)"},{"name":"decrypt_protected","in":"query","required":false,"schema":{"type":"boolean","description":"Automatically decrypt protected field","default":false,"title":"Decrypt Protected"},"description":"Automatically decrypt protected field"},{"name":"detail","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"full returns the body up to the hard ceiling. Omit for the byte ladder.","title":"Detail"},"description":"full returns the body up to the hard ceiling. Omit for the byte ladder."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["8DNA API"],"summary":"Update Dna Entity","description":"Update DNA entity\n\n✅ Philosophy: Use uuid instead of database ID!\n\nUniversal UPDATE operation\n\nArgs:\n    entity_uuid: UUID or numeric user_id/project_id (data_projects_8dna)","operationId":"update_dna_entity_api_dna__table_name___entity_uuid__put","parameters":[{"name":"table_name","in":"path","required":true,"schema":{"type":"string","description":"DNA table name","title":"Table Name"},"description":"DNA table name"},{"name":"entity_uuid","in":"path","required":true,"schema":{"type":"string","description":"Row UUID, or for data_projects_8dna a numeric user_id / project_id (user row tried first, then project-role slice)","title":"Entity Uuid"},"description":"Row UUID, or for data_projects_8dna a numeric user_id / project_id (user row tried first, then project-role slice)"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Update data","title":"Update Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["8DNA API"],"summary":"Delete Dna Entity","description":"Delete DNA entity\n\n✅ Philosophy: Use uuid instead of database ID!\n\nUniversal DELETE operation\n\nArgs:\n    entity_uuid: UUID or numeric user_id/project_id (data_projects_8dna)","operationId":"delete_dna_entity_api_dna__table_name___entity_uuid__delete","parameters":[{"name":"table_name","in":"path","required":true,"schema":{"type":"string","description":"DNA table name","title":"Table Name"},"description":"DNA table name"},{"name":"entity_uuid","in":"path","required":true,"schema":{"type":"string","description":"Row UUID, or for data_projects_8dna a numeric user_id / project_id (user row tried first, then project-role slice)","title":"Entity Uuid"},"description":"Row UUID, or for data_projects_8dna a numeric user_id / project_id (user row tried first, then project-role slice)"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/dna/{table_name}/search":{"post":{"tags":["8DNA API"],"summary":"Search Dna Entities","description":"Search DNA entities with complex criteria\n\nUniversal SEARCH operation","operationId":"search_dna_entities_api_dna__table_name__search_post","parameters":[{"name":"table_name","in":"path","required":true,"schema":{"type":"string","description":"DNA table name","title":"Table Name"},"description":"DNA table name"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Search criteria","title":"Search Criteria"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/dna/{table_name}/stats":{"get":{"tags":["8DNA API"],"summary":"Get Dna Table Stats","description":"Get statistics for DNA table\n\nUniversal STATS operation","operationId":"get_dna_table_stats_api_dna__table_name__stats_get","parameters":[{"name":"table_name","in":"path","required":true,"schema":{"type":"string","description":"DNA table name","title":"Table Name"},"description":"DNA table name"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/me":{"get":{"tags":["Authentication"],"summary":"Get Current User","description":"Get current user information","operationId":"get_current_user_api_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"auth.get_profile","x-capability-id":"auth.get_profile"}},"/api/auth/me/ecosystem-access":{"get":{"tags":["Authentication"],"summary":"Get My Ecosystem Access","description":"DNA-backed ecosystem operator access for the signed-in user.\n\nUses ``get_ecosystem_access_info`` (NeuralCache ``auth:eco_access``) — not JWT\n``project_id`` / ``is_ecosystem``. Frontend admin gates should prefer this over\nlisting ``/projects/1/users``.","operationId":"get_my_ecosystem_access_api_auth_me_ecosystem_access_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/session-bootstrap":{"get":{"tags":["Authentication"],"summary":"Get Session Bootstrap","description":"Session restore payload: ``/me`` user blob + ``profile_summary`` for SPA bootstrap.\n\nGene: ``frontend.spa.server_state.gen1``","operationId":"get_session_bootstrap_api_auth_session_bootstrap_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/me/bootstrap":{"get":{"tags":["Authentication"],"summary":"Auth Me Bootstrap","description":"Session restore payload: ``/me`` user blob + ``profile_summary`` for SPA bootstrap.\n\nGene: ``frontend.spa.server_state.gen1``","operationId":"auth_me_bootstrap_api_auth_me_bootstrap_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/test":{"get":{"tags":["Authentication"],"summary":"Test Endpoint","description":"Test endpoint without authentication","operationId":"test_endpoint_api_auth_test_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/test-jwt":{"get":{"tags":["Authentication"],"summary":"Test Jwt Endpoint","description":"Test JWT decoding","operationId":"test_jwt_endpoint_api_auth_test_jwt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/me-simple":{"get":{"tags":["Authentication"],"summary":"Get Current User Simple","description":"Simple endpoint to test JWT token parsing","operationId":"get_current_user_simple_api_auth_me_simple_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/health":{"get":{"tags":["Authentication"],"summary":"Auth Health","description":"Health check for auth endpoints","operationId":"auth_health_api_auth_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/test-login":{"post":{"tags":["Authentication"],"summary":"Test Login","description":"Test login endpoint for debugging","operationId":"test_login_api_auth_test_login_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/test-projects":{"get":{"tags":["Authentication"],"summary":"Test Projects","description":"Test endpoint to get projects without authentication","operationId":"test_projects_api_auth_test_projects_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/login":{"post":{"tags":["Authentication"],"summary":"Auth Login","description":"Единственная авторизация - всегда с проектом","operationId":"auth_login_api_auth_login_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"auth.login","security":[],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}]}},"/api/auth/check-ecosystem-user":{"get":{"tags":["Authentication"],"summary":"Check Ecosystem User","description":"Check if user exists in ecosystem (project_id=1)","operationId":"check_ecosystem_user_api_auth_check_ecosystem_user_get","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","description":"Email to check","title":"Email"},"description":"Email to check"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/confirm-email":{"get":{"tags":["Authentication"],"summary":"Confirm Email","description":"Confirm email (legacy GET). Prefer POST /auth/confirm-email from the SPA.","operationId":"confirm_email_api_auth_confirm_email_get","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","description":"Email confirmation token","title":"Token"},"description":"Email confirmation token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Authentication"],"summary":"Confirm Email Post","operationId":"confirm_email_post_api_auth_confirm_email_post","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"default":{},"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/verify-email":{"post":{"tags":["Authentication"],"summary":"Confirm Email Post","operationId":"confirm_email_post_api_auth_verify_email_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body","default":{}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/confirm-email/resend":{"post":{"tags":["Authentication"],"summary":"Confirm Email Resend","description":"Resend confirmation email (enumeration-safe; rate-limited).","operationId":"confirm_email_resend_api_auth_confirm_email_resend_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body","default":{}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/password-setup/mint":{"post":{"tags":["Authentication"],"summary":"Mint Password Setup Link","description":"Mint a one-time /set-password URL for an existing ecosystem user (operators).","operationId":"mint_password_setup_link_api_auth_password_setup_mint_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body","description":"Password-setup mint payload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/password-setup/status":{"get":{"tags":["Authentication"],"summary":"Password Setup Status","description":"Public peek for the set-password page. Does not consume the token.","operationId":"password_setup_status_api_auth_password_setup_status_get","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","description":"One-time setup token","title":"Token"},"description":"One-time setup token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/password-setup/complete":{"post":{"tags":["Authentication"],"summary":"Complete Password Setup Link","description":"Consume the one-time token and set the user's password. Then the SPA logs in.","operationId":"complete_password_setup_link_api_auth_password_setup_complete_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body","description":"Token + new password"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/password-reset/request":{"post":{"tags":["Authentication"],"summary":"Password Reset Request","description":"Request a self-service password reset email (enumeration-safe response).","operationId":"password_reset_request_api_auth_password_reset_request_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body","description":"Email for password reset"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/password-reset/status":{"get":{"tags":["Authentication"],"summary":"Password Reset Status","description":"Public peek for the reset-password page. Does not consume the token.","operationId":"password_reset_status_api_auth_password_reset_status_get","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","description":"One-time reset token","title":"Token"},"description":"One-time reset token"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/password-reset/reset":{"post":{"tags":["Authentication"],"summary":"Password Reset Complete","description":"Consume the one-time token and set a new password. Then the SPA logs in.","operationId":"password_reset_complete_api_auth_password_reset_reset_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body","description":"Token + new password"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/register":{"post":{"tags":["Authentication"],"summary":"Auth Register","description":"Register new user in ecosystem (project_id=1)","operationId":"auth_register_api_auth_register_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"security":[],"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat","x-mcp-action":"auth.register","x-capability-id":"auth.register"}},"/api/auth/register-to-project/{project_id}":{"post":{"tags":["Authentication"],"summary":"Register To Project","description":"Register user to specific project with proper ecosystem logic","operationId":"register_to_project_api_auth_register_to_project__project_id__post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID to register to","title":"Project Id"},"description":"Project ID to register to"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/add-user-to-project/{project_id}":{"post":{"tags":["Authentication"],"summary":"Add User To Project","description":"Add existing ecosystem user to specific project","operationId":"add_user_to_project_api_auth_add_user_to_project__project_id__post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID to add user to","title":"Project Id"},"description":"Project ID to add user to"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/mcp-oauth-bridge":{"post":{"tags":["Authentication"],"summary":"Auth Mcp Oauth Bridge","description":"Set short-lived HttpOnly cookie so browser authorize can 302 to AI OAuth clients (G-A174).","operationId":"auth_mcp_oauth_bridge_api_auth_mcp_oauth_bridge_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"auth.mcp_oauth_bridge","parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}]}},"/api/auth/logout":{"post":{"tags":["Authentication"],"summary":"Auth Logout","description":"Logout endpoint - invalidate session","operationId":"auth_logout_api_auth_logout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/refresh":{"post":{"tags":["Authentication"],"summary":"Refresh Token","description":"Refresh access token — in-place same-jti when L1 is warm (no delete-before-rebind).","operationId":"refresh_token_api_auth_refresh_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/permissions":{"get":{"tags":["Authentication"],"summary":"Get User Permissions","description":"Get user permissions from NeuroCache bitmap","operationId":"get_user_permissions_api_auth_permissions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/permissions/check":{"post":{"tags":["Authentication"],"summary":"Check Permission","description":"Check specific permission for user","operationId":"check_permission_api_auth_permissions_check_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Permission Data","description":"Permission check data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/stats":{"get":{"tags":["Authentication"],"summary":"Get Auth Stats","description":"Get authentication system statistics","operationId":"get_auth_stats_api_auth_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/profile-data":{"get":{"tags":["Authentication"],"summary":"Get Profile Data","description":"Return current user's ecosystem profile_data from project_id=1.","operationId":"get_profile_data_api_auth_profile_data_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Authentication"],"summary":"Update Profile Data","description":"Merge patch into current user's ecosystem profile_data.","operationId":"update_profile_data_api_auth_profile_data_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Profile Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/profile-data/get":{"get":{"tags":["Authentication"],"summary":"Get Profile Data Value","description":"Return one current-user profile_data value by dot path.","operationId":"get_profile_data_value_api_auth_profile_data_get_get","parameters":[{"name":"path","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":256,"title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/profile-data/set":{"post":{"tags":["Authentication"],"summary":"Set Profile Data Value","description":"Set one current-user profile_data value by dot path.","operationId":"set_profile_data_value_api_auth_profile_data_set_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/settings":{"get":{"tags":["Authentication"],"summary":"Get User Settings","description":"Get user settings","operationId":"get_user_settings_api_auth_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/settings/get":{"get":{"tags":["Authentication"],"summary":"Get User Settings Get","description":"Get user settings (GET method)","operationId":"get_user_settings_get_api_auth_settings_get_get","parameters":[{"name":"path","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Settings path to get specific value","title":"Path"},"description":"Settings path to get specific value"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/settings/set":{"post":{"tags":["Authentication"],"summary":"Set User Settings Set","description":"Set user settings value (POST method)","operationId":"set_user_settings_set_api_auth_settings_set_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_set_user_settings_set_api_auth_settings_set_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/security-alerts":{"get":{"tags":["Authentication"],"summary":"Get User Security Alerts","description":"Get user security alerts","operationId":"get_user_security_alerts_api_auth_security_alerts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/2fa/status":{"get":{"tags":["Authentication"],"summary":"Get User 2Fa Status","description":"Get user MFA status (legacy 2fa-status alias).","operationId":"auth_get_user_2fa_status","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/2fa-status":{"get":{"tags":["Authentication"],"summary":"Get User 2Fa Status","description":"Get user MFA status (legacy 2fa-status alias).","operationId":"auth_get_user_2fa_status_legacy_kebab","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/change-password":{"post":{"tags":["Authentication"],"summary":"Change User Password","description":"Change user password","operationId":"change_user_password_api_auth_change_password_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Password Data","description":"Password change data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/toggle-2fa":{"post":{"tags":["Authentication"],"summary":"Toggle User 2Fa","description":"Deprecated boolean 2FA toggle. Use POST /auth/mfa/totp/begin.","operationId":"toggle_user_2fa_api_auth_toggle_2fa_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Toggle Data","description":"2FA toggle data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/security-alerts/{alert_id}/mark-read":{"post":{"tags":["Authentication"],"summary":"Mark Security Alert As Read","description":"Mark security alert as read","operationId":"mark_security_alert_as_read_api_auth_security_alerts__alert_id__mark_read_post","parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"string","title":"Alert Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/projects/{project_id}/users/{user_id}/role":{"put":{"tags":["Authentication"],"summary":"Update User Role","description":"Update user role in project","operationId":"update_user_role_api_auth_projects__project_id__users__user_id__role_put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","description":"User ID","title":"User Id"},"description":"User ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Role data","title":"Role Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/convert-anonymous":{"post":{"tags":["Authentication"],"summary":"Convert Anonymous User","description":"Convert anonymous user to a full account. Email is required. Password is optional.","operationId":"convert_anonymous_user_api_auth_convert_anonymous_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/switch-project":{"post":{"tags":["Authentication"],"summary":"Switch Project","description":"Mint a session for target_project_id using an existing authenticated Bearer.","operationId":"switch_project_api_auth_switch_project_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/login-by-key":{"post":{"tags":["Authentication"],"summary":"Login By Key","description":"Login using user API key — Session OS mint parity (optimal flow A3).","operationId":"login_by_key_api_auth_login_by_key_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/anonymous/provision":{"post":{"tags":["Authentication"],"summary":"Anonymous Provision","description":"Provision an anonymous player for a hosted project SPA (ArcaneStack).\n\nGene: ``core.auth.anonymous_provisioning.gen1``\n\nBody: ``{ \"project_id\": int }``\nOptional header: ``X-Anon-Bootstrap-Key`` — must match ``ANON_BOOTSTRAP_KEY`` or\n``OAUTH_ECOSYSTEM_API_KEY`` when those env vars are set. If neither env is set,\nthe header is optional (dev-only).\n\nReturns ``api_key``, ``user_id``, ``access_token`` (HS256 JWT for Stream Relay),\n``refresh_token``, ``is_anonymous``, ``project_id``.","operationId":"anonymous_provision_api_auth_anonymous_provision_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/me/channel-identities":{"get":{"tags":["Authentication"],"summary":"List My Channel Identities","description":"List bot channel links stored on the user profile (Layer 1 SoT).","operationId":"list_my_channel_identities_api_auth_me_channel_identities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/me/channel-identities/{identity_id}":{"delete":{"tags":["Authentication"],"summary":"Revoke My Channel Identity","description":"Revoke a channel identity link (owner-only). Step-up if session > 5 min.","operationId":"revoke_my_channel_identity_api_auth_me_channel_identities__identity_id__delete","parameters":[{"name":"identity_id","in":"path","required":true,"schema":{"type":"string","minLength":8,"maxLength":64,"title":"Identity Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_revoke_my_channel_identity_api_auth_me_channel_identities__identity_id__delete"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/mfa/status":{"get":{"tags":["Authentication"],"summary":"Mfa Status","operationId":"mfa_status_api_auth_mfa_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/auth/mfa/totp/begin":{"post":{"tags":["Authentication"],"summary":"Mfa Totp Begin","operationId":"mfa_totp_begin_api_auth_mfa_totp_begin_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/mfa/totp/confirm":{"post":{"tags":["Authentication"],"summary":"Mfa Totp Confirm","operationId":"mfa_totp_confirm_api_auth_mfa_totp_confirm_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/mfa/channel/begin":{"post":{"tags":["Authentication"],"summary":"Mfa Channel Begin","operationId":"mfa_channel_begin_api_auth_mfa_channel_begin_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body","default":{}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/mfa/channel/confirm":{"post":{"tags":["Authentication"],"summary":"Mfa Channel Confirm","operationId":"mfa_channel_confirm_api_auth_mfa_channel_confirm_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/mfa/telegram/begin":{"post":{"tags":["Authentication"],"summary":"Mfa Telegram Begin","operationId":"mfa_telegram_begin_api_auth_mfa_telegram_begin_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/mfa/telegram/confirm":{"post":{"tags":["Authentication"],"summary":"Mfa Telegram Confirm","operationId":"mfa_telegram_confirm_api_auth_mfa_telegram_confirm_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/mfa/disable":{"post":{"tags":["Authentication"],"summary":"Mfa Disable","operationId":"mfa_disable_api_auth_mfa_disable_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body","default":{}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/mfa/backup/regenerate":{"post":{"tags":["Authentication"],"summary":"Mfa Backup Regenerate","operationId":"mfa_backup_regenerate_api_auth_mfa_backup_regenerate_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body","default":{}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/mfa/otp/send":{"post":{"tags":["Authentication"],"summary":"Mfa Otp Send","description":"Unauthenticated: send email/telegram OTP for an existing mfa_ticket.","operationId":"mfa_otp_send_api_auth_mfa_otp_send_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/mfa/verify":{"post":{"tags":["Authentication"],"summary":"Mfa Verify Ticket","description":"Verify an MFA ticket (does not mint). SPA login sends ticket+code on POST /auth/login.","operationId":"mfa_verify_ticket_api_auth_mfa_verify_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/email-otp/send":{"post":{"tags":["Authentication"],"summary":"Email Otp Send","description":"Request a one-time sign-in code (anti-enumeration: always returns sent=true).","operationId":"email_otp_send_api_auth_email_otp_send_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body","default":{}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/auth/email-otp/login":{"post":{"tags":["Authentication"],"summary":"Email Otp Login","description":"Verify email OTP and mint session (MFA enrolled users need mfa_ticket + mfa_code).","operationId":"email_otp_login_api_auth_email_otp_login_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/hosted-apps/{project_id}/session":{"post":{"tags":["auth"],"summary":"Mint Hosted App Session","operationId":"mint_hosted_app_session_api_hosted_apps__project_id__session_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["auth"],"summary":"Clear Hosted App Session","description":"Drop the hosted_app cookie. The cabinet bearer is not involved.","operationId":"clear_hosted_app_session_api_hosted_apps__project_id__session_delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/oauth2/authorize":{"get":{"tags":["OAuth 2.1"],"summary":"Oauth2 Authorize","description":"OAuth 2.1 Authorization Endpoint\n\nГенерирует authorization code для Authorization Code Flow.\nПользователь должен быть авторизован (через существующую систему).","operationId":"oauth2_authorize_api_oauth2_authorize_get","parameters":[{"name":"client_id","in":"query","required":true,"schema":{"type":"string","description":"OAuth client ID","title":"Client Id"},"description":"OAuth client ID"},{"name":"redirect_uri","in":"query","required":true,"schema":{"type":"string","description":"Redirect URI after authorization","title":"Redirect Uri"},"description":"Redirect URI after authorization"},{"name":"response_type","in":"query","required":false,"schema":{"type":"string","description":"Response type (always 'code' for OAuth 2.1)","default":"code","title":"Response Type"},"description":"Response type (always 'code' for OAuth 2.1)"},{"name":"scope","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Requested scopes (space-separated)","title":"Scope"},"description":"Requested scopes (space-separated)"},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"CSRF protection state","title":"State"},"description":"CSRF protection state"},{"name":"code_challenge","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"PKCE code challenge","title":"Code Challenge"},"description":"PKCE code challenge"},{"name":"code_challenge_method","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"PKCE method (S256 or plain)","default":"S256","title":"Code Challenge Method"},"description":"PKCE method (S256 or plain)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/oauth2/token":{"post":{"tags":["OAuth 2.1"],"summary":"Oauth2 Token","description":"Универсальный OAuth 2.1 Token Endpoint\n\nПоддерживает все grant types:\n- authorization_code\n- client_credentials\n- refresh_token\n- urn:ietf:params:oauth:grant-type:device_code\n\nRFC 6749 urlencoded body — parsed without FastAPI ``Form()`` so this\nrouter still mounts when python-multipart is absent.","operationId":"oauth2_token_api_oauth2_token_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/oauth2/device/authorize":{"post":{"tags":["OAuth 2.1"],"summary":"Oauth2 Device Authorize","description":"OAuth 2.1 Device Authorization Endpoint.\nВозвращает device_code и user_code для устройств без браузера.\nPublic IDE plugins (cursor-plugin, …) skip client_secret (RFC 8628).","operationId":"oauth2_device_authorize_api_oauth2_device_authorize_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/oauth2/device/verify":{"post":{"tags":["OAuth 2.1"],"summary":"Oauth2 Device Verify","description":"Подтверждение Device Code авторизации пользователем.\nПользователь должен быть аутентифицирован.","operationId":"oauth2_device_verify_api_oauth2_device_verify_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/oauth2/providers":{"get":{"tags":["OAuth 2.1"],"summary":"Get Oauth Providers","description":"Получить список доступных OAuth провайдеров\n\nВозвращает провайдеры с ``login_ready`` (readiness SoT). Use ``for_login=true`` on login/register UI.","operationId":"get_oauth_providers_api_oauth2_providers_get","parameters":[{"name":"enabled_only","in":"query","required":false,"schema":{"type":"boolean","description":"Return only enabled providers","default":true,"title":"Enabled Only"},"description":"Return only enabled providers"},{"name":"for_login","in":"query","required":false,"schema":{"type":"boolean","description":"When true, return only providers ready for login (enabled + client_id + client_secret)","default":false,"title":"For Login"},"description":"When true, return only providers ready for login (enabled + client_id + client_secret)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/oauth2/connected-providers":{"get":{"tags":["OAuth 2.1"],"summary":"Get Connected Providers","description":"Получить список подключенных OAuth провайдеров текущего пользователя","operationId":"get_connected_providers_api_oauth2_connected_providers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/oauth2/connect/{provider}":{"post":{"tags":["OAuth 2.1"],"summary":"Connect Oauth Provider","description":"Подключить OAuth провайдер к текущему пользователю","operationId":"connect_oauth_provider_api_oauth2_connect__provider__post","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","description":"Provider ID","title":"Provider"},"description":"Provider ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_connect_oauth_provider_api_oauth2_connect__provider__post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/oauth2/disconnect/{provider}":{"post":{"tags":["OAuth 2.1"],"summary":"Disconnect Oauth Provider","description":"Отключить OAuth провайдер от текущего пользователя","operationId":"disconnect_oauth_provider_api_oauth2_disconnect__provider__post","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","description":"Provider ID","title":"Provider"},"description":"Provider ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/oauth2/clients":{"get":{"tags":["OAuth 2.1"],"summary":"List Oauth Clients","description":"Список OAuth клиентов пользователя","operationId":"list_oauth_clients_api_oauth2_clients_get","parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by user_id (default: current user)","title":"User Id"},"description":"Filter by user_id (default: current user)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["OAuth 2.1"],"summary":"Create Oauth Client","description":"Создать новый OAuth клиент (Dynamic Client Registration)\n\nReturns client_id и client_secret (только при создании!)","operationId":"create_oauth_client_api_oauth2_clients_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_create_oauth_client_api_oauth2_clients_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/oauth2/clients/{client_id}":{"put":{"tags":["OAuth 2.1"],"summary":"Update Oauth Client","description":"Обновить OAuth клиент","operationId":"update_oauth_client_api_oauth2_clients__client_id__put","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","description":"Client ID","title":"Client Id"},"description":"Client ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_update_oauth_client_api_oauth2_clients__client_id__put"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["OAuth 2.1"],"summary":"Delete Oauth Client","description":"Удалить OAuth клиент","operationId":"delete_oauth_client_api_oauth2_clients__client_id__delete","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","description":"Client ID","title":"Client Id"},"description":"Client ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/oauth2/providers/{provider}/authorize":{"get":{"tags":["OAuth 2.1"],"summary":"Get External Provider Authorize Url","description":"Получить authorization URL для внешнего OAuth провайдера.\n\n- ?flow=login или ?flow=register: login_flow (user_id=None), даже если есть сессия. Вызов без авторизации (страница входа).\n- Без flow: provider_connect — привязка провайдера к текущему пользователю. Запрос **должен** выполняться с авторизацией\n  (cookie/токен), чтобы в state попал user_id и после callback провайдер привязался к этому пользователю (Профиль → Безопасность → Способы входа).","operationId":"get_external_provider_authorize_url_api_oauth2_providers__provider__authorize_get","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","description":"Provider ID (google, github, etc.)","title":"Provider"},"description":"Provider ID (google, github, etc.)"},{"name":"flow","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Flow: login or register = login_flow (no session); omit = connect for current user","title":"Flow"},"description":"Flow: login or register = login_flow (no session); omit = connect for current user"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/oauth2/providers/{provider}/callback":{"get":{"tags":["OAuth 2.1"],"summary":"Handle External Provider Callback","description":"Обработка callback от внешнего OAuth провайдера\n\nОбменивает authorization code на токены и сохраняет их","operationId":"handle_external_provider_callback_api_oauth2_providers__provider__callback_get","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","description":"Provider ID","title":"Provider"},"description":"Provider ID"},{"name":"code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Authorization code from provider","title":"Code"},"description":"Authorization code from provider"},{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"State parameter","title":"State"},"description":"State parameter"},{"name":"error","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Error from provider","title":"Error"},"description":"Error from provider"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/admin/oauth2/providers":{"get":{"tags":["OAuth 2.1 Admin"],"summary":"Admin List Providers","description":"Список всех OAuth провайдеров (для админов экосистемы)","operationId":"admin_list_providers_api_admin_oauth2_providers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/admin/oauth2/env-diagnostics":{"get":{"tags":["OAuth 2.1 Admin"],"summary":"Admin Oauth Env Diagnostics","description":"Ops: verify OAUTH_* / ENV_FILE reached the backend process (no secret values).","operationId":"admin_oauth_env_diagnostics_api_admin_oauth2_env_diagnostics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/admin/oauth2/providers/{provider_id}":{"put":{"tags":["OAuth 2.1 Admin"],"summary":"Admin Update Provider","description":"Обновить настройки OAuth провайдера (только для админов экосистемы)","operationId":"admin_update_provider_api_admin_oauth2_providers__provider_id__put","parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","description":"Provider ID","title":"Provider Id"},"description":"Provider ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_admin_update_provider_api_admin_oauth2_providers__provider_id__put"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["OAuth 2.1 Admin"],"summary":"Admin Delete Provider","description":"Удалить OAuth провайдера из конфигурации (только для админов экосистемы).","operationId":"admin_delete_provider_api_admin_oauth2_providers__provider_id__delete","parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","description":"Provider ID to delete","title":"Provider Id"},"description":"Provider ID to delete"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/admin/oauth2/providers/{provider_id}/decrypt-probe":{"post":{"tags":["OAuth 2.1 Admin"],"summary":"Admin Provider Decrypt Probe","description":"Verify protected blob decrypts with current master secret (no secret in response).","operationId":"admin_provider_decrypt_probe_api_admin_oauth2_providers__provider_id__decrypt_probe_post","parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","description":"Provider ID (google, github, …)","title":"Provider Id"},"description":"Provider ID (google, github, …)"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/admin/oauth2/providers/{provider_id}/test-readiness":{"post":{"tags":["OAuth 2.1 Admin"],"summary":"Admin Test Provider Readiness","description":"Readiness check without sending the user through Google (ops/admin).","operationId":"admin_test_provider_readiness_api_admin_oauth2_providers__provider_id__test_readiness_post","parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","description":"Provider ID (google, github, …)","title":"Provider Id"},"description":"Provider ID (google, github, …)"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/admin/oauth2/providers/{provider_id}/check":{"get":{"tags":["OAuth 2.1 Admin"],"summary":"Admin Check Provider Connection","description":"Проверка подключения OAuth провайдера: возвращает authorize_url для теста.\nАдмин может открыть URL и убедиться, что страница входа провайдера открывается (client_id корректен).","operationId":"admin_check_provider_connection_api_admin_oauth2_providers__provider_id__check_get","parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","description":"Provider ID to check","title":"Provider Id"},"description":"Provider ID to check"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/admin/oauth2/providers/{provider_id}/setup-hints":{"get":{"tags":["OAuth 2.1 Admin"],"summary":"Admin Provider Setup Hints","description":"Canonical redirect URI + readiness flags for Google/GitHub console setup.\nSoT: AGENTSTACK_PUBLIC_URL + _build_oauth_redirect_uri (not window.location.origin).","operationId":"admin_provider_setup_hints_api_admin_oauth2_providers__provider_id__setup_hints_get","parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","description":"Provider ID (google, github, …)","title":"Provider Id"},"description":"Provider ID (google, github, …)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/admin/oauth2/clients":{"get":{"tags":["OAuth 2.1 Admin"],"summary":"Admin List Oauth Clients","description":"Список OAuth клиентов (для админов экосистемы).","operationId":"admin_list_oauth_clients_api_admin_oauth2_clients_get","parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by user_id","title":"User Id"},"description":"Filter by user_id"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["OAuth 2.1 Admin"],"summary":"Admin Create Oauth Client","description":"Создать OAuth клиент от имени пользователя (для админов экосистемы).","operationId":"admin_create_oauth_client_api_admin_oauth2_clients_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_admin_create_oauth_client_api_admin_oauth2_clients_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/admin/oauth2/clients/{client_id}":{"put":{"tags":["OAuth 2.1 Admin"],"summary":"Admin Update Oauth Client","description":"Обновить OAuth клиент (для админов экосистемы).","operationId":"admin_update_oauth_client_api_admin_oauth2_clients__client_id__put","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","description":"Client ID","title":"Client Id"},"description":"Client ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_admin_update_oauth_client_api_admin_oauth2_clients__client_id__put"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["OAuth 2.1 Admin"],"summary":"Admin Delete Oauth Client","description":"Удалить OAuth клиент (для админов экосистемы).","operationId":"admin_delete_oauth_client_api_admin_oauth2_clients__client_id__delete","parameters":[{"name":"client_id","in":"path","required":true,"schema":{"type":"string","description":"Client ID","title":"Client Id"},"description":"Client ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/admin/oauth/setup-hints":{"get":{"tags":["OAuth 2.1 Admin"],"summary":"Admin Oauth Setup Hints Batch","description":"Batch OAuth console setup hints (redirect URI + readiness).","operationId":"admin_oauth_setup_hints_batch_api_admin_oauth_setup_hints_get","parameters":[{"name":"ids","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated provider IDs","title":"Ids"},"description":"Comma-separated provider IDs"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/oauth2/device/info":{"get":{"tags":["OAuth 2.1"],"summary":"Device Code Info","description":"Return client + scope metadata for the Activate page.\n\nAccepts either ``user_code`` (Cursor plugin) or ``link_id`` + ``link_code``\n(bot one-click link ticket).","operationId":"device_code_info_api_oauth2_device_info_get","parameters":[{"name":"user_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Code"}},{"name":"link_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link Id"}},{"name":"link_code","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/oauth2/device/approve":{"post":{"tags":["OAuth 2.1"],"summary":"Device Code Approve","description":"Approve a pending device_code authorization.\n\nThe user must already be authenticated (session cookie / Bearer). Only the\nscopes in `scopes_approved` (a subset of the requested ones) are granted; if\nomitted, all requested scopes are granted.","operationId":"device_code_approve_api_oauth2_device_approve_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_device_code_approve_api_oauth2_device_approve_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/oauth2/device/deny":{"post":{"tags":["OAuth 2.1"],"summary":"Device Code Deny","description":"Deny a pending device_code authorization (user cancelled).","operationId":"device_code_deny_api_oauth2_device_deny_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_device_code_deny_api_oauth2_device_deny_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/telemetry/shell":{"post":{"tags":["Analytics"],"summary":"Ingest Shell Telemetry","description":"Ingest dual-shell navigation / resolve beacons.\n\nAuthentication is optional (matches cookie **or** Bearer). Anonymous batches\nare stored without ``emit_signal`` user attribution — same pattern as\n``POST /api/telemetry/plugin``.\n\nContract: never 500 — malformed → 400; unexpected → 200 dropped.","operationId":"ingest_shell_telemetry_api_telemetry_shell_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/telemetry/shell/summary":{"get":{"tags":["Analytics"],"summary":"Shell Telemetry Summary","description":"Recent shell beacon batches (admin diagnostics; in-process buffer).","operationId":"shell_telemetry_summary_api_telemetry_shell_summary_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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/telemetry/plugin":{"post":{"tags":["Analytics"],"summary":"Ingest Plugin Telemetry","description":"Ingest a batch of plugin usage events.\n\nAuthentication is optional — anonymous batches are accepted but tagged as\n`anonymous` and rolled up separately so they cannot poison per-user stats.","operationId":"ingest_plugin_telemetry_api_telemetry_plugin_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PluginTelemetryBatch"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/telemetry/plugin/summary":{"get":{"tags":["Analytics"],"summary":"Plugin Telemetry Summary","description":"Return a summary of plugin telemetry for the admin dashboard.\n\nAuth required (admin read). Reads aggregated counters written by the\n`POST /api/telemetry/plugin` endpoint.","operationId":"plugin_telemetry_summary_api_telemetry_plugin_summary_get","parameters":[{"name":"plugin","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plugin"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/user/api-keys":{"post":{"tags":["User"],"summary":"Create User Api Key","description":"Create a user or agent PAT (ecosystem identity, project_id=1 in JWT).","operationId":"create_user_api_key_api_user_api_keys_post","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserAPIKeyRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserAPIKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"get":{"tags":["User"],"summary":"List User Api Keys","description":"List all user API keys\n\nReturns a list of all API keys for the authenticated user.","operationId":"list_user_api_keys_api_user_api_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/UserAPIKeyResponse"},"title":"Response List User Api Keys Api User Api Keys Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/user/api-keys/limits/check":{"get":{"tags":["User"],"summary":"Check User Api Key Limit","description":"Return the caller's PAT quota (buff-aware).","operationId":"check_user_api_key_limit_api_user_api_keys_limits_check_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Check User Api Key Limit Api User Api Keys Limits Check Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/user/api-keys/{key_id}":{"delete":{"tags":["User"],"summary":"Delete User Api Key","description":"Delete a user API key\n\nDeletes (deactivates) a user API key. The key will no longer be valid.","operationId":"delete_user_api_key_api_user_api_keys__key_id__delete","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"patch":{"tags":["User"],"summary":"Update User Api Key","description":"Update a user API key\n\nUpdates the name or status of a user API key.","operationId":"update_user_api_key_api_user_api_keys__key_id__patch","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserAPIKeyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAPIKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"get":{"tags":["User"],"summary":"Get User Api Key","description":"Get a specific user API key\n\nReturns information about a specific API key.\nUse reveal_secret=true to get the full API key (only available once after creation/rotation).\nWhen reveal_secret=true, returns RevealedUserAPIKeyResponse with api_key field.","operationId":"get_user_api_key_api_user_api_keys__key_id__get","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}},{"name":"reveal_secret","in":"query","required":false,"schema":{"type":"boolean","description":"Return full API key secret when true","default":false,"title":"Reveal Secret"},"description":"Return full API key secret when true"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAPIKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/user/api-keys/{key_id}/rotate":{"post":{"tags":["User"],"summary":"Rotate User Api Key","description":"Rotate a user API key\n\nGenerates a new API key for the specified key_id. The old key will be invalidated.\nReturns the new API key - save it immediately as it won't be shown again.","operationId":"rotate_user_api_key_api_user_api_keys__key_id__rotate_post","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Rotate User Api Key Api User Api Keys  Key Id  Rotate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/user/sessions":{"get":{"tags":["User","User"],"summary":"Get user sessions","description":"Convenience path. Canonical: GET /api/sessions. Returns active sessions for the authenticated user (user_id from session).","operationId":"get_user_sessions_alias_api_user_sessions_get","responses":{"200":{"description":"List of user sessions","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/user/profile":{"get":{"tags":["User","User"],"summary":"Get user profile","description":"Convenience path. Canonical: GET /api/profile. Returns profile for the authenticated user (user_id from session).","operationId":"get_user_profile_alias_api_user_profile_get","responses":{"200":{"description":"User profile","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/user/wallet":{"get":{"tags":["User","User"],"summary":"Get user wallets","description":"Convenience path. Canonical: GET /api/profile/wallets. Returns wallets for the authenticated user (user_id from session).","operationId":"get_user_wallet_alias_api_user_wallet_get","responses":{"200":{"description":"List of user wallets","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/project/api-keys":{"get":{"tags":["Project","Project"],"summary":"Get project API keys","description":"Convenience path. Canonical: GET /api/apikeys. Returns API keys for the current project (project_id from session).","operationId":"get_project_api_keys_alias_api_project_api_keys_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Project ID (optional, uses session project_id if not provided)","title":"Project Id"},"description":"Project ID (optional, uses session project_id if not provided)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"Items per page","default":10,"title":"Per Page"},"description":"Items per page"}],"responses":{"200":{"description":"List of project API keys","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/project/wallet":{"get":{"tags":["Project","Project"],"summary":"Get project wallets","description":"Convenience path. Canonical: GET /api/projects/{project_id}/wallets. Returns wallets for the current project (project_id from session).","operationId":"get_project_wallet_alias_api_project_wallet_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Project ID (optional, uses session project_id if not provided)","title":"Project Id"},"description":"Project ID (optional, uses session project_id if not provided)"}],"responses":{"200":{"description":"List of project wallets","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/project/notifications":{"get":{"tags":["Project","Project"],"summary":"Get project notifications","description":"Convenience path. Canonical: GET /api/notifications/{project_id}. Returns notifications for the current project (project_id from session).","operationId":"get_project_notifications_alias_api_project_notifications_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Project ID (optional, uses session project_id if not provided)","title":"Project Id"},"description":"Project ID (optional, uses session project_id if not provided)"}],"responses":{"200":{"description":"List of project notifications","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/project/members":{"get":{"tags":["Project","Project"],"summary":"Get project members","description":"Convenience path. Canonical: GET /api/projects/{project_id}/users. Returns members for the current project (project_id from session).","operationId":"get_project_members_alias_api_project_members_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Project ID (optional, uses session project_id if not provided)","title":"Project Id"},"description":"Project ID (optional, uses session project_id if not provided)"},{"name":"user_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"Filter by specific user IDs (batch)","title":"User Ids"},"description":"Filter by specific user IDs (batch)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"Items per page","default":50,"title":"Per Page"},"description":"Items per page"},{"name":"include_ecosystem","in":"query","required":false,"schema":{"type":"boolean","description":"Include ecosystem public profile overlay","default":false,"title":"Include Ecosystem"},"description":"Include ecosystem public profile overlay"},{"name":"include_full_ecosystem","in":"query","required":false,"schema":{"type":"boolean","description":"Include full ecosystem profile for allowed callers","default":false,"title":"Include Full Ecosystem"},"description":"Include full ecosystem profile for allowed callers"}],"responses":{"200":{"description":"List of project members","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/discovery/manifest.json":{"get":{"tags":["Discovery"],"summary":"Get Discovery Manifest Public","description":"Robot-ready capability index (static v1; client compiles full manifest).","operationId":"get_discovery_manifest_public_api_discovery_manifest_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Discovery Manifest Public Api Discovery Manifest Json Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/discovery/projects/{project_id}/snapshot":{"get":{"tags":["Discovery"],"summary":"Get Project Discovery Snapshot","description":"Lightweight badges for discovery cards (phase 6).","operationId":"get_project_discovery_snapshot_api_discovery_projects__project_id__snapshot_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Project Discovery Snapshot Api Discovery Projects  Project Id  Snapshot Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/build-queue/enqueue":{"post":{"tags":["Build Queue"],"summary":"Enqueue Build","description":"Enqueue project build. user_id from auth context (single contract).","operationId":"enqueue_build_api_build_queue_enqueue_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuildRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Enqueue Build Api Build Queue Enqueue Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/build-queue/status":{"get":{"tags":["Build Queue"],"summary":"Get Queue Status","description":"Get queue statistics\n\n🧬 Генетический код: endpoints.build_queue.status.gen1","operationId":"get_queue_status_api_build_queue_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Queue Status Api Build Queue Status Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/build-queue/history/{project_id}":{"get":{"tags":["Build Queue"],"summary":"Get Project History","description":"Get build history for project\n\n🧬 Генетический код: endpoints.build_queue.history.gen1","operationId":"get_project_history_api_build_queue_history__project_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Project History Api Build Queue History  Project Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/session/properties":{"get":{"tags":["Sessions"],"summary":"Get Session Properties","description":"Get current session properties (canonical session info for clients).\nPhilosophy: Elegant Minimalism - single endpoint for session props; clients use this instead of /auth/me when only session metadata is needed.","operationId":"get_session_properties_api_session_properties_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sessions":{"get":{"tags":["Sessions"],"summary":"Get Active Sessions","description":"Get active sessions for current user","operationId":"get_active_sessions_api_sessions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/apikeys/keys":{"get":{"tags":["API Keys"],"summary":"Get Api Keys","description":"Get API keys for a project.","operationId":"get_api_keys_api_apikeys_keys_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Per Page"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"apikeys.list","x-capability-id":"apikeys.list"},"post":{"tags":["API Keys"],"summary":"Create Api Key For Project","description":"Create a new API key for a project.","operationId":"create_api_key_for_project_api_apikeys_keys_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"API key data","title":"Key Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat","x-mcp-action":"apikeys.create","x-capability-id":"apikeys.create"}},"/api/apikeys/keys/{key_id}":{"put":{"tags":["API Keys"],"summary":"Update Api Key","description":"Update an API key's properties.","operationId":"update_api_key_api_apikeys_keys__key_id__put","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"API key update data","title":"Key Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"get":{"tags":["API Keys"],"summary":"Get Api Key","description":"Get a specific API key for a project.","operationId":"get_api_key_api_apikeys_keys__key_id__get","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"reveal_secret","in":"query","required":false,"schema":{"type":"boolean","description":"Return full API key secret when true","default":false,"title":"Reveal Secret"},"description":"Return full API key secret when true"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["API Keys"],"summary":"Delete Api Key For Project","description":"Delete an API key for a project.","operationId":"delete_api_key_for_project_api_apikeys_keys__key_id__delete","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/apikeys/keys/{key_id}/rotate":{"post":{"tags":["API Keys"],"summary":"Rotate Api Key For Project","description":"Rotate an existing API key for a project.","operationId":"rotate_api_key_for_project_api_apikeys_keys__key_id__rotate_post","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/apikeys/stats":{"get":{"tags":["API Keys"],"summary":"Get Api Keys Stats","description":"Get API key statistics for a project.","operationId":"get_api_keys_stats_api_apikeys_stats_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/apikeys/first-key":{"post":{"tags":["API Keys"],"summary":"Create First Api Key","description":"Create the first API key for a project (owner only).","operationId":"create_first_api_key_api_apikeys_first_key_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Key Data","description":"API key data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/apikeys/initialize-agentstack":{"post":{"tags":["API Keys"],"summary":"Initialize Agentstack Keys","description":"Initialize default API keys for AgentStack ecosystem (project_id=ECOSYSTEM_PROJECT_ID).","operationId":"initialize_agentstack_keys_api_apikeys_initialize_agentstack_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/apikeys/sync/{project_id}":{"post":{"tags":["API Keys"],"summary":"Sync Project Api Keys","description":"Sync all API keys from project config.\n\nNote: Sessions are now stored in user history (data_projects_8dna.data.sessions for project_id=1).\nAPI keys are cached in NeuroCache for fast access.","operationId":"sync_project_api_keys_api_apikeys_sync__project_id__post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commands/execute":{"post":{"tags":["Commands"],"summary":"Execute Command","description":"Execute a single protein command\n\nSurgical Operations Pattern\n- POST = Create and execute command\n- Returns structured response (Philosophy v0.1.2)","operationId":"execute_command_api_commands_execute_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/protein_commands__router__CommandRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/protein_commands__router__CommandResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/commands/dna/{entity_type}/{operation}":{"post":{"tags":["Commands"],"summary":"Execute Dna Operation","description":"Execute DNA CRUD operation using protein commands\n\nSurgical Operations Pattern\n- POST = Create and execute DNA operation","operationId":"execute_dna_operation_api_commands_dna__entity_type___operation__post","parameters":[{"name":"entity_type","in":"path","required":true,"schema":{"type":"string","title":"Entity Type"}},{"name":"operation","in":"path","required":true,"schema":{"type":"string","title":"Operation"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/protein_commands__router__CommandResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commands/batch":{"post":{"tags":["Commands"],"summary":"Execute Batch Commands","description":"Execute multiple protein commands in batch\n\nProtein Command Architecture\n- Batch processing for efficiency\n- Parallel or sequential execution\n- One managed-organism cell per batch (see COMMAND_BATCH_ORGANISM_* env)","operationId":"execute_batch_commands_api_commands_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchCommandRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchCommandResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/commands/status/{command_uuid}":{"get":{"tags":["Commands"],"summary":"Get Command Status","description":"Get command execution status\n\nData Response Principle\n- Always return structured response","operationId":"get_command_status_api_commands_status__command_uuid__get","parameters":[{"name":"command_uuid","in":"path","required":true,"schema":{"type":"string","title":"Command Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/protein_commands__router__CommandResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commands/history":{"get":{"tags":["Commands"],"summary":"Get Command History","description":"Get command execution history\n\nData Response Principle\n- Always return structured response","operationId":"get_command_history_api_commands_history_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/protein_commands__router__CommandResponse"},"title":"Response Get Command History Api Commands History Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commands/entities/{entity_type}":{"get":{"tags":["Commands"],"summary":"Get Entities","description":"Get entities using protein commands (convenience endpoint)\n\nElegant Minimalism\n- Simple interface for common operations","operationId":"get_entities_api_commands_entities__entity_type__get","parameters":[{"name":"entity_type","in":"path","required":true,"schema":{"type":"string","title":"Entity Type"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Filters"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/protein_commands__router__CommandResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Commands"],"summary":"Create Entity","description":"Create entity using protein commands (convenience endpoint)\n\nElegant Minimalism\n- Simple interface for common operations","operationId":"create_entity_api_commands_entities__entity_type__post","parameters":[{"name":"entity_type","in":"path","required":true,"schema":{"type":"string","title":"Entity Type"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/protein_commands__router__CommandResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commands/health":{"get":{"tags":["Commands"],"summary":"Health Check","description":"Health check endpoint for protein command API\n\nData Response Principle\n- Always return structured response","operationId":"health_check_api_commands_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/test-auth":{"get":{"tags":["Projects"],"summary":"Test Auth Endpoint","description":"Test auth endpoint","operationId":"test_auth_endpoint_api_test_auth_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/presets":{"get":{"tags":["Projects"],"summary":"Get Project Presets","description":"Get list of available project presets","operationId":"get_project_presets_api_presets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/":{"get":{"tags":["Projects"],"summary":"Get Projects List","description":"List projects for the current user. Ecosystem owners see all projects; others see projects they own or are members of. Response includes users_count and updated_at for each project (for client-side sorting).","operationId":"get_projects_list_api_projects__get","parameters":[{"name":"accessible_only","in":"query","required":false,"schema":{"type":"boolean","description":"If true, return only projects where user is owner or member (e.g. for builder list)","default":false,"title":"Accessible Only"},"description":"If true, return only projects where user is owner or member (e.g. for builder list)"},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean","description":"If true, ignore accessible_project_ids cache and recompute list from DB (use after being added to a project elsewhere)","default":false,"title":"Refresh"},"description":"If true, ignore accessible_project_ids cache and recompute list from DB (use after being added to a project elsewhere)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Projects"],"summary":"Create Project","description":"Create new project","operationId":"create_project_api_projects__post","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Project data","title":"Project Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/projects":{"get":{"tags":["Projects"],"summary":"List projects","description":"List projects for the current user. Ecosystem owners see all projects; others see projects they own or are members of. Response includes users_count and updated_at for each project (for client-side sorting).","operationId":"get_projects_list_api_projects_get","parameters":[{"name":"accessible_only","in":"query","required":false,"schema":{"type":"boolean","description":"If true, return only projects where user is owner or member (e.g. for builder list)","default":false,"title":"Accessible Only"},"description":"If true, return only projects where user is owner or member (e.g. for builder list)"},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean","description":"If true, ignore accessible_project_ids cache and recompute list from DB (use after being added to a project elsewhere)","default":false,"title":"Refresh"},"description":"If true, ignore accessible_project_ids cache and recompute list from DB (use after being added to a project elsewhere)"}],"responses":{"200":{"description":"Object with success, projects (array), total_projects, user_id, timestamp. Each project has id, name, is_active, users_count, updated_at, created_at, config, etc.","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"projects.get_projects"},"post":{"tags":["Projects"],"summary":"Create Project","description":"Create new project","operationId":"create_project_api_projects_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Project data","title":"Project Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat","x-mcp-action":"projects.create_project","x-capability-id":"projects.create_project"}},"/api/projects/catalog-summaries":{"get":{"tags":["Projects"],"summary":"Get Projects Catalog Summaries","description":"Light KPI rows for projects catalog tiles (`core.projects.catalog_summaries.gen1`).","operationId":"get_projects_catalog_summaries_api_projects_catalog_summaries_get","parameters":[{"name":"ids","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated project ids (max 40)","title":"Ids"},"description":"Comma-separated project ids (max 40)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}":{"get":{"tags":["Projects"],"summary":"Get Project Details","description":"Get specific project details","operationId":"get_project_details_api_projects__project_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"projects.get_project","x-capability-id":"projects.get_project"},"put":{"tags":["Projects"],"summary":"Update Project","description":"Update project","operationId":"update_project_api_projects__project_id__put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Update data","title":"Update Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"projects.update_project","x-capability-id":"projects.update_project"},"delete":{"tags":["Projects"],"summary":"Delete Project","description":"Delete project (delegates to PSDP when no blockers).","operationId":"delete_project_api_projects__project_id__delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"projects.delete_project","x-capability-id":"projects.delete_project"}},"/api/projects/{project_id}/ai-keys":{"get":{"tags":["Projects"],"summary":"Get Project Ai Keys Status","description":"Статус AI ключей проекта (без значений ключей) и флаги ai_settings.","operationId":"get_project_ai_keys_status_api_projects__project_id__ai_keys_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Projects"],"summary":"Update Project Ai Keys","description":"AI ключи проекта (пул / «пожертвованные» участником).\n\nКлючи пишутся в ``project.protected.keys.api.service_keys`` (как у пользователя).\nПри ``use_shared_project_keys`` KeySelector отдаёт их после пользовательских ключей.\n``override_user_keys`` — только ключи проекта для всех участников.\n\nМожно передать только флаги без ``api_keys``.","operationId":"update_project_ai_keys_api_projects__project_id__ai_keys_put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"{\"api_keys\": {...}?,\"use_shared_project_keys\"?: bool, \"override_user_keys\"?: bool}","title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/ai-runtime":{"get":{"tags":["Projects"],"summary":"Get Project Ai Runtime","description":"Project LLM runtime BFF — ai-keys settings + scoped energy balance.","operationId":"get_project_ai_runtime_api_projects__project_id__ai_runtime_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/referral":{"get":{"tags":["Projects"],"summary":"Get Project Referral","description":"Get project referral settings and stats (referral_share_pct, referrals_by_referee).","operationId":"get_project_referral_api_projects__project_id__referral_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Projects"],"summary":"Update Project Referral","description":"Update project referral_share_pct (0-20). Same permission as update_project.","operationId":"update_project_referral_api_projects__project_id__referral_put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"referral_share_pct (0-20)","title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/stats":{"get":{"tags":["Projects"],"summary":"Get Project Stats","description":"Get project statistics","operationId":"get_project_stats_api_projects__project_id__stats_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/overview":{"get":{"tags":["Projects"],"summary":"Get Project Overview","description":"Aggregated dashboard metrics for the selected project (ACL = read access).\nCached with tag project:{id} for invalidation on project updates.","operationId":"get_project_overview_api_projects__project_id__overview_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project ID","title":"Project Id"},"description":"Logical project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/analytics/portfolio":{"get":{"tags":["Projects"],"summary":"Get Projects Analytics Portfolio","description":"Cross-project analytics portfolio (max 12). ACL = membership list.","operationId":"get_projects_analytics_portfolio_api_projects_analytics_portfolio_get","parameters":[{"name":"period","in":"query","required":false,"schema":{"type":"string","pattern":"^(7d|30d|90d|6m)$","default":"30d","title":"Period"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/analytics/snapshot":{"get":{"tags":["Projects"],"summary":"Get Project Analytics Snapshot","description":"Unified project analytics snapshot BFF (read ACL, no analytics cap).","operationId":"get_project_analytics_snapshot_api_projects__project_id__analytics_snapshot_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project ID","title":"Project Id"},"description":"Logical project ID"},{"name":"period","in":"query","required":false,"schema":{"type":"string","pattern":"^(7d|30d|90d|6m)$","default":"30d","title":"Period"}},{"name":"include","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated slices","default":"activity,finance,product_events,crm","title":"Include"},"description":"Comma-separated slices"},{"name":"compare","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Set to previous_period for Wave-2 deltas","title":"Compare"},"description":"Set to previous_period for Wave-2 deltas"},{"name":"format","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional csv export","title":"Format"},"description":"Optional csv export"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"analytics.project_snapshot","x-capability-id":"analytics.project_snapshot"}},"/api/projects/{project_id}/analytics/warnings/dismiss":{"post":{"tags":["Projects"],"summary":"Dismiss Project Analytics Warning","description":"Clear dismissible analytics warning leaves (e.g. correction_folded).","operationId":"dismiss_project_analytics_warning_api_projects__project_id__analytics_warnings_dismiss_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project ID","title":"Project Id"},"description":"Logical project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/hosting-plane":{"get":{"tags":["Projects"],"summary":"Get Project Hosting Plane","description":"Project hosting plane read-model (ladder, sites summary, next_actions).","operationId":"get_project_hosting_plane_api_projects__project_id__hosting_plane_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project ID","title":"Project Id"},"description":"Logical project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"hosting.project.status","x-capability-id":"hosting.project.status"}},"/api/projects/{project_id}/membership/repair":{"post":{"tags":["Projects"],"summary":"Repair Project Membership","description":"Idempotent owner/member repair for slice-without-members (G-A115).","operationId":"repair_project_membership_api_projects__project_id__membership_repair_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/users":{"get":{"tags":["Projects"],"summary":"Get Project Users","description":"Get project users (supports batch filtering by user_ids)","operationId":"get_project_users_api_projects__project_id__users_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"user_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"integer"}},{"type":"null"}],"description":"Filter by specific user IDs (batch)","title":"User Ids"},"description":"Filter by specific user IDs (batch)"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"Items per page","default":50,"title":"Per Page"},"description":"Items per page"},{"name":"include_ecosystem","in":"query","required":false,"schema":{"type":"boolean","description":"Include ecosystem public profile overlay","default":false,"title":"Include Ecosystem"},"description":"Include ecosystem public profile overlay"},{"name":"include_full_ecosystem","in":"query","required":false,"schema":{"type":"boolean","description":"Include full ecosystem profile for allowed callers","default":false,"title":"Include Full Ecosystem"},"description":"Include full ecosystem profile for allowed callers"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"projects.get_users","x-capability-id":"projects.get_users"},"post":{"tags":["Projects"],"summary":"Add Project User","description":"Add user to project (project billing tier must include user_management).","operationId":"add_project_user_api_projects__project_id__users_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"User data","title":"User Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/users/create":{"post":{"tags":["Projects"],"summary":"Create Project User","description":"Create a new user in project without ecosystem profile (project_id=1)\n\nThis endpoint allows project owners to create users that exist only within the project.\nThese users:\n- Do NOT have a profile in the ecosystem (project_id=1)\n- Cannot access ecosystem features: avatar, email, personal API keys\n- Are used as data containers for the project\n- Use system-generated user_id from memory\n\nRequired permissions:\n- Project owner OR user with 'manage_users' permission\n\nRequest body:\n- role (optional): User role in project (default: 'member')\n- Any custom project-specific fields in data","operationId":"create_project_user_api_projects__project_id__users_create_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"User data for creation","title":"User Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/users/{user_id}":{"put":{"tags":["Projects"],"summary":"Update Project User","description":"Update user role in project","operationId":"update_project_user_api_projects__project_id__users__user_id__put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","description":"User ID","title":"User Id"},"description":"User ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectUserPutBody","description":"User update data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Projects"],"summary":"Remove Project User","description":"Remove user from project (project billing tier must include user_management).","operationId":"remove_project_user_api_projects__project_id__users__user_id__delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","description":"User ID","title":"User Id"},"description":"User ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/stats":{"get":{"tags":["Projects"],"summary":"Get Projects Stats","description":"Get global projects statistics","operationId":"get_projects_stats_api_projects_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/data":{"get":{"tags":["Projects"],"summary":"Get Project Data","description":"Get ``project.data`` (and size-limited ``project.config``) for the dashboard / tools.\n\nCanonical REST surface for browsing JSON in UI (prefer over DNA key-value for\nmulti-key snapshots). Ecosystem subtree is masked like ``GET /projects/{id}``.","operationId":"get_project_data_api_projects__project_id__data_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"path","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Dot path into project.data, e.g. 'posts' or 'news.posts'","title":"Path"},"description":"Dot path into project.data, e.g. 'posts' or 'news.posts'"},{"name":"paths","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated PathAtom paths (max 16)","title":"Paths"},"description":"Comma-separated PathAtom paths (max 16)"},{"name":"exclude_paths","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exclude Paths"}},{"name":"max_depth","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":64,"minimum":0},{"type":"null"}],"title":"Max Depth"}},{"name":"min_depth","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":64,"minimum":0},{"type":"null"}],"title":"Min Depth"}},{"name":"detail","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"}},{"name":"item_offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Item Offset"}},{"name":"item_limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":200,"minimum":1},{"type":"null"}],"title":"Item Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"max_chars","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Max Chars"}},{"name":"key_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key After"}},{"name":"key_limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":64,"minimum":1},{"type":"null"}],"title":"Key Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"patch":{"tags":["Projects"],"summary":"Patch Project Data","description":"Update project.data at a dot path (ops, write_mode, dry_run, expected_sha256 CAS).","operationId":"patch_project_data_api_projects__project_id__data_patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectDataPatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectDataPatchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"projects.patch_data"}},"/api/projects/{project_id}/users/me/data":{"get":{"tags":["Projects"],"summary":"Get Project User Me Data","description":"Get current user's data for this project at optional path (Plan 1354 A4).","operationId":"get_project_user_me_data_api_projects__project_id__users_me_data_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"path","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Dot path into current user's project data","title":"Path"},"description":"Dot path into current user's project data"},{"name":"paths","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Paths"}},{"name":"exclude_paths","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exclude Paths"}},{"name":"max_depth","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":64,"minimum":0},{"type":"null"}],"title":"Max Depth"}},{"name":"min_depth","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":64,"minimum":0},{"type":"null"}],"title":"Min Depth"}},{"name":"detail","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Detail"}},{"name":"item_offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Item Offset"}},{"name":"item_limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":200,"minimum":1},{"type":"null"}],"title":"Item Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"max_chars","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Max Chars"}},{"name":"key_after","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key After"}},{"name":"key_limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":64,"minimum":1},{"type":"null"}],"title":"Key Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"patch":{"tags":["Projects"],"summary":"Patch Project User Me Data","description":"Update current user's project data at path (parity with projects.patch_data).","operationId":"patch_project_user_me_data_api_projects__project_id__users_me_data_patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectDataPatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectDataPatchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"projects.patch_my_data"}},"/api/projects/analytics":{"get":{"tags":["Projects"],"summary":"Get Projects Analytics","description":"Get projects analytics","operationId":"get_projects_analytics_api_projects_analytics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/anonymous/":{"post":{"tags":["Projects"],"summary":"Create Project Anonymous","description":"Create anonymous project (HTTP). For MCP use _create_project_anonymous_impl(project_data) instead.","operationId":"create_project_anonymous_api_projects_anonymous__post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Project Data","description":"Project data for anonymous creation"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/projects/anonymous":{"post":{"tags":["Projects"],"summary":"Create Project Anonymous","description":"Create anonymous project (HTTP). For MCP use _create_project_anonymous_impl(project_data) instead.","operationId":"create_project_anonymous_api_projects_anonymous_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Project Data","description":"Project data for anonymous creation"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/projects/import-by-key":{"post":{"tags":["Projects"],"summary":"Import Projects By Key","description":"Import projects from anonymous user to current authenticated user.\nRequires: user_api_key (anonymous user's API key)","operationId":"import_projects_by_key_api_projects_import_by_key_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Import Data","description":"Import data with anonymous user API key"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/projects/{project_id}/attach":{"post":{"tags":["Projects"],"summary":"Attach Project To User","description":"Attach anonymous project to authenticated user (transfer ownership).\nRequires: auth_key = anonymous user PAT (Postel: former project_api_key alias)\nor leftover product ask_ plaintext (migrate dual-read).","operationId":"attach_project_to_user_api_projects__project_id__attach_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Attach data with auth_key","title":"Attach Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/settings/project-cluster":{"get":{"tags":["Projects"],"summary":"Get Project Cluster","description":"Return ProjectCluster config for hub project.","operationId":"get_project_cluster_api_projects__project_id__settings_project_cluster_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"patch":{"tags":["Projects"],"summary":"Patch Project Cluster","description":"Update ProjectCluster config or add a shard member.","operationId":"patch_project_cluster_api_projects__project_id__settings_project_cluster_patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/organelle-invoke":{"post":{"tags":["Projects"],"summary":"Post Project Organelle Invoke","description":"Invoke a registered organelle operation for **this project** (session or API key).\n\nRequires project **read** for ``read`` operations and **write** for mutations.\nRate limit: 60 requests per minute per (project, user).\n\n**Security:** ``project_id`` path wins over any ``ctx.project_id``. ``ctx.user_id`` must be\n``0`` or the authenticated user's id (prevents cross-user cell/ring access via crafted JSON).","operationId":"post_project_organelle_invoke_api_projects__project_id__organelle_invoke_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganelleInvokeBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/business/composite":{"post":{"tags":["Business"],"summary":"Create Business Composite Route","operationId":"create_business_composite_route_api_business_composite_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"business.create_composite","x-capability-id":"business.create_composite","parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}]}},"/api/projects/{project_id}/business/command-snapshot":{"get":{"tags":["Business"],"summary":"Business Command Snapshot","operationId":"business_command_snapshot_api_projects__project_id__business_command_snapshot_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"include_integrations","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Integrations"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"business.command_snapshot","x-capability-id":"business.command_snapshot"}},"/api/projects/{project_id}/business/hub-snapshot":{"get":{"tags":["Business"],"summary":"Business Hub Snapshot Alias","operationId":"business_hub_snapshot_alias_api_projects__project_id__business_hub_snapshot_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/org":{"get":{"tags":["Business"],"summary":"Get Business Org","operationId":"get_business_org_api_projects__project_id__org_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"business.get_org","x-capability-id":"business.get_org"}},"/api/projects/{project_id}/org/children":{"get":{"tags":["Business"],"summary":"List Business Children","operationId":"list_business_children_api_projects__project_id__org_children_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"business.list_children","x-capability-id":"business.list_children"},"post":{"tags":["Business"],"summary":"Attach Business Child","operationId":"attach_business_child_api_projects__project_id__org_children_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"business.attach_child","x-capability-id":"business.attach_child"}},"/api/projects/{project_id}/org/children/link":{"post":{"tags":["Business"],"summary":"Link Business Child","operationId":"link_business_child_api_projects__project_id__org_children_link_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"business.link_child","x-capability-id":"business.link_child"}},"/api/projects/{project_id}/business/adopt-candidates":{"get":{"tags":["Business"],"summary":"List Business Adopt Candidates","operationId":"list_business_adopt_candidates_api_projects__project_id__business_adopt_candidates_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"business.list_adopt_candidates","x-capability-id":"business.list_adopt_candidates"}},"/api/business/composite-adopt-candidates":{"get":{"tags":["Business"],"summary":"List Composite Adopt Candidates","operationId":"list_composite_adopt_candidates_api_business_composite_adopt_candidates_get","parameters":[{"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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"business.list_composite_adopt_candidates","x-capability-id":"business.list_composite_adopt_candidates"}},"/api/projects/{project_id}/business/transfer-preflight":{"get":{"tags":["Business"],"summary":"Business Transfer Preflight","operationId":"business_transfer_preflight_api_projects__project_id__business_transfer_preflight_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"business.transfer_preflight","x-capability-id":"business.transfer_preflight"}},"/api/projects/{project_id}/org/children/{child_project_id}":{"delete":{"tags":["Business"],"summary":"Detach Business Child","operationId":"detach_business_child_api_projects__project_id__org_children__child_project_id__delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"child_project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Child Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"business.detach_child","x-capability-id":"business.detach_child"}},"/api/projects/{project_id}/business/tariff-templates":{"get":{"tags":["Business"],"summary":"List Business Tariff Templates","operationId":"list_business_tariff_templates_api_projects__project_id__business_tariff_templates_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"business.list_tariff_templates","x-capability-id":"business.list_tariff_templates"}},"/api/projects/{project_id}/business/tariff/apply":{"post":{"tags":["Business"],"summary":"Apply Business Tariff","operationId":"apply_business_tariff_api_projects__project_id__business_tariff_apply_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"business.apply_tariff","x-capability-id":"business.apply_tariff"}},"/api/projects/{project_id}/org/settings":{"patch":{"tags":["Business"],"summary":"Patch Business Org Settings","operationId":"patch_business_org_settings_api_projects__project_id__org_settings_patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"business.patch_org_settings","x-capability-id":"business.patch_org_settings"}},"/api/projects/{project_id}/deletion-inventory":{"get":{"tags":["Projects"],"summary":"Get Deletion Inventory","operationId":"get_deletion_inventory_api_projects__project_id__deletion_inventory_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Refresh"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/deletion-schedule":{"post":{"tags":["Projects"],"summary":"Schedule Project Deletion","operationId":"schedule_project_deletion_api_projects__project_id__deletion_schedule_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletionScheduleRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/deletion-cancel":{"post":{"tags":["Projects"],"summary":"Cancel Project Deletion","operationId":"cancel_project_deletion_api_projects__project_id__deletion_cancel_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/DeletionCancelRequest"},{"type":"null"}],"title":" Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/deletion-execute":{"post":{"tags":["Projects"],"summary":"Execute Project Deletion","operationId":"execute_project_deletion_api_projects__project_id__deletion_execute_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletionExecuteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/deletion-status":{"get":{"tags":["Projects"],"summary":"Get Deletion Status","operationId":"get_deletion_status_api_projects__project_id__deletion_status_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/export-pack":{"post":{"tags":["Projects"],"summary":"Create Export Pack","operationId":"create_export_pack_api_projects__project_id__export_pack_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/archive":{"post":{"tags":["Projects"],"summary":"Archive Project","operationId":"archive_project_api_projects__project_id__archive_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/notify-policy":{"get":{"tags":["Projects"],"summary":"Get Project Notify Policy","operationId":"get_project_notify_policy_api_projects__project_id__notify_policy_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"projects.get_notify_policy"},"put":{"tags":["Projects"],"summary":"Put Project Notify Policy","operationId":"put_project_notify_policy_api_projects__project_id__notify_policy_put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"projects.put_notify_policy"}},"/api/projects/{project_id}/agents":{"get":{"tags":["Agents Fleet"],"summary":"List Project Agents","operationId":"list_project_agents_api_projects__project_id__agents_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"genetic_tag","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by genetic tag or GTPI cold token (GTPI-10)","title":"Genetic Tag"},"description":"Filter by genetic tag or GTPI cold token (GTPI-10)"},{"name":"If-None-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-None-Match"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"agents.list","x-capability-id":"agents.list"},"post":{"tags":["Agents Fleet"],"summary":"Create Project Agent","operationId":"create_project_agent_api_projects__project_id__agents_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCreateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"agents.create","x-capability-id":"agents.create"}},"/api/projects/{project_id}/agents/hub-snapshot":{"get":{"tags":["Agents Fleet"],"summary":"Agents Hub Snapshot","description":"CFD-05e / H-05 — Agents fleet tab cold-open BFF.\n\nGenetic: ``core.agents.fleet.gen1`` · ``repo.platform.perf.batch.gen1``","operationId":"agents_hub_snapshot_api_projects__project_id__agents_hub_snapshot_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"summary_only","in":"query","required":false,"schema":{"type":"boolean","description":"Omit head payload (FLOW-HUB-19)","default":false,"title":"Summary Only"},"description":"Omit head payload (FLOW-HUB-19)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/automation-map":{"get":{"tags":["Agents Fleet"],"summary":"Agents Automation Map","description":"Fleet-wide automation bindings (read-only aggregate).","operationId":"agents_automation_map_api_projects__project_id__agents_automation_map_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/fleet/diagnostics":{"get":{"tags":["Agents Fleet"],"summary":"Project Agents Fleet Diagnostics","description":"Project fleet health (RBAC read — not ecosystem-admin only).","operationId":"project_agents_fleet_diagnostics_api_projects__project_id__agents_fleet_diagnostics_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/fleet/sweep-stale-runs":{"post":{"tags":["Agents Fleet"],"summary":"Project Agents Fleet Sweep Stale Runs","description":"Budgeted stale-run reconcile within project (owner/write/admin + cap).","operationId":"project_agents_fleet_sweep_stale_runs_api_projects__project_id__agents_fleet_sweep_stale_runs_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FleetSweepStaleRunsBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/runs/{run_uuid}/reconcile":{"post":{"tags":["Agents Fleet"],"summary":"Project Agents Reconcile Run","description":"Apply reconciler policy to one run (project write/admin + cap).","operationId":"project_agents_reconcile_run_api_projects__project_id__agents_runs__run_uuid__reconcile_post","parameters":[{"name":"run_uuid","in":"path","required":true,"schema":{"type":"string","minLength":8,"title":"Run Uuid"}},{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/templates":{"get":{"tags":["Agents Fleet"],"summary":"List Project Agent Templates","operationId":"list_project_agent_templates_api_projects__project_id__agents_templates_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"If-None-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-None-Match"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/policy/preview":{"post":{"tags":["Agents Fleet"],"summary":"Preview Project Agent Policy","description":"Live preview of effective MCP allowlist for an ``AgentPolicy`` draft.\n\nUI calls this on every edit of ``policy.capabilities`` / ``forbidden_tools``\nso users see which concrete actions actually expand from glob patterns.","operationId":"preview_project_agent_policy_api_projects__project_id__agents_policy_preview_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyPreviewBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/templates/preview":{"post":{"tags":["Agents Fleet"],"summary":"Preview Project Agent Template","description":"Return a merged ``AgentSpec`` shape for a template without persisting.\n\nReuses ``apply_agent_template`` so REST/MCP/UI share a single merge path.","operationId":"preview_project_agent_template_api_projects__project_id__agents_templates_preview_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplatePreviewBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/workflow/compile-preview":{"post":{"tags":["Agents Fleet"],"summary":"Preview Project Agent Workflow Compile","description":"Compile a workflow graph for preview (no AgentSpec persist).","operationId":"preview_project_agent_workflow_compile_api_projects__project_id__agents_workflow_compile_preview_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowCompilePreviewBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/from-template":{"post":{"tags":["Agents Fleet"],"summary":"Create Project Agent From Template","operationId":"create_project_agent_from_template_api_projects__project_id__agents_from_template_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FromTemplateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/{agent_uuid}/export-pack":{"get":{"tags":["Agents Fleet"],"summary":"Export Agent Pack","description":"Export portable agent pack (spec sans secrets).","operationId":"export_agent_pack_api_projects__project_id__agents__agent_uuid__export_pack_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/import-from-asset":{"post":{"tags":["Agents Fleet"],"summary":"Import Agent From Asset","description":"Fulfill ``extensions.agent_fleet`` from a commerce asset into Agents Fleet.","operationId":"import_agent_from_asset_api_projects__project_id__agents_import_from_asset_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentImportFromAssetBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/import-pack":{"post":{"tags":["Agents Fleet"],"summary":"Import Agent Pack","description":"Import agent from portable pack; forks on id collision when requested.","operationId":"import_agent_pack_api_projects__project_id__agents_import_pack_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentImportPackBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/{agent_uuid}":{"get":{"tags":["Agents Fleet"],"summary":"Get Project Agent","operationId":"get_project_agent_api_projects__project_id__agents__agent_uuid__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"name":"If-Epoch-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Epoch-Match"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"agents.get","x-capability-id":"agents.get"},"put":{"tags":["Agents Fleet"],"summary":"Update Project Agent","operationId":"update_project_agent_api_projects__project_id__agents__agent_uuid__put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentUpdateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"agents.update","x-capability-id":"agents.update"},"patch":{"tags":["Agents Fleet"],"summary":"Patch Project Agent","description":"Merge path_updates or section onto agent_spec without full PUT.","operationId":"patch_project_agent_api_projects__project_id__agents__agent_uuid__patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentPatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Agents Fleet"],"summary":"Delete Project Agent","operationId":"delete_project_agent_api_projects__project_id__agents__agent_uuid__delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"agents.delete","x-capability-id":"agents.delete"}},"/api/projects/{project_id}/agents/{agent_uuid}/runs/start":{"post":{"tags":["Agents Fleet"],"summary":"Start Project Agent Run","operationId":"start_project_agent_run_api_projects__project_id__agents__agent_uuid__runs_start_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartRunBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"agents.run","x-capability-id":"agents.run"}},"/api/projects/{project_id}/agents/{agent_uuid}/runs/with-agnt-credits":{"post":{"tags":["Agents Fleet"],"summary":"Start Project Agent Run With Agnt Credits","description":"Buy compute credits (AGC) then enqueue an agent run (demo orchestration).","operationId":"start_project_agent_run_with_agnt_credits_api_projects__project_id__agents__agent_uuid__runs_with_agnt_credits_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunWithAgcCreditsBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/approvals/pending":{"get":{"tags":["Agents Fleet"],"summary":"List Project Pending Agent Approvals","operationId":"list_project_pending_agent_approvals_api_projects__project_id__agents_approvals_pending_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"stale_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Stale Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/{agent_uuid}/runs":{"get":{"tags":["Agents Fleet"],"summary":"List Project Agent Runs","operationId":"list_project_agent_runs_api_projects__project_id__agents__agent_uuid__runs_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by run status","title":"Status"},"description":"Filter by run status"},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO-8601 timestamp lower bound","title":"Since"},"description":"ISO-8601 timestamp lower bound"},{"name":"with_agc_purchase","in":"query","required":false,"schema":{"type":"boolean","description":"When true, only runs whose input includes __agnt_purchase__","default":false,"title":"With Agc Purchase"},"description":"When true, only runs whose input includes __agnt_purchase__"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/{agent_uuid}/runs/{run_uuid}":{"get":{"tags":["Agents Fleet"],"summary":"Get Project Agent Run","operationId":"get_project_agent_run_api_projects__project_id__agents__agent_uuid__runs__run_uuid__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"name":"run_uuid","in":"path","required":true,"schema":{"type":"string","title":"Run Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAgentRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/{agent_uuid}/fork":{"post":{"tags":["Agents Fleet"],"summary":"Fork Project Agent","operationId":"fork_project_agent_api_projects__project_id__agents__agent_uuid__fork_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/{agent_uuid}/rollout/advance":{"post":{"tags":["Agents Fleet"],"summary":"Advance Project Rollout","operationId":"advance_project_rollout_api_projects__project_id__agents__agent_uuid__rollout_advance_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/{agent_uuid}/promote":{"post":{"tags":["Agents Fleet"],"summary":"Promote Project Agent","operationId":"promote_project_agent_api_projects__project_id__agents__agent_uuid__promote_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/{agent_uuid}/kill":{"post":{"tags":["Agents Fleet"],"summary":"Kill Project Agent","operationId":"kill_project_agent_api_projects__project_id__agents__agent_uuid__kill_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/{agent_uuid}/trust-surface":{"get":{"tags":["Agents Fleet"],"summary":"Project Agent Trust Surface","operationId":"project_agent_trust_surface_api_projects__project_id__agents__agent_uuid__trust_surface_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/{agent_uuid}/metrics":{"get":{"tags":["Agents Fleet"],"summary":"Project Agent Metrics","operationId":"project_agent_metrics_api_projects__project_id__agents__agent_uuid__metrics_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/{agent_uuid}/gates":{"get":{"tags":["Agents Fleet"],"summary":"Project Agent Gates","operationId":"project_agent_gates_api_projects__project_id__agents__agent_uuid__gates_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/{agent_uuid}/timeline":{"get":{"tags":["Agents Fleet"],"summary":"Project Agent Timeline","description":"Production lineage versions — not sandbox diff-child overlay (see instruction_note).","operationId":"project_agent_timeline_api_projects__project_id__agents__agent_uuid__timeline_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/{agent_uuid}/runs/{run_uuid}/traces":{"get":{"tags":["Agents Fleet"],"summary":"Get Project Run Traces","operationId":"get_project_run_traces_api_projects__project_id__agents__agent_uuid__runs__run_uuid__traces_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"name":"run_uuid","in":"path","required":true,"schema":{"type":"string","title":"Run Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/{agent_uuid}/runs/{run_uuid}/stop":{"post":{"tags":["Agents Fleet"],"summary":"Stop Project Agent Run","operationId":"stop_project_agent_run_api_projects__project_id__agents__agent_uuid__runs__run_uuid__stop_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"name":"run_uuid","in":"path","required":true,"schema":{"type":"string","title":"Run Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/StopRunBody"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/{agent_uuid}/runs/{run_uuid}/approve":{"post":{"tags":["Agents Fleet"],"summary":"Approve Project Agent Run","operationId":"approve_project_agent_run_api_projects__project_id__agents__agent_uuid__runs__run_uuid__approve_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"name":"run_uuid","in":"path","required":true,"schema":{"type":"string","title":"Run Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ApproveRunBody"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agents/{agent_uuid}/runs/{run_uuid}/stream":{"get":{"tags":["Agents Fleet"],"summary":"Stream Project Agent Run","operationId":"stream_project_agent_run_api_projects__project_id__agents__agent_uuid__runs__run_uuid__stream_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"name":"run_uuid","in":"path","required":true,"schema":{"type":"string","title":"Run Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/agents":{"get":{"tags":["Agents Fleet"],"summary":"List Me Agents","operationId":"list_me_agents_api_users_me_agents_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Agents Fleet"],"summary":"Create Me Agent","operationId":"create_me_agent_api_users_me_agents_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCreateBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/users/me/agents/templates":{"get":{"tags":["Agents Fleet"],"summary":"List Me Agent Templates","operationId":"list_me_agent_templates_api_users_me_agents_templates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/agents/policy/preview":{"post":{"tags":["Agents Fleet"],"summary":"Preview Me Agent Policy","operationId":"preview_me_agent_policy_api_users_me_agents_policy_preview_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyPreviewBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/users/me/agents/templates/preview":{"post":{"tags":["Agents Fleet"],"summary":"Preview Me Agent Template","operationId":"preview_me_agent_template_api_users_me_agents_templates_preview_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TemplatePreviewBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/users/me/agents/from-template":{"post":{"tags":["Agents Fleet"],"summary":"Create Me Agent From Template","operationId":"create_me_agent_from_template_api_users_me_agents_from_template_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FromTemplateBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/users/me/agents/{agent_uuid}":{"get":{"tags":["Agents Fleet"],"summary":"Get Me Agent","operationId":"get_me_agent_api_users_me_agents__agent_uuid__get","parameters":[{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Agents Fleet"],"summary":"Update Me Agent","operationId":"update_me_agent_api_users_me_agents__agent_uuid__put","parameters":[{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentUpdateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Agents Fleet"],"summary":"Delete Me Agent","operationId":"delete_me_agent_api_users_me_agents__agent_uuid__delete","parameters":[{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/agents/{agent_uuid}/runs/start":{"post":{"tags":["Agents Fleet"],"summary":"Start Me Agent Run","operationId":"start_me_agent_run_api_users_me_agents__agent_uuid__runs_start_post","parameters":[{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartRunBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/agents/approvals/pending":{"get":{"tags":["Agents Fleet"],"summary":"List Me Pending Agent Approvals","operationId":"list_me_pending_agent_approvals_api_users_me_agents_approvals_pending_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"stale_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Stale Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/agents/{agent_uuid}/runs":{"get":{"tags":["Agents Fleet"],"summary":"List Me Agent Runs","operationId":"list_me_agent_runs_api_users_me_agents__agent_uuid__runs_get","parameters":[{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Since"}},{"name":"with_agc_purchase","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"With Agc Purchase"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/agents/{agent_uuid}/runs/{run_uuid}":{"get":{"tags":["Agents Fleet"],"summary":"Get Me Agent Run","operationId":"get_me_agent_run_api_users_me_agents__agent_uuid__runs__run_uuid__get","parameters":[{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"name":"run_uuid","in":"path","required":true,"schema":{"type":"string","title":"Run Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAgentRunResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/agents/{agent_uuid}/fork":{"post":{"tags":["Agents Fleet"],"summary":"Fork Me Agent","description":"Personal fleet fork — prod plane only (no project generation env_uuid).","operationId":"fork_me_agent_api_users_me_agents__agent_uuid__fork_post","parameters":[{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/agents/{agent_uuid}/kill":{"post":{"tags":["Agents Fleet"],"summary":"Kill Me Agent","operationId":"kill_me_agent_api_users_me_agents__agent_uuid__kill_post","parameters":[{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/agents/{agent_uuid}/rollout/advance":{"post":{"tags":["Agents Fleet"],"summary":"Advance Me Rollout","operationId":"advance_me_rollout_api_users_me_agents__agent_uuid__rollout_advance_post","parameters":[{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/agents/{agent_uuid}/promote":{"post":{"tags":["Agents Fleet"],"summary":"Promote Me Agent","operationId":"promote_me_agent_api_users_me_agents__agent_uuid__promote_post","parameters":[{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/agents/{agent_uuid}/metrics":{"get":{"tags":["Agents Fleet"],"summary":"Me Agent Metrics","operationId":"me_agent_metrics_api_users_me_agents__agent_uuid__metrics_get","parameters":[{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/agents/{agent_uuid}/gates":{"get":{"tags":["Agents Fleet"],"summary":"Me Agent Gates","operationId":"me_agent_gates_api_users_me_agents__agent_uuid__gates_get","parameters":[{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/agents/{agent_uuid}/timeline":{"get":{"tags":["Agents Fleet"],"summary":"Me Agent Timeline","description":"Production lineage versions — not sandbox diff-child overlay.","operationId":"me_agent_timeline_api_users_me_agents__agent_uuid__timeline_get","parameters":[{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/agents/{agent_uuid}/runs/{run_uuid}/traces":{"get":{"tags":["Agents Fleet"],"summary":"Get Me Run Traces","operationId":"get_me_run_traces_api_users_me_agents__agent_uuid__runs__run_uuid__traces_get","parameters":[{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"name":"run_uuid","in":"path","required":true,"schema":{"type":"string","title":"Run Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/agents/{agent_uuid}/runs/{run_uuid}/stop":{"post":{"tags":["Agents Fleet"],"summary":"Stop Me Agent Run","operationId":"stop_me_agent_run_api_users_me_agents__agent_uuid__runs__run_uuid__stop_post","parameters":[{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"name":"run_uuid","in":"path","required":true,"schema":{"type":"string","title":"Run Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/StopRunBody"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/agents/{agent_uuid}/runs/{run_uuid}/approve":{"post":{"tags":["Agents Fleet"],"summary":"Approve Me Agent Run","operationId":"approve_me_agent_run_api_users_me_agents__agent_uuid__runs__run_uuid__approve_post","parameters":[{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"name":"run_uuid","in":"path","required":true,"schema":{"type":"string","title":"Run Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/ApproveRunBody"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/agents/{agent_uuid}/runs/{run_uuid}/stream":{"get":{"tags":["Agents Fleet"],"summary":"Stream Me Agent Run","operationId":"stream_me_agent_run_api_users_me_agents__agent_uuid__runs__run_uuid__stream_get","parameters":[{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"name":"run_uuid","in":"path","required":true,"schema":{"type":"string","title":"Run Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agents/{agent_uuid}/trust-surface":{"get":{"tags":["Agents Fleet"],"summary":"Global Agent Trust Surface","operationId":"global_agent_trust_surface_api_agents__agent_uuid__trust_surface_get","parameters":[{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"description":"Logical project id","title":"Project Id"},"description":"Logical project id"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agents/llm-providers":{"get":{"tags":["Agents Fleet"],"summary":"List Agent Llm Providers","description":"List supported LLM providers (single source of truth for the spec dropdown).\n\nModels for a given provider are still fetched from\n``GET /api/ai-builder/models/{provider}`` (lazy / cached).","operationId":"list_agent_llm_providers_api_agents_llm_providers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agents/fap-templates":{"get":{"tags":["Agents Fleet"],"summary":"List Agent Fap Templates","description":"Stable IDs for ``AgentSpec.fap_template`` dropdown.\n\nToday there is one global ecosystem-wide FAP template\n(``field_access_defaults`` on ``ECOSYSTEM_PROJECT_ID``). When it has any\nresources or triggers configured, surface it as a single selectable\ntemplate; otherwise return an empty list and the UI degrades to a free\ntext input.","operationId":"list_agent_fap_templates_api_agents_fap_templates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/app/dev/{project_id}":{"get":{"tags":["AI Builder"],"summary":"Serve App Dev Root","description":"Serve index.html for /app/dev/{project_id}/ - использует dev ветку","operationId":"serve_app_dev_root_app_dev__project_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/app/dev/{project_id}/":{"get":{"tags":["AI Builder"],"summary":"Serve App Dev Root","description":"Serve index.html for /app/dev/{project_id}/ - использует dev ветку","operationId":"serve_app_dev_root_app_dev__project_id___get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/app/dev/{project_id}/{filename}":{"get":{"tags":["AI Builder"],"summary":"Serve App Dev Static","description":"Serve static assets for /app/dev/{project_id}/... - использует dev ветку","operationId":"serve_app_dev_static_app_dev__project_id___filename__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"filename","in":"path","required":true,"schema":{"type":"string","description":"File path relative to project app dir","title":"Filename"},"description":"File path relative to project app dir"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/app/{project_id}":{"get":{"tags":["AI Builder"],"summary":"Serve App Root","description":"Serve index.html for /app/{project_id}/ - использует prod ветку, fallback на dev","operationId":"serve_app_root_app__project_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/app/{project_id}/":{"get":{"tags":["AI Builder"],"summary":"Serve App Root","description":"Serve index.html for /app/{project_id}/ - использует prod ветку, fallback на dev","operationId":"serve_app_root_app__project_id___get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/app/{project_id}/{filename}":{"get":{"tags":["AI Builder"],"summary":"Serve App Static","description":"Serve static assets for /app/{project_id}/... - использует prod ветку, fallback на dev","operationId":"serve_app_static_app__project_id___filename__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"string","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"filename","in":"path","required":true,"schema":{"type":"string","description":"File path relative to project app dir","title":"Filename"},"description":"File path relative to project app dir"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/files/upload":{"post":{"tags":["Files"],"summary":"Upload File","description":"Legacy disk upload. Form fields: file, category, project_id.","operationId":"upload_file_api_files_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"type":"string","format":"binary","description":"Uploaded file"},"category":{"type":"string"},"project_id":{"type":"integer"}},"type":"object","required":["file"]}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/files/resumable/{op_id}":{"head":{"tags":["Files"],"summary":"Head Resumable","description":"Return ``Upload-Offset`` / ``Upload-Length`` for an in-flight op.\n\nMissing op → 404 (client treats as offset=0). Present op → 200 with\nheaders so the client can resume exactly where it left off, which is the\nwhole point of the tus-lite protocol.","operationId":"head_resumable_api_files_resumable__op_id__head","parameters":[{"name":"op_id","in":"path","required":true,"schema":{"type":"string","title":"Op Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Files"],"summary":"Delete Resumable","description":"Discard a partial resumable upload (explicit cancel — ZIP-04).","operationId":"delete_resumable_api_files_resumable__op_id__delete","parameters":[{"name":"op_id","in":"path","required":true,"schema":{"type":"string","title":"Op Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"patch":{"tags":["Files"],"summary":"Patch Resumable","description":"Append a single chunk for the given op. Idempotent on offset.","operationId":"patch_resumable_api_files_resumable__op_id__patch","parameters":[{"name":"op_id","in":"path","required":true,"schema":{"type":"string","title":"Op Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/files/{category}/{filename}":{"get":{"tags":["Files"],"summary":"Get File From Disk","description":"Раздача файлов с диска с поддержкой If-Modified-Since для кеширования\n\nНовый endpoint для файлов, хранящихся на диске (не в БД).\nВсе файлы сохраняются в FILE_STORAGE_PATH/{category}/{filename}\n\n- Проверка прав доступа (если требуется)\n- Поддержка If-Modified-Since header (304 Not Modified)\n- Cache-Control headers для браузера\n\nExamples:\n    - /api/files/avatars/user_1_a3f5b2c1.jpg\n    - /api/files/uploads/project_1/file.pdf","operationId":"get_file_from_disk_api_files__category___filename__get","parameters":[{"name":"category","in":"path","required":true,"schema":{"type":"string","title":"Category"}},{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/storage/quota":{"get":{"tags":["Files"],"summary":"Get Storage Quota","operationId":"get_storage_quota_api_storage_quota_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Logical project id; falls back to X-Project-ID or session","title":"Project Id"},"description":"Logical project id; falls back to X-Project-ID or session"},{"name":"scope","in":"query","required":false,"schema":{"$ref":"#/components/schemas/StorageScope","description":"user = member 8DNA row; project = project row (user_id=0)","default":"user"},"description":"user = member 8DNA row; project = project row (user_id=0)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"storage.get_quota","x-capability-id":"storage.get_quota"}},"/api/storage/quota/project-summary":{"get":{"tags":["Files"],"summary":"Get Storage Project Summary","description":"Sum usage across all 8DNA rows (members + project slice); pool cap from owner tier.","operationId":"get_storage_project_summary_api_storage_quota_project_summary_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Logical project id; falls back to X-Project-ID or session","title":"Project Id"},"description":"Logical project id; falls back to X-Project-ID or session"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/storage/ecosystem-summary":{"get":{"tags":["Files"],"summary":"Get Storage Ecosystem Summary","description":"Hub v4 aggregate: media pool usage + hosting bytes + sites count.","operationId":"get_storage_ecosystem_summary_api_storage_ecosystem_summary_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Logical project id; falls back to X-Project-ID or session","title":"Project Id"},"description":"Logical project id; falls back to X-Project-ID or session"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/storage/files":{"get":{"tags":["Files"],"summary":"List Storage Files","operationId":"list_storage_files_api_storage_files_get","parameters":[{"name":"folder","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Folder key; omit for all","title":"Folder"},"description":"Folder key; omit for all"},{"name":"include_folders","in":"query","required":false,"schema":{"type":"boolean","description":"If true, include folder_index from 8DNA storage blob (navigation)","default":false,"title":"Include Folders"},"description":"If true, include folder_index from 8DNA storage blob (navigation)"},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"scope","in":"query","required":false,"schema":{"$ref":"#/components/schemas/StorageScope","default":"user"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"storage.list_files","x-capability-id":"storage.list_files"}},"/api/storage/files/{file_id}":{"get":{"tags":["Files"],"summary":"Get Storage File Meta","operationId":"get_storage_file_meta_api_storage_files__file_id__get","parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"folder_key","in":"query","required":true,"schema":{"type":"string","description":"Folder key (e.g. ecosystem, docs, _)","title":"Folder Key"},"description":"Folder key (e.g. ecosystem, docs, _)"},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"scope","in":"query","required":false,"schema":{"$ref":"#/components/schemas/StorageScope","default":"user"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Files"],"summary":"Delete Storage File","operationId":"delete_storage_file_api_storage_files__file_id__delete","parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"folder_key","in":"query","required":true,"schema":{"type":"string","title":"Folder Key"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"scope","in":"query","required":false,"schema":{"$ref":"#/components/schemas/StorageScope","default":"user"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/storage/upload":{"post":{"tags":["Files"],"summary":"Upload Storage File","description":"Multipart upload. Form fields: file, folder, category, project_id, scope.","operationId":"upload_storage_file_api_storage_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"type":"string","format":"binary","description":"Uploaded file"},"folder":{"type":"string"},"category":{"type":"string"},"project_id":{"type":"integer"},"scope":{"type":"string","enum":["user","project"]}},"type":"object","required":["file"]}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/storage/upload-temp":{"post":{"tags":["Files"],"summary":"Upload Storage Temp","description":"Multipart temp upload. Form fields: file, ttl_hours, displace, project_id, scope.","operationId":"upload_storage_temp_api_storage_upload_temp_post","requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"type":"string","format":"binary","description":"Uploaded file"},"ttl_hours":{"type":"integer","description":"Requested TTL for the temp file, in hours. When omitted, the ecosystem operator default applies. Clamped to [1, min(operator max, 720)] hours."},"displace":{"type":"boolean","description":"If true and temp quota would be exceeded, evict oldest temp files to make space for this upload."},"project_id":{"type":"integer"},"scope":{"type":"string","enum":["user","project"]}},"type":"object","required":["file"]}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/storage/folders":{"post":{"tags":["Files"],"summary":"Create Storage Folder","operationId":"create_storage_folder_api_storage_folders_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"scope","in":"query","required":false,"schema":{"$ref":"#/components/schemas/StorageScope","default":"user"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FolderCreateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/storage/files/{file_id}/regenerate-link":{"post":{"tags":["Files"],"summary":"Regenerate Storage Link","operationId":"regenerate_storage_link_api_storage_files__file_id__regenerate_link_post","parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"folder_key","in":"query","required":true,"schema":{"type":"string","title":"Folder Key"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"scope","in":"query","required":false,"schema":{"$ref":"#/components/schemas/StorageScope","default":"user"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/storage/files/{file_id}/move":{"post":{"tags":["Files"],"summary":"Move Storage File","operationId":"move_storage_file_api_storage_files__file_id__move_post","parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"folder_key","in":"query","required":true,"schema":{"type":"string","description":"Current folder key","title":"Folder Key"},"description":"Current folder key"},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"scope","in":"query","required":false,"schema":{"$ref":"#/components/schemas/StorageScope","default":"user"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoveBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/storage/temp/{file_id}/promote":{"post":{"tags":["Files"],"summary":"Promote Temp File","operationId":"promote_temp_file_api_storage_temp__file_id__promote_post","parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"scope","in":"query","required":false,"schema":{"$ref":"#/components/schemas/StorageScope","default":"user"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoteBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/storage/temp":{"get":{"tags":["Files"],"summary":"List Storage Temp Files","description":"List caller's temp uploads for the resolved (project_id, dna_user_id) storage row.","operationId":"list_storage_temp_files_api_storage_temp_get","parameters":[{"name":"include_expired","in":"query","required":false,"schema":{"type":"boolean","description":"If true, include expired temp rows (still in blob until cleanup).","default":false,"title":"Include Expired"},"description":"If true, include expired temp rows (still in blob until cleanup)."},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"scope","in":"query","required":false,"schema":{"$ref":"#/components/schemas/StorageScope","default":"user"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/storage/temp/{file_id}":{"delete":{"tags":["Files"],"summary":"Delete Storage Temp File","operationId":"delete_storage_temp_file_api_storage_temp__file_id__delete","parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"scope","in":"query","required":false,"schema":{"$ref":"#/components/schemas/StorageScope","default":"user"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/storage/temp/{file_id}/meta":{"get":{"tags":["Files"],"summary":"Get Storage Temp Meta","description":"Read-only temp metadata resolver.\n\nThis does NOT grant access to other projects: caller must have `read` access to the resolved project.\nIntended for messenger attachments: recipient can show filename/mime/size and fetch bytes from the returned URL.","operationId":"get_storage_temp_meta_api_storage_temp__file_id__meta_get","parameters":[{"name":"file_id","in":"path","required":true,"schema":{"type":"string","title":"File Id"}},{"name":"owner_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"description":"DNA user id of the temp file owner","title":"Owner Id"},"description":"DNA user id of the temp file owner"},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/storage/copy":{"post":{"tags":["Files"],"summary":"Copy Storage File By Ref","description":"Copy an existing storage object (temp or permanent, any owner) into the caller's permanent storage.\n\nSource is identified by ids (no external URLs) to avoid SSRF / arbitrary file copy.","operationId":"copy_storage_file_by_ref_api_storage_copy_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"scope","in":"query","required":false,"schema":{"$ref":"#/components/schemas/StorageScope","default":"user"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CopyBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/storage/resolve-batch":{"post":{"tags":["Files"],"summary":"Resolve Storage Refs Batch","description":"Resolve up to 200 storage refs to minimal cards + URL.\nIntended to avoid N+1 when rendering history (optional helper).","operationId":"resolve_storage_refs_batch_api_storage_resolve_batch_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveBatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/storage/reconcile/scan":{"get":{"tags":["Files"],"summary":"Scan Storage Reconcile","description":"Compare on-disk files with 8DNA registry for the resolved row (project RBAC).","operationId":"scan_storage_reconcile_api_storage_reconcile_scan_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"scope","in":"query","required":false,"schema":{"$ref":"#/components/schemas/StorageScope","default":"user"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/storage/reconcile":{"post":{"tags":["Files"],"summary":"Apply Storage Reconcile Route","description":"Apply disk↔8DNA fixes for the resolved row (dry_run default true).","operationId":"apply_storage_reconcile_route_api_storage_reconcile_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"scope","in":"query","required":false,"schema":{"$ref":"#/components/schemas/StorageScope","default":"user"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageReconcileBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/storage/admin/recalculate-quota":{"post":{"tags":["Files"],"summary":"Recalculate Storage Quota","description":"Repair quota counters from indexes for the resolved 8DNA row.","operationId":"recalculate_storage_quota_api_storage_admin_recalculate_quota_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"scope","in":"query","required":false,"schema":{"$ref":"#/components/schemas/StorageScope","default":"user"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hosting/sites":{"get":{"tags":["Projects"],"summary":"List Sites","operationId":"list_sites_api_hosting_sites_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Sites Api Hosting Sites Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hosting/quota":{"get":{"tags":["Projects"],"summary":"Get Quota","operationId":"get_quota_api_hosting_quota_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Quota Api Hosting Quota Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hosting/buckets":{"post":{"tags":["Projects"],"summary":"Create Bucket","operationId":"create_bucket_api_hosting_buckets_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketCreateBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Bucket Api Hosting Buckets Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/hosting/buckets/{bucket_id}/files/{file_path}":{"put":{"tags":["Projects"],"summary":"Put File","operationId":"put_file_api_hosting_buckets__bucket_id__files__file_path__put","parameters":[{"name":"bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Bucket Id"}},{"name":"file_path","in":"path","required":true,"schema":{"type":"string","title":"File Path"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Put File Api Hosting Buckets  Bucket Id  Files  File Path  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Projects"],"summary":"Delete File","operationId":"delete_file_api_hosting_buckets__bucket_id__files__file_path__delete","parameters":[{"name":"bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Bucket Id"}},{"name":"file_path","in":"path","required":true,"schema":{"type":"string","title":"File Path"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete File Api Hosting Buckets  Bucket Id  Files  File Path  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"get":{"tags":["Projects"],"summary":"Get File","operationId":"get_file_api_hosting_buckets__bucket_id__files__file_path__get","parameters":[{"name":"bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Bucket Id"}},{"name":"file_path","in":"path","required":true,"schema":{"type":"string","title":"File Path"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"max_chars","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":64000,"minimum":1},{"type":"null"}],"title":"Max Chars"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get File Api Hosting Buckets  Bucket Id  Files  File Path  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"hosting.bucket.files.list","x-capability-id":"hosting.bucket.files.list"},"patch":{"tags":["Projects"],"summary":"Rename File","operationId":"rename_file_api_hosting_buckets__bucket_id__files__file_path__patch","parameters":[{"name":"bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Bucket Id"}},{"name":"file_path","in":"path","required":true,"schema":{"type":"string","title":"File Path"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenameFileBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Rename File Api Hosting Buckets  Bucket Id  Files  File Path  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hosting/buckets/{bucket_id}/files":{"get":{"tags":["Projects"],"summary":"List Files","operationId":"list_files_api_hosting_buckets__bucket_id__files_get","parameters":[{"name":"bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Bucket Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"prefix","in":"query","required":false,"schema":{"type":"string","default":"","title":"Prefix"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":500,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"Case-insensitive substring filter on file path (LITE-GAP-L7)","title":"Q"},"description":"Case-insensitive substring filter on file path (LITE-GAP-L7)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Files Api Hosting Buckets  Bucket Id  Files Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hosting/buckets/{bucket_id}/files/{file_path}/content-patch":{"post":{"tags":["Projects"],"summary":"Content Patch File","description":"Apply text patch (same contract as MCP hosting.bucket.file.patch).","operationId":"content_patch_file_api_hosting_buckets__bucket_id__files__file_path__content_patch_post","parameters":[{"name":"bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Bucket Id"}},{"name":"file_path","in":"path","required":true,"schema":{"type":"string","title":"File Path"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentPatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Content Patch File Api Hosting Buckets  Bucket Id  Files  File Path  Content Patch Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hosting/buckets/{bucket_id}/files/mkdir":{"post":{"tags":["Projects"],"summary":"Mkdir Bucket","operationId":"mkdir_bucket_api_hosting_buckets__bucket_id__files_mkdir_post","parameters":[{"name":"bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Bucket Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MkdirBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mkdir Bucket Api Hosting Buckets  Bucket Id  Files Mkdir Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hosting/buckets/{bucket_id}/files/copy":{"post":{"tags":["Projects"],"summary":"Copy File","operationId":"copy_file_api_hosting_buckets__bucket_id__files_copy_post","parameters":[{"name":"bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Bucket Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CopyFileBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Copy File Api Hosting Buckets  Bucket Id  Files Copy Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hosting/buckets/{bucket_id}/files/bulk-delete":{"post":{"tags":["Projects"],"summary":"Bulk Delete Files","operationId":"bulk_delete_files_api_hosting_buckets__bucket_id__files_bulk_delete_post","parameters":[{"name":"bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Bucket Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bulk Delete Files Api Hosting Buckets  Bucket Id  Files Bulk Delete Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hosting/buckets/{bucket_id}/files/batch":{"post":{"tags":["Projects"],"summary":"Put Files Batch","operationId":"put_files_batch_api_hosting_buckets__bucket_id__files_batch_post","parameters":[{"name":"bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Bucket Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchFilesBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Put Files Batch Api Hosting Buckets  Bucket Id  Files Batch Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"hosting.deploy_files","x-capability-id":"hosting.deploy_files"}},"/api/hosting/buckets/{bucket_id}/import-zip":{"post":{"tags":["Projects"],"summary":"Import Zip","operationId":"import_zip_api_hosting_buckets__bucket_id__import_zip_post","parameters":[{"name":"bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Bucket Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Import Zip Api Hosting Buckets  Bucket Id  Import Zip Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"Uploaded file"}},"required":["file"]}}}},"x-channel":"rest_compat"}},"/api/hosting/edge-health":{"get":{"tags":["Projects"],"summary":"Project Edge Health","description":"Edge readiness for every site in the project (admin / hub diagnostics).","operationId":"project_edge_health_api_hosting_edge_health_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Project Edge Health Api Hosting Edge Health Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hosting/buckets/{bucket_id}/edge-health":{"get":{"tags":["Projects"],"summary":"Bucket Edge Health","description":"Disk + symlink readiness for nginx ``/s/`` / ``/a/`` (no edge HTTP probe).","operationId":"bucket_edge_health_api_hosting_buckets__bucket_id__edge_health_get","parameters":[{"name":"bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Bucket Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bucket Edge Health Api Hosting Buckets  Bucket Id  Edge Health Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hosting/buckets/{bucket_id}/publish":{"post":{"tags":["Projects"],"summary":"Publish Bucket","operationId":"publish_bucket_api_hosting_buckets__bucket_id__publish_post","parameters":[{"name":"bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Bucket Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Publish Bucket Api Hosting Buckets  Bucket Id  Publish Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"hosting.publish","x-capability-id":"hosting.publish"}},"/api/hosting/buckets/{bucket_id}/preview-publish":{"post":{"tags":["Projects"],"summary":"Preview Publish Bucket","description":"Copy live bucket to preview plane; symlink ``{name}-preview`` for nginx.","operationId":"preview_publish_bucket_api_hosting_buckets__bucket_id__preview_publish_post","parameters":[{"name":"bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Bucket Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Preview Publish Bucket Api Hosting Buckets  Bucket Id  Preview Publish Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hosting/sites/quick-start":{"post":{"tags":["Projects"],"summary":"Quick Start","operationId":"quick_start_api_hosting_sites_quick_start_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QuickStartBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Quick Start Api Hosting Sites Quick Start Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat","x-mcp-action":"hosting.site.quick_start","x-capability-id":"hosting.site.quick_start"}},"/api/hosting/name-available":{"get":{"tags":["Projects"],"summary":"Name Available","operationId":"name_available_api_hosting_name_available_get","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Name"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"exclude_bucket_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exclude Bucket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Name Available Api Hosting Name Available Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hosting/slug-available":{"get":{"tags":["Projects"],"summary":"Slug Available","operationId":"slug_available_api_hosting_slug_available_get","parameters":[{"name":"slug","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Slug"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"exclude_bucket_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exclude Bucket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Slug Available Api Hosting Slug Available Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hosting/buckets/{bucket_id}":{"patch":{"tags":["Projects"],"summary":"Patch Bucket","operationId":"patch_bucket_api_hosting_buckets__bucket_id__patch","parameters":[{"name":"bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Bucket Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BucketPatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Patch Bucket Api Hosting Buckets  Bucket Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Projects"],"summary":"Delete Bucket","operationId":"delete_bucket_api_hosting_buckets__bucket_id__delete","parameters":[{"name":"bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Bucket Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"purge","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Purge"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Bucket Api Hosting Buckets  Bucket Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hosting/primary-site":{"put":{"tags":["Projects"],"summary":"Set Primary Site","operationId":"set_primary_site_api_hosting_primary_site_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrimarySiteBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Set Primary Site Api Hosting Primary Site Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/hosting/buckets/{bucket_id}/promote-build":{"post":{"tags":["Projects"],"summary":"Promote Build","operationId":"promote_build_api_hosting_buckets__bucket_id__promote_build_post","parameters":[{"name":"bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Bucket Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoteBuildBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Promote Build Api Hosting Buckets  Bucket Id  Promote Build Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hosting/buckets/{bucket_id}/import-storage":{"post":{"tags":["Projects"],"summary":"Import Storage Folder","operationId":"import_storage_folder_api_hosting_buckets__bucket_id__import_storage_post","parameters":[{"name":"bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Bucket Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorageImportBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Import Storage Folder Api Hosting Buckets  Bucket Id  Import Storage Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hosting/buckets/{bucket_id}/snapshots":{"post":{"tags":["Projects"],"summary":"Create Snapshot","operationId":"create_snapshot_api_hosting_buckets__bucket_id__snapshots_post","parameters":[{"name":"bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Bucket Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnapshotBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Snapshot Api Hosting Buckets  Bucket Id  Snapshots Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"hosting.release.snapshot","x-capability-id":"hosting.release.snapshot"}},"/api/hosting/buckets/{bucket_id}/releases":{"get":{"tags":["Projects"],"summary":"List Releases","operationId":"list_releases_api_hosting_buckets__bucket_id__releases_get","parameters":[{"name":"bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Bucket Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Releases Api Hosting Buckets  Bucket Id  Releases Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"hosting.release.list","x-capability-id":"hosting.release.list"}},"/api/hosting/releases/{release_uuid}":{"get":{"tags":["Projects"],"summary":"Get Release","operationId":"get_release_api_hosting_releases__release_uuid__get","parameters":[{"name":"release_uuid","in":"path","required":true,"schema":{"type":"string","title":"Release Uuid"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Release Api Hosting Releases  Release Uuid  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"patch":{"tags":["Projects"],"summary":"Patch Release","operationId":"patch_release_api_hosting_releases__release_uuid__patch","parameters":[{"name":"release_uuid","in":"path","required":true,"schema":{"type":"string","title":"Release Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleasePatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Patch Release Api Hosting Releases  Release Uuid  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Projects"],"summary":"Delete Release","operationId":"delete_release_api_hosting_releases__release_uuid__delete","parameters":[{"name":"release_uuid","in":"path","required":true,"schema":{"type":"string","title":"Release Uuid"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"purge","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Purge"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Release Api Hosting Releases  Release Uuid  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hosting/releases/{release_uuid}/promote":{"post":{"tags":["Projects"],"summary":"Promote Release","operationId":"promote_release_api_hosting_releases__release_uuid__promote_post","parameters":[{"name":"release_uuid","in":"path","required":true,"schema":{"type":"string","title":"Release Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoteReleaseBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Promote Release Api Hosting Releases  Release Uuid  Promote Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"hosting.release.promote","x-capability-id":"hosting.release.promote"}},"/api/hosting/releases/{release_uuid}/clone-site":{"post":{"tags":["Projects"],"summary":"Clone Site From Release","operationId":"clone_site_from_release_api_hosting_releases__release_uuid__clone_site_post","parameters":[{"name":"release_uuid","in":"path","required":true,"schema":{"type":"string","title":"Release Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloneSiteFromReleaseBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Clone Site From Release Api Hosting Releases  Release Uuid  Clone Site Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hosting/buckets/{dest_bucket_id}/clone-from/{src_bucket_id}":{"post":{"tags":["Projects"],"summary":"Clone Bucket From","operationId":"clone_bucket_from_api_hosting_buckets__dest_bucket_id__clone_from__src_bucket_id__post","parameters":[{"name":"dest_bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Dest Bucket Id"}},{"name":"src_bucket_id","in":"path","required":true,"schema":{"type":"string","title":"Src Bucket Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Clone Bucket From Api Hosting Buckets  Dest Bucket Id  Clone From  Src Bucket Id  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hosting/releases/{release_uuid}/compare":{"get":{"tags":["Projects"],"summary":"Compare Release To Live","operationId":"compare_release_to_live_api_hosting_releases__release_uuid__compare_get","parameters":[{"name":"release_uuid","in":"path","required":true,"schema":{"type":"string","title":"Release Uuid"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Compare Release To Live Api Hosting Releases  Release Uuid  Compare Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/site/{project_id}/{slug}":{"get":{"tags":["Hosting"],"summary":"Redirect Site Slug","operationId":"redirect_site_slug_site__project_id___slug__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/public/hosting/guest-quick-publish/status":{"get":{"tags":["Public hosting"],"summary":"Guest Quick Publish Status","operationId":"guest_quick_publish_status_api_public_hosting_guest_quick_publish_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Guest Quick Publish Status Api Public Hosting Guest Quick Publish Status Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/public/hosting/guest-quick-publish":{"post":{"tags":["Public hosting"],"summary":"Guest Quick Publish Public","operationId":"guest_quick_publish_public_api_public_hosting_guest_quick_publish_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestQuickPublishBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Guest Quick Publish Public Api Public Hosting Guest Quick Publish Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/public/demo/status":{"get":{"tags":["Public demo hosting"],"summary":"Demo Status","operationId":"demo_status_api_public_demo_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Demo Status Api Public Demo Status Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/public/demo/session":{"get":{"tags":["Public demo hosting"],"summary":"Demo Get Session","operationId":"demo_get_session_api_public_demo_session_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Demo Get Session Api Public Demo Session Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Public demo hosting"],"summary":"Demo Create Session","operationId":"demo_create_session_api_public_demo_session_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemoSessionBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Demo Create Session Api Public Demo Session Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"},"delete":{"tags":["Public demo hosting"],"summary":"Demo Delete Session","operationId":"demo_delete_session_api_public_demo_session_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Demo Delete Session Api Public Demo Session Delete"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/public/demo/publish":{"post":{"tags":["Public demo hosting"],"summary":"Demo Publish","operationId":"demo_publish_api_public_demo_publish_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DemoPublishBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Demo Publish Api Public Demo Publish Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/public/demo/upload-zip":{"post":{"tags":["Public demo hosting"],"summary":"Demo Upload Zip","operationId":"demo_upload_zip_api_public_demo_upload_zip_post","requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"file":{"type":"string","format":"binary","description":"Uploaded file"}},"type":"object","required":["file"]}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Demo Upload Zip Api Public Demo Upload Zip Post"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/public/demo/upload-files":{"post":{"tags":["Public demo hosting"],"summary":"Demo Upload Files","operationId":"demo_upload_files_api_public_demo_upload_files_post","requestBody":{"content":{"multipart/form-data":{"schema":{"properties":{"files":{"items":{"type":"string","format":"binary"},"type":"array","description":"Uploaded files"}},"type":"object","required":["files"]}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Demo Upload Files Api Public Demo Upload Files Post"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/public/demo/edge-health":{"get":{"tags":["Public demo hosting"],"summary":"Demo Edge Health","operationId":"demo_edge_health_api_public_demo_edge_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Demo Edge Health Api Public Demo Edge Health Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/public/grants/evidence-snapshot":{"get":{"tags":["Public grants"],"summary":"Public Grants Evidence Snapshot","operationId":"public_grants_evidence_snapshot_api_public_grants_evidence_snapshot_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Public Grants Evidence Snapshot Api Public Grants Evidence Snapshot Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/public/grants/chain-surface":{"get":{"tags":["Public grants"],"summary":"Public Grants Chain Surface","operationId":"public_grants_chain_surface_api_public_grants_chain_surface_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Public Grants Chain Surface Api Public Grants Chain Surface Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/public/grants/batches/{batch_id}/proof":{"get":{"tags":["Public grants"],"summary":"Public Grants Batch Proof","operationId":"public_grants_batch_proof_api_public_grants_batches__batch_id__proof_get","parameters":[{"name":"batch_id","in":"path","required":true,"schema":{"type":"integer","title":"Batch Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Public Grants Batch Proof Api Public Grants Batches  Batch Id  Proof Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/public/grants/metrics":{"get":{"tags":["Public grants"],"summary":"Public Grants Metrics","description":"Public metrics mirror (ADR PUBLIC_GRANT_REVIEWER_UI) — read-only JSON.\n\nPrefer live evidence assembler; fall back to static\n``agentstack-frontend/public/grants/metrics.json`` or the metrics file\npointed at by ``docs/grants/evidence/manifest.json`` ``latest_path``.\nNever return the manifest itself as a metrics body.","operationId":"public_grants_metrics_api_public_grants_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Public Grants Metrics Api Public Grants Metrics Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/public/showcase/catalog":{"get":{"tags":["Public showcase"],"summary":"Public Showcase Catalog","description":"Unauthenticated catalog for the /showcase gallery.","operationId":"public_showcase_catalog_api_public_showcase_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Public Showcase Catalog Api Public Showcase Catalog Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/public/showcase/helpdesk/simulate":{"post":{"tags":["Public showcase"],"summary":"Public Helpdesk Simulate","description":"Guest FAQ chat for HelpDesk showcase — no auth; showcase pid allowlisted server-side.","operationId":"public_helpdesk_simulate_api_public_showcase_helpdesk_simulate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HelpdeskSimulateBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Public Helpdesk Simulate Api Public Showcase Helpdesk Simulate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/public/services/catalog":{"get":{"tags":["Public services offers"],"summary":"Public Services Catalog","description":"Unauthenticated SKU catalog for /services. Fixture + optional 8DNA overlay.","operationId":"public_services_catalog_api_public_services_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Public Services Catalog Api Public Services Catalog Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/public/services/skus/{sku_id}":{"get":{"tags":["Public services offers"],"summary":"Public Services Sku","description":"Single visible SKU, or 404.","operationId":"public_services_sku_api_public_services_skus__sku_id__get","parameters":[{"name":"sku_id","in":"path","required":true,"schema":{"type":"string","title":"Sku Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Public Services Sku Api Public Services Skus  Sku Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/public/services/kickoff-preflight":{"get":{"tags":["Public services offers"],"summary":"Public Services Kickoff Preflight","description":"Kickoff checkout gate — CRM + optional session buff merge.","operationId":"public_services_kickoff_preflight_api_public_services_kickoff_preflight_get","parameters":[{"name":"sku","in":"query","required":true,"schema":{"type":"string","title":"Sku"}},{"name":"contact","in":"query","required":true,"schema":{"type":"string","title":"Contact"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Public Services Kickoff Preflight Api Public Services Kickoff Preflight Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/public/services/inquiry":{"post":{"tags":["Public services offers"],"summary":"Public Services Inquiry","description":"Create or merge a CRM lead on ecosystem project 1. CSRF skipped under /api/public/.","operationId":"public_services_inquiry_api_public_services_inquiry_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServicesInquiryBody"}}},"required":true},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Public Services Inquiry Api Public Services Inquiry Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/public/projects/{project_id}/form-intake":{"post":{"tags":["Public form intake"],"summary":"Public Form Intake","description":"Accept a lead from a hosted site form; upsert CRM contact on ``project_id``.","operationId":"public_form_intake_api_public_projects__project_id__form_intake_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicFormIntakeBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Public Form Intake Api Public Projects  Project Id  Form Intake Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/public/commerce-lite/catalog":{"get":{"tags":["Public commerce lite"],"summary":"Public Commerce Lite Catalog","description":"Serve gallery catalog fixture (enabled entries only).","operationId":"public_commerce_lite_catalog_api_public_commerce_lite_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Public Commerce Lite Catalog Api Public Commerce Lite Catalog Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/demo/claim":{"post":{"tags":["Public demo hosting"],"summary":"Demo Claim Lease","description":"Phase 5: copy leased bucket to user project after login.","operationId":"demo_claim_lease_api_demo_claim_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Demo Claim Lease Api Demo Claim Post"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/profile/":{"get":{"tags":["Profile"],"summary":"Get Profile","description":"Получение основной информации о профиле пользователя","operationId":"get_profile_api_profile__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Profile"],"summary":"Update Profile","description":"Обновить профиль пользователя","operationId":"update_profile_api_profile__put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Profile Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/profile":{"get":{"tags":["Profile"],"summary":"Get Profile","description":"Получение основной информации о профиле пользователя","operationId":"get_profile_api_profile_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Profile"],"summary":"Update Profile","description":"Обновить профиль пользователя","operationId":"update_profile_api_profile_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Profile Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/profile/username":{"get":{"tags":["Profile"],"summary":"Get Username","description":"Получение имени пользователя","operationId":"get_username_api_profile_username_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Profile"],"summary":"Set Username","description":"Set the display username. The mailbox leaf is not rewritten.","operationId":"set_username_api_profile_username_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Username Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/profile/display-name":{"get":{"tags":["Profile"],"summary":"Get Display Name","description":"Получение отображаемого имени пользователя","operationId":"get_display_name_api_profile_display_name_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Profile"],"summary":"Set Display Name","description":"Установить отображаемое имя пользователя","operationId":"set_display_name_api_profile_display_name_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Display Name Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/profile/test":{"get":{"tags":["Profile"],"summary":"Get Profile Test","description":"Тестовый endpoint без аутентификации","operationId":"get_profile_test_api_profile_test_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/profile/wallets":{"get":{"tags":["Profile"],"summary":"Get Profile Wallets","description":"Получение личных кошельков пользователя через profile endpoint","operationId":"get_profile_wallets_api_profile_wallets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletListResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Profile"],"summary":"Create Profile Wallet","description":"Create a personal wallet for user","operationId":"create_profile_wallet_api_profile_wallets_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Wallet Data","description":"Wallet data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/profile/wallets/{wallet_id}/deposit":{"post":{"tags":["Profile"],"summary":"Deposit To Personal Wallet","description":"Deposit funds to personal wallet","operationId":"deposit_to_personal_wallet_api_profile_wallets__wallet_id__deposit_post","parameters":[{"name":"wallet_id","in":"path","required":true,"schema":{"type":"string","description":"Wallet ID","title":"Wallet Id"},"description":"Wallet ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_deposit_to_personal_wallet_api_profile_wallets__wallet_id__deposit_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/profile/wallets/{wallet_id}/transfer":{"post":{"tags":["Profile"],"summary":"Transfer From Personal Wallet","description":"Перевод с личного кошелька (может быть в проектный кошелек)","operationId":"transfer_from_personal_wallet_api_profile_wallets__wallet_id__transfer_post","parameters":[{"name":"wallet_id","in":"path","required":true,"schema":{"type":"string","description":"Wallet ID","title":"Wallet Id"},"description":"Wallet ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Transfer data","title":"Transfer Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/profile/wallets/{wallet_id}/balance":{"get":{"tags":["Profile"],"summary":"Get Personal Wallet Balance","description":"Get personal wallet balance","operationId":"get_personal_wallet_balance_api_profile_wallets__wallet_id__balance_get","parameters":[{"name":"wallet_id","in":"path","required":true,"schema":{"type":"string","description":"Wallet ID","title":"Wallet Id"},"description":"Wallet ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/profile/info":{"get":{"tags":["Profile"],"summary":"Get Profile Info","description":"Получение информации о профиле пользователя","operationId":"get_profile_info_api_profile_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/profile/referral":{"get":{"tags":["Profile"],"summary":"Get Profile Referral","description":"Referral: link (p/u), stats (referral_by_referee: paid, max_cap), total_earned, cap.","operationId":"get_profile_referral_api_profile_referral_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/profile/data":{"get":{"tags":["Profile"],"summary":"Get Profile Data","description":"Получение данных профиля пользователя","operationId":"get_profile_data_api_profile_data_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/profile/settings":{"get":{"tags":["Profile"],"summary":"Get Profile Settings","description":"Получение настроек профиля пользователя","operationId":"get_profile_settings_api_profile_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/profile/theme":{"get":{"tags":["Profile"],"summary":"Get Theme","description":"Получение темы пользователя","operationId":"get_theme_api_profile_theme_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/profile/subscriptions":{"get":{"tags":["Profile"],"summary":"Get User Subscriptions","description":"Get user subscriptions with automatic expiration check","operationId":"get_user_subscriptions_api_profile_subscriptions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/profile/subscription-plans":{"get":{"tags":["Profile"],"summary":"Get Subscription Plans","description":"Get all available subscription plans with full details","operationId":"get_subscription_plans_api_profile_subscription_plans_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/profile/subscriptions/purchase":{"post":{"tags":["Profile"],"summary":"Purchase Subscription","description":"Purchase a subscription via finance.pay (wallet). Card checkout uses payments.create.","operationId":"purchase_subscription_api_profile_subscriptions_purchase_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_purchase_subscription_api_profile_subscriptions_purchase_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/profile/subscriptions/{subscription_id}/renew":{"post":{"tags":["Profile"],"summary":"Renew Subscription","description":"Renew an existing subscription with full validation and error handling","operationId":"renew_subscription_api_profile_subscriptions__subscription_id__renew_post","parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","description":"Subscription ID","title":"Subscription Id"},"description":"Subscription ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_renew_subscription_api_profile_subscriptions__subscription_id__renew_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/profile/sessions/count":{"get":{"tags":["Profile"],"summary":"Get User Sessions Count","description":"Get user sessions count (moved from /sessions to avoid conflict with alias)","operationId":"get_user_sessions_count_api_profile_sessions_count_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/profile/activities":{"get":{"tags":["Profile"],"summary":"Get User Activities","description":"Get user activities","operationId":"get_user_activities_api_profile_activities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/profile/bio":{"get":{"tags":["Profile"],"summary":"Get Bio","description":"Получение биографии пользователя","operationId":"get_bio_api_profile_bio_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Profile"],"summary":"Set Bio","description":"Установить биографию пользователя","operationId":"set_bio_api_profile_bio_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Bio Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/profile/toggle-2fa":{"post":{"tags":["Profile"],"summary":"Toggle 2Fa","description":"Deprecated. Enroll via POST /api/auth/mfa/totp/begin.","operationId":"toggle_2fa_api_profile_toggle_2fa_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":{"type":"boolean"},"type":"object","title":"Toggle Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/profile/avatar":{"get":{"tags":["Profile"],"summary":"Get Current User Avatar","description":"Получить аватар текущего пользователя с диска","operationId":"get_current_user_avatar_api_profile_avatar_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Profile"],"summary":"Upload Avatar","description":"Загрузить аватар пользователя","operationId":"upload_avatar_api_profile_avatar_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/profile/avatar/exists":{"head":{"tags":["Profile"],"summary":"Avatar Exists Head","description":"HEAD /api/profile/avatar/exists — 204 when avatar file is on disk, else 404.","operationId":"avatar_exists_head_api_profile_avatar_exists_head","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/profile/wallet":{"get":{"tags":["Profile","Profile"],"summary":"Get user wallets","description":"Convenience path. Canonical: GET /api/user/wallet. Returns wallets for the authenticated user (user_id from session/API key).","operationId":"get_profile_wallet_alias_api_profile_wallet_get","responses":{"200":{"description":"List of user wallets","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/profile/sessions":{"get":{"tags":["Profile","Profile"],"summary":"Get user sessions","description":"Convenience path. Canonical: GET /api/user/sessions. Returns sessions for the authenticated user (user_id from session/API key).","operationId":"get_profile_sessions_alias_api_profile_sessions_get","responses":{"200":{"description":"User sessions information","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/profile/api-keys":{"get":{"tags":["Profile","Profile"],"summary":"Get user API keys","description":"Convenience path. Canonical: GET /api/user/api-keys. Returns API keys for the authenticated user (user_id from session/API key).","operationId":"get_profile_api_keys_alias_api_profile_api_keys_get","responses":{"200":{"description":"List of user API keys","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/profile/notifications":{"get":{"tags":["Profile","Profile"],"summary":"Get user notifications","description":"Convenience path. Canonical: GET /api/notifications/{project_id}. Returns notifications for the current project (project_id from session/API key).","operationId":"get_profile_notifications_alias_api_profile_notifications_get","responses":{"200":{"description":"List of notifications","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/avatars/{filename}":{"get":{"tags":["Avatars"],"summary":"Get Avatar By Filename","description":"Legacy path GET /api/avatars/{filename} — отдаёт аватар текущего пользователя с диска.\n\nСегмент filename игнорируется (историческая совместимость URL); важно передать Request\nв get_current_user_avatar для If-Modified-Since / FileResponse.","operationId":"get_avatar_by_filename_api_avatars__filename__get","parameters":[{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/wallets":{"get":{"tags":["Profile"],"summary":"Get Profile Wallets","description":"Получение личных кошельков пользователя через profile endpoint","operationId":"get_profile_wallets_api_wallets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletListResponse"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/seo/robots.txt":{"get":{"tags":["SEO"],"summary":"Get Robots Txt","description":"Dynamic robots.txt with crawl rules for all search robots.\nAllows indexing of public marketing pages and MCP machine-readable URLs.\nDisallows private API endpoints and dashboard areas.","operationId":"get_robots_txt_api_seo_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/seo/sitemap.xml":{"get":{"tags":["SEO"],"summary":"Get Sitemap Xml","description":"Dynamic sitemap.xml with all public pages.\nIncludes homepage, all public pages (social, messenger, builder, mcp/ai_prompt/*),\nand documentation pages. Cached per base URL with daily lastmod.","operationId":"get_sitemap_xml_api_seo_sitemap_xml_get","responses":{"200":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/seo/sitemap-index.xml":{"get":{"tags":["SEO"],"summary":"Get Sitemap Index Xml","description":"Sitemap index pointing at the platform urlset.","operationId":"get_sitemap_index_xml_api_seo_sitemap_index_xml_get","responses":{"200":{"description":"Successful Response"},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/seo/cache/clear":{"post":{"tags":["SEO"],"summary":"Clear Seo Caches Endpoint","description":"Drop cached robots.txt / sitemap.xml and all /seo/meta payloads.\nUse after changing the registry or public base URL handling.","operationId":"clear_seo_caches_endpoint_api_seo_cache_clear_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Clear Seo Caches Endpoint Api Seo Cache Clear Post"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/seo/health":{"get":{"tags":["SEO"],"summary":"Get Search Geo Health","description":"Search/GEO observability snapshot for SEO dashboards.","operationId":"get_search_geo_health_api_seo_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Search Geo Health Api Seo Health Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/seo/meta":{"get":{"tags":["SEO"],"summary":"Get Meta Tags","description":"Dynamic meta tags with neural cache + per-path singleflight on cold miss.","operationId":"get_meta_tags_api_seo_meta_get","parameters":[{"name":"path","in":"query","required":true,"schema":{"type":"string","description":"Path of the page (e.g., /dashboard/123, /pricing)","title":"Path"},"description":"Path of the page (e.g., /dashboard/123, /pricing)"},{"name":"locale","in":"query","required":false,"schema":{"type":"string","pattern":"^(en|ru|pt)$","default":"en","title":"Locale"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/seo/og-image/{type}/{id}":{"get":{"tags":["SEO"],"summary":"Get Og Image","description":"Получение ссылки на загруженный баннер для og:image\n\nДля проектов: ищет в project.data.seo_banner или project.data.banner\nДля пользователей: использует аватар из user.profile_data.avatar.url\nДля страниц: использует дефолтный баннер или null\n\n✅ Использует FileStorageService.get_file_url() для правильного форматирования URL","operationId":"get_og_image_api_seo_og_image__type___id__get","parameters":[{"name":"type","in":"path","required":true,"schema":{"type":"string","title":"Type"}},{"name":"id","in":"path","required":true,"schema":{"type":"string","title":"Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/seo/sitemap.xml":{"get":{"tags":["SEO"],"summary":"Get Project Seo Sitemap Xml","description":"Tenant sitemap — published public /s/ bucket roots for one project.","operationId":"get_project_seo_sitemap_xml_api_projects__project_id__seo_sitemap_xml_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/discovery/public-manifest.json":{"get":{"tags":["SEO"],"summary":"Get Public Discovery Manifest","description":"Sanitized public capability manifest for crawlers and external integrators.","operationId":"get_public_discovery_manifest_api_discovery_public_manifest_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Public Discovery Manifest Api Discovery Public Manifest Json Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/notifications/{project_id}/":{"get":{"tags":["Notifications"],"summary":"Get Notifications","description":"Get all notifications for a project","operationId":"get_notifications_api_notifications__project_id___get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Notifications"],"summary":"Create Notification","description":"Create new notification","operationId":"create_notification_api_notifications__project_id___post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Notification data","title":"Notification Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/notifications/{project_id}":{"get":{"tags":["Notifications"],"summary":"Get Notifications","description":"Get all notifications for a project","operationId":"get_notifications_api_notifications__project_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/notifications/{project_id}/in-app/stream":{"get":{"tags":["Notifications"],"summary":"Fabric In App Notification Stream","description":"SSE push for Fabric in-app inbox invalidation (B51).","operationId":"fabric_in_app_notification_stream_api_notifications__project_id__in_app_stream_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/notifications/{project_id}/templates/":{"get":{"tags":["Notifications"],"summary":"Get Notification Templates","description":"Get notification templates","operationId":"get_notification_templates_api_notifications__project_id__templates__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/notifications/{project_id}/templates":{"get":{"tags":["Notifications"],"summary":"Get Notification Templates","description":"Get notification templates","operationId":"get_notification_templates_api_notifications__project_id__templates_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/notifications/{project_id}/{notification_id}":{"get":{"tags":["Notifications"],"summary":"Get Notification","description":"Get notification details","operationId":"get_notification_api_notifications__project_id___notification_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"notification_id","in":"path","required":true,"schema":{"type":"string","title":"Notification Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Notifications"],"summary":"Update Notification","description":"Update notification","operationId":"update_notification_api_notifications__project_id___notification_id__put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"notification_id","in":"path","required":true,"schema":{"type":"string","title":"Notification Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Notification data","title":"Notification Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Notifications"],"summary":"Delete Notification","description":"Delete notification","operationId":"delete_notification_api_notifications__project_id___notification_id__delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"notification_id","in":"path","required":true,"schema":{"type":"string","title":"Notification Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/notifications/{project_id}/{notification_id}/read":{"patch":{"tags":["Notifications"],"summary":"Mark Notification Read","description":"Mark a project inbox notification as read (B50).","operationId":"mark_notification_read_api_notifications__project_id___notification_id__read_patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"notification_id","in":"path","required":true,"schema":{"type":"string","title":"Notification Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/notifications/{project_id}/read-all":{"patch":{"tags":["Notifications"],"summary":"Mark All Notifications Read","description":"Mark all unread project inbox rows for the current user as read (B52).","operationId":"mark_all_notifications_read_api_notifications__project_id__read_all_patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rbac/permissions/available":{"get":{"tags":["RBAC"],"summary":"Get Available Permissions","description":"Get available permissions","operationId":"get_available_permissions_api_rbac_permissions_available_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Project ID (optional)","title":"Project Id"},"description":"Project ID (optional)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rbac/check":{"post":{"tags":["RBAC"],"summary":"Check Permission Endpoint","description":"Check if a user has a permission in a project. Optional user_id; defaults to current user. Fast path when current user and permissions_bitmap present.","operationId":"check_permission_endpoint_api_rbac_check_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Request Data","description":"project_id, permission, optional user_id"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat","x-mcp-action":"rbac.check_permission","x-capability-id":"rbac.check_permission"}},"/api/rbac/roles":{"get":{"tags":["RBAC"],"summary":"Get Roles","description":"Get all roles for a project (system + custom)","operationId":"get_roles_api_rbac_roles_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["RBAC"],"summary":"Create Role","description":"Create new role","operationId":"create_role_api_rbac_roles_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Role data","title":"Role Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rbac/permissions":{"get":{"tags":["RBAC"],"summary":"Get Permissions","description":"Get all permissions for a project","operationId":"get_permissions_api_rbac_permissions_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID (required — never default to 1)","title":"Project Id"},"description":"Project ID (required — never default to 1)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rbac/roles/{role_id}":{"put":{"tags":["RBAC"],"summary":"Update Role","description":"Update an existing role","operationId":"update_role_api_rbac_roles__role_id__put","parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"string","description":"Role ID","title":"Role Id"},"description":"Role ID"},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Role updates","title":"Updates"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["RBAC"],"summary":"Delete Role","description":"Delete a role","operationId":"delete_role_api_rbac_roles__role_id__delete","parameters":[{"name":"role_id","in":"path","required":true,"schema":{"type":"string","description":"Role ID","title":"Role Id"},"description":"Role ID"},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rbac/users/{user_id}/role":{"put":{"tags":["RBAC"],"summary":"Update User Role","description":"Update user role (uses hybrid approach - updates card + assignments)","operationId":"update_user_role_api_rbac_users__user_id__role_put","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","description":"User ID","title":"User Id"},"description":"User ID"},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Role data","title":"Role Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rbac/users/{user_id}/permissions":{"get":{"tags":["RBAC"],"summary":"Get User Permissions","description":"Get user permissions","operationId":"get_user_permissions_api_rbac_users__user_id__permissions_get","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","title":"User Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rbac/users":{"get":{"tags":["RBAC"],"summary":"Get Users With Roles","description":"Get all users with their roles for a project","operationId":"get_users_with_roles_api_rbac_users_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rbac/templates":{"get":{"tags":["RBAC"],"summary":"Get Role Templates","description":"Get role templates (predefined role configurations)","operationId":"get_role_templates_api_rbac_templates_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"type":"integer","description":"Project ID","default":1,"title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/default-roles/invalidate-cache":{"post":{"tags":["RBAC"],"summary":"Invalidate Default Roles Cache","description":"Invalidate default roles cache\n\nCall this after updating default roles via 8DNA API to refresh cache.\nOnly ecosystem admins should have access to this endpoint.","operationId":"invalidate_default_roles_cache_api_default_roles_invalidate_cache_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/default-roles":{"get":{"tags":["RBAC"],"summary":"Get Default Roles","description":"Get all predefined default roles from ecosystem\n\nReturns roles stored in project_id=1 (ecosystem) data.config.rbac.default_roles","operationId":"get_default_roles_api_default_roles_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/data-access/policy":{"get":{"tags":["DataAccess"],"summary":"Get FAP for a project","description":"Returns `project.data.config.field_access_policy` (NeuralCache).\n\n**Auth:** must have **read** on `project_id`.\n\nOptional query `resource` returns a single `resources.<name>` object.","operationId":"get_policy_api_data_access_policy_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"resource","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"If set, return only this resource's policy","title":"Resource"},"description":"If set, return only this resource's policy"}],"responses":{"200":{"description":"Full policy: default_access, globals, resources, version","content":{"application/json":{"schema":{}}}},"401":{"description":"Not authenticated"},"403":{"description":"Insufficient project access (read / admin / owner)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"data_access.get_policy","x-capability-id":"data_access.get_policy"}},"/api/data-access/policy/{resource}":{"put":{"tags":["DataAccess"],"summary":"Upsert one FAP resource block","description":"Writes `resources.{resource}` and optional `globals` / `default_access`.\n\n**Auth:** project **admin** (RBAC) **or** project **owner**.\n\nInvalidates NeuralCache tag `project:{id}`. See FIELD_ACCESS_POLICY.md.","operationId":"set_resource_policy_api_data_access_policy__resource__put","parameters":[{"name":"resource","in":"path","required":true,"schema":{"type":"string","description":"Resource key (e.g., 'orders', 'products')","title":"Resource"},"description":"Resource key (e.g., 'orders', 'products')"},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourcePolicyBody"}}}},"responses":{"200":{"description":"Merged full project policy after save","content":{"application/json":{"schema":{}}}},"401":{"description":"Not authenticated"},"403":{"description":"Insufficient project access (read / admin / owner)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"data_access.set_policy","x-capability-id":"data_access.set_policy"},"delete":{"tags":["DataAccess"],"summary":"Delete one FAP resource block","description":"**Auth:** project admin or owner. Returns 404 if resource key absent.","operationId":"delete_resource_policy_api_data_access_policy__resource__delete","parameters":[{"name":"resource","in":"path","required":true,"schema":{"type":"string","description":"Resource key to remove from policy","title":"Resource"},"description":"Resource key to remove from policy"},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Full policy without removed resource","content":{"application/json":{"schema":{}}}},"401":{"description":"Not authenticated"},"403":{"description":"Insufficient project access (read / admin / owner)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/data-access/defaults-template":{"get":{"tags":["DataAccess"],"summary":"Get global FAP template (ecosystem DNA)","description":"Reads `config.field_access_defaults` on **ecosystem project** (`project_id=1`).\n\n**Auth:** **read** on project 1.\n\nUsed by admins to define defaults; user projects merge via `POST /defaults-template/apply` (Dashboard / Admin).","operationId":"get_defaults_template_api_data_access_defaults_template_get","responses":{"200":{"description":"{\"success\": true, \"template\": { ... }}","content":{"application/json":{"schema":{}}}},"401":{"description":"Not authenticated"},"403":{"description":"Insufficient project access (read / admin / owner)"},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["DataAccess"],"summary":"Save global FAP template","description":"Writes `field_access_defaults` on ecosystem project (id=1).\n\n**Auth:** **admin** or **owner** on project 1.\n\nValidates `globals` and each resource's `path_rules`. Does **not** change user projects until **apply** is called.","operationId":"put_defaults_template_api_data_access_defaults_template_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefaultsTemplateBody"}}},"required":true},"responses":{"200":{"description":"Persisted template object","content":{"application/json":{"schema":{}}}},"401":{"description":"Not authenticated"},"403":{"description":"Insufficient project access (read / admin / owner)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/data-access/defaults-template/apply":{"post":{"tags":["DataAccess"],"summary":"Apply global template → user project (missing keys only)","description":"For each `template.resources` key missing on the target project, copies that resource policy. **Never overwrites** existing `resources.*`.\n\n**Auth:** **admin** or **owner** on `target_project_id`.\n\n**Errors:** 400 if target is ecosystem project (use `PUT /policy/{r}`); 400 if template has no resources and no field_triggers. **MCP:** `data_access.apply_defaults_template`.","operationId":"apply_defaults_template_api_data_access_defaults_template_apply_post","parameters":[{"name":"target_project_id","in":"query","required":true,"schema":{"type":"integer","description":"Target logical project id (≠1). Example: 1025.","title":"Target Project Id"},"description":"Target logical project id (≠1). Example: 1025."},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"added_resources[], full updated policy","content":{"application/json":{"schema":{}}}},"401":{"description":"Not authenticated"},"403":{"description":"Insufficient project access (read / admin / owner)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/data-access/check":{"post":{"tags":["DataAccess"],"summary":"Check if a role may read/write a field path","description":"**Auth:** **read** on `project_id`. Evaluates FAP for hypothetical role/bitmap.","operationId":"check_field_access_api_data_access_check_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckFieldBody"}}}},"responses":{"200":{"description":"{ allowed, field_path, ... }","content":{"application/json":{"schema":{}}}},"401":{"description":"Not authenticated"},"403":{"description":"Insufficient project access (read / admin / owner)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/data-access/preview":{"post":{"tags":["DataAccess"],"summary":"Preview FAP mask for a resource and role","description":"**Auth:** **read** on `project_id`. Supports `draft_resource_policy` for Dashboard editor (unsaved rules). Dotted mode lists path_rules rows.","operationId":"preview_mask_api_data_access_preview_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewBody"}}}},"responses":{"200":{"description":"Per-field read/write + optional values from sample_data","content":{"application/json":{"schema":{}}}},"401":{"description":"Not authenticated"},"403":{"description":"Insufficient project access (read / admin / owner)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/data-access/emit":{"post":{"tags":["DataAccess"],"summary":"Emit a data_event to the Rules Engine","description":"Fire a data_event trigger in the Rules Engine for the given resource + action.\n\nPhilosophy: Creation over Conflict — instead of hardcoding side-effects in\nendpoint handlers, endpoints call this to let the Rules Engine react\ndeclaratively (webhook, notify, masking, etc.).\n\nValid actions: `created`, `updated`, `deleted`, `read`.\n\nExample use in an order-creation handler::\n\n    await emit_data_event_internal(\n        resource=\"orders\",\n        action=\"created\",\n        event_data=new_order,\n        project_id=project_id,\n        user_id=user_id,\n    )","operationId":"emit_data_event_api_data_access_emit_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmitDataEventBody"}}}},"responses":{"200":{"description":"Rules Engine execution result","content":{"application/json":{"schema":{}}}},"401":{"description":"Not authenticated"},"403":{"description":"Insufficient project access (read / admin / owner)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/data-access/triggers":{"get":{"tags":["DataAccess"],"summary":"Get field_triggers section (FAP v1.2)","operationId":"get_field_triggers_api_data_access_triggers_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"field_triggers object keyed by resource","content":{"application/json":{"schema":{}}}},"401":{"description":"Not authenticated"},"403":{"description":"Insufficient project access (read / admin / owner)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/data-access/triggers/{resource}":{"put":{"tags":["DataAccess"],"summary":"Upsert field_triggers for one resource","operationId":"put_field_triggers_api_data_access_triggers__resource__put","parameters":[{"name":"resource","in":"path","required":true,"schema":{"type":"string","description":"Resource key (e.g. orders)","title":"Resource"},"description":"Resource key (e.g. orders)"},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FieldTriggersResourceBody"}}}},"responses":{"200":{"description":"Full project policy after save","content":{"application/json":{"schema":{}}}},"401":{"description":"Not authenticated"},"403":{"description":"Insufficient project access (read / admin / owner)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["DataAccess"],"summary":"Remove all field_triggers for a resource","operationId":"delete_field_triggers_api_data_access_triggers__resource__delete","parameters":[{"name":"resource","in":"path","required":true,"schema":{"type":"string","title":"Resource"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Full project policy after delete","content":{"application/json":{"schema":{}}}},"401":{"description":"Not authenticated"},"403":{"description":"Insufficient project access (read / admin / owner)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/data-access/trigger-test":{"post":{"tags":["DataAccess"],"summary":"Dry-run field_triggers (match + conditions, no actions)","operationId":"trigger_test_api_data_access_trigger_test_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TriggerTestBody"}}}},"responses":{"200":{"description":"would_run_count and per-trigger condition_passed","content":{"application/json":{"schema":{}}}},"401":{"description":"Not authenticated"},"403":{"description":"Insufficient project access (read / admin / owner)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/data-access/cache/invalidate":{"post":{"tags":["DataAccess"],"summary":"Force-invalidate field access policy cache for a project","description":"Force-invalidate all field_access_policy cache entries for the project.\n\nUses tag-based invalidation: removes ALL L1 neural cache entries tagged\n`project:{project_id}` — including RBAC entries for this project.\n\nUseful after direct DB edits or when debugging stale-cache issues.\nRequires admin permission.\n\nNote: Under normal conditions this is called automatically by\n`PUT /policy/{resource}`. Manual invalidation is for debugging only.","operationId":"cache_invalidate_api_data_access_cache_invalidate_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Number of invalidated cache entries","content":{"application/json":{"schema":{}}}},"401":{"description":"Not authenticated"},"403":{"description":"Insufficient project access (read / admin / owner)"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/data-access/cache/stats":{"get":{"tags":["DataAccess"],"summary":"Field access policy cache statistics","description":"Return cache statistics for the field_access:policy namespace.\n\nShows hits, misses, hit_rate, entry count, tag counts.\nUseful for monitoring cache effectiveness in production.\n\nRequires ecosystem admin or owner — stats are global and reveal load patterns.\n\nPhilosophy: Elegant Minimalism — observability built-in, not bolted on.","operationId":"cache_stats_api_data_access_cache_stats_get","responses":{"200":{"description":"Hit/miss stats and entry counts","content":{"application/json":{"schema":{}}}},"401":{"description":"Not authenticated"},"403":{"description":"Insufficient project access (read / admin / owner)"},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/analytics/events":{"post":{"tags":["Analytics"],"summary":"Track Event","operationId":"track_event_api_analytics_events_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Event data","title":"Event Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"},"get":{"tags":["Analytics"],"summary":"Get Events","operationId":"get_events_api_analytics_events_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"event_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by event name","title":"Event Name"},"description":"Filter by event name"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Number of events to return","default":100,"title":"Limit"},"description":"Number of events to return"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","description":"Number of events to skip","default":0,"title":"Offset"},"description":"Number of events to skip"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/analytics/stats":{"get":{"tags":["Analytics"],"summary":"Get Analytics Stats","operationId":"get_analytics_stats_api_analytics_stats_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/analytics/projects/{project_id}/metrics":{"get":{"tags":["Analytics"],"summary":"Get Project Metrics","description":"Get project-level metrics (stored in data_projects_8dna.data.metrics)","operationId":"get_project_metrics_api_analytics_projects__project_id__metrics_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Number of metrics to return","default":100,"title":"Limit"},"description":"Number of metrics to return"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","description":"Number of metrics to skip","default":0,"title":"Offset"},"description":"Number of metrics to skip"},{"name":"metric_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by metric type","title":"Metric Type"},"description":"Filter by metric type"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"analytics.get_metrics","x-capability-id":"analytics.get_metrics"},"post":{"tags":["Analytics"],"summary":"Create Project Metric","description":"Create or update project-level metric (stored in data_projects_8dna.data.metrics)","operationId":"create_project_metric_api_analytics_projects__project_id__metrics_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Metric data","title":"Metric Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/analytics/projects/{project_id}/metrics/record":{"get":{"tags":["Analytics"],"summary":"Get Project Metrics Record","description":"Get the complete metrics record for the project","operationId":"get_project_metrics_record_api_analytics_projects__project_id__metrics_record_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Analytics"],"summary":"Update Project Metrics Record","description":"Update the complete metrics record for the project","operationId":"update_project_metrics_record_api_analytics_projects__project_id__metrics_record_put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Complete metrics data","title":"Metrics Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/analytics/projects/{project_id}/users/{user_id}/metrics":{"get":{"tags":["Analytics"],"summary":"Get User Metrics","description":"Get user-level metrics for a specific user in a project (stored in data_projects_8dna.data.metrics)","operationId":"get_user_metrics_api_analytics_projects__project_id__users__user_id__metrics_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","description":"User ID","title":"User Id"},"description":"User ID"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Number of metrics to return","default":100,"title":"Limit"},"description":"Number of metrics to return"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","description":"Number of metrics to skip","default":0,"title":"Offset"},"description":"Number of metrics to skip"},{"name":"metric_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by metric type","title":"Metric Type"},"description":"Filter by metric type"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Analytics"],"summary":"Create User Metric","description":"Create or update user-level metric for a user in a project (stored in data_projects_8dna.data.metrics)","operationId":"create_user_metric_api_analytics_projects__project_id__users__user_id__metrics_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","description":"User ID","title":"User Id"},"description":"User ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Metric data","title":"Metric Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/analytics/projects/{project_id}/users/{user_id}/metrics/record":{"get":{"tags":["Analytics"],"summary":"Get User Metrics Record","description":"Get the complete user metrics record for a user in a project","operationId":"get_user_metrics_record_api_analytics_projects__project_id__users__user_id__metrics_record_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","description":"User ID","title":"User Id"},"description":"User ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Analytics"],"summary":"Update User Metrics Record","description":"Update the complete user metrics record for a user in a project","operationId":"update_user_metrics_record_api_analytics_projects__project_id__users__user_id__metrics_record_put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","description":"User ID","title":"User Id"},"description":"User ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Complete metrics data","title":"Metrics Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/analytics/realtime":{"get":{"tags":["Analytics"],"summary":"Get Realtime Metrics","operationId":"get_realtime_metrics_api_analytics_realtime_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/analytics/dashboard":{"get":{"tags":["Analytics"],"summary":"Get Dashboard Metrics","operationId":"get_dashboard_metrics_api_analytics_dashboard_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"period","in":"query","required":false,"schema":{"type":"string","description":"Time period","default":"week","title":"Period"},"description":"Time period"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logs":{"post":{"tags":["Analytics"],"summary":"Receive Frontend Logs","description":"Receive logs from frontend client\nAccepts log entries from frontend and stores them in execution_ecosystem_logs\nAuthentication is optional - logs can be sent without auth for error tracking","operationId":"receive_frontend_logs_api_logs_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Log Entry","description":"Frontend log entry"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/logic/templates/taxonomies":{"get":{"tags":["Logic Templates"],"summary":"Canonical taxonomy for the templates gallery (F2.7)","description":"Return the canonical project-type and category taxonomy.","operationId":"get_taxonomies_api_logic_templates_taxonomies_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/templates/search":{"get":{"tags":["Logic Templates"],"summary":"Search templates (F2.7 gallery)","description":"Substring search across template name/description/tags.","operationId":"search_templates_api_logic_templates_search_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Free-form query","title":"Q"},"description":"Free-form query"},{"name":"project_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Type"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/templates":{"get":{"tags":["Logic Templates"],"summary":"Get logic templates","description":"Get logic templates\n\nTemplates are stored in ecosystem project (project_id=1)","operationId":"get_templates_api_logic_templates_get","parameters":[{"name":"project_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by project type","title":"Project Type"},"description":"Filter by project type"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category","title":"Category"},"description":"Filter by category"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/templates/{template_id}":{"get":{"tags":["Logic Templates"],"summary":"Get Template","description":"Get a specific template\n\nArgs:\n    template_id: Template ID","operationId":"get_template_api_logic_templates__template_id__get","parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/templates/project-type/{project_type}":{"get":{"tags":["Logic Templates"],"summary":"Get Templates By Project Type","description":"Get templates for a specific project type\n\nArgs:\n    project_type: Project type (game, ecommerce, saas, fintech, social, marketplace)","operationId":"get_templates_by_project_type_api_logic_templates_project_type__project_type__get","parameters":[{"name":"project_type","in":"path","required":true,"schema":{"type":"string","title":"Project Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/templates/category/{category}":{"get":{"tags":["Logic Templates"],"summary":"Get Templates By Category","description":"Get templates by category\n\nArgs:\n    category: Category (rewards, payments, notifications, etc.)","operationId":"get_templates_by_category_api_logic_templates_category__category__get","parameters":[{"name":"category","in":"path","required":true,"schema":{"type":"string","title":"Category"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/templates/{template_id}/apply":{"post":{"tags":["Logic Templates"],"summary":"Apply Template","description":"Apply template to create a rule in user's project\n\nArgs:\n    template_id: Template ID\n    project_id: Target project ID (optional, defaults to user's project)","operationId":"apply_template_api_logic_templates__template_id__apply_post","parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Project ID (defaults to user's project)","title":"Project Id"},"description":"Project ID (defaults to user's project)"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/templates/{template_id}/node-map":{"get":{"tags":["Logic Templates"],"summary":"Get Template Node Map","description":"Get node map for a template (visualization of processor chain)\n\nArgs:\n    template_id: Template ID","operationId":"get_template_node_map_api_logic_templates__template_id__node_map_get","parameters":[{"name":"template_id","in":"path","required":true,"schema":{"type":"string","title":"Template Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/templates/systems/overview":{"get":{"tags":["Logic Templates"],"summary":"Get Systems Overview","description":"Get overview of all imported 8DNA systems with their node maps\n\nReturns a summary of all systems, their commands, and node counts","operationId":"get_systems_overview_api_logic_templates_systems_overview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/flush-batch":{"post":{"tags":["Logic Engine"],"summary":"Flush Logic Batch","description":"Force flush logic batch for a project (for testing or manual flush)","operationId":"flush_logic_batch_api_logic_flush_batch_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID to flush batch for","title":"Project Id"},"description":"Project ID to flush batch for"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic":{"post":{"tags":["Logic Engine"],"summary":"Create Logic","description":"Create new logic\n\nLogic is stored in data_projects_8dna.data.logic","operationId":"create_logic_api_logic_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLogicRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat","x-mcp-action":"logic.create","x-capability-id":"logic.create"},"get":{"tags":["Logic Engine"],"summary":"List Rules","description":"List logic for project\n\nLogic is stored in data_projects_8dna.data.logic\n\n✅ CRITICAL: Uses X-Project-ID header if provided, otherwise uses project_id from token","operationId":"list_rules_api_logic_get","parameters":[{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter by enabled status","title":"Enabled"},"description":"Filter by enabled status"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"If-None-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-None-Match"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"logic.list","x-capability-id":"logic.list"}},"/api/logic/commands":{"get":{"tags":["Logic Engine"],"summary":"Get Commands","description":"Get list of commands for project (cached)\n\nReturns list of commands used in logic triggers for autocomplete in visual editor\nIMPORTANT: This endpoint must be defined BEFORE /{logic_id} to avoid route conflicts","operationId":"get_commands_api_logic_commands_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/processors":{"get":{"tags":["Logic Engine"],"summary":"Get Processors","description":"Get list of available processors with their metadata\n\nReturns processors that can be used in logic actions\nIMPORTANT: This endpoint must be defined BEFORE /{logic_id} to avoid route conflicts","operationId":"get_processors_api_logic_processors_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/{logic_id}/metrics":{"get":{"tags":["Logic Engine"],"summary":"Get Logic Metrics","description":"Return collected p50/p95/p99 latency metrics for a rule (F1.2).\n\nBacked by the in-process DDSketchLite registry maintained by\n``shared.optrace.logic_metrics``. One entry per trigger scope plus\nper-processor/per-block counters (populated by the compiler).\n\nGenetic tags: core.logic.rule_engine.declarative.gen1,\nshared.observability.optrace.gen1.","operationId":"get_logic_metrics_api_logic__logic_id__metrics_get","parameters":[{"name":"logic_id","in":"path","required":true,"schema":{"type":"string","description":"Logic ID (UUID)","title":"Logic Id"},"description":"Logic ID (UUID)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/metrics":{"get":{"tags":["Logic Engine"],"summary":"Get All Logic Metrics","description":"Return latency metrics for **all** rules in the current project.","operationId":"get_all_logic_metrics_api_logic_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/{logic_id}/versions":{"get":{"tags":["Logic Engine"],"summary":"List Logic Versions","description":"F2.9 — List historical snapshots stored on the rule.","operationId":"list_logic_versions_api_logic__logic_id__versions_get","parameters":[{"name":"logic_id","in":"path","required":true,"schema":{"type":"string","description":"Logic ID","title":"Logic Id"},"description":"Logic ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/{logic_id}/versions/diff":{"post":{"tags":["Logic Engine"],"summary":"Diff Logic Versions","description":"F2.9 — Return a minimal delta between two rule snapshots.","operationId":"diff_logic_versions_api_logic__logic_id__versions_diff_post","parameters":[{"name":"logic_id","in":"path","required":true,"schema":{"type":"string","description":"Logic ID","title":"Logic Id"},"description":"Logic ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiffVersionsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/{logic_id}/versions/{version_id}/restore":{"post":{"tags":["Logic Engine"],"summary":"Restore Logic Version","description":"F2.9 — Roll a rule back to a prior version (snapshot).","operationId":"restore_logic_version_api_logic__logic_id__versions__version_id__restore_post","parameters":[{"name":"logic_id","in":"path","required":true,"schema":{"type":"string","description":"Logic ID","title":"Logic Id"},"description":"Logic ID"},{"name":"version_id","in":"path","required":true,"schema":{"type":"string","description":"Version ID","title":"Version Id"},"description":"Version ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/{logic_id}/dry-run":{"post":{"tags":["Logic Engine"],"summary":"Post Dry Run","description":"F2.5 — Dry-run a rule with mocked processors.\n\nCompiles the rule (using the production compiler) and executes it\nagainst a ``SimulationContext`` that returns caller-provided mock\noutputs instead of hitting real processors. Returns a timeline of\n:class:`StepTrace` entries the UI can use to drive the\n``SimulatorPanel`` step-by-step highlight.","operationId":"post_dry_run_api_logic__logic_id__dry_run_post","parameters":[{"name":"logic_id","in":"path","required":true,"schema":{"type":"string","description":"Logic ID (UUID)","title":"Logic Id"},"description":"Logic ID (UUID)"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DryRunRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/schema-trace":{"post":{"tags":["Logic Engine"],"summary":"Post Schema Trace","description":"F2.4 — Compose the input-schema available at ``block_id``.\n\nUsed by SmartPathInput/ExpressionInput to populate autocomplete\nsuggestions with the exact fields a given block can reference.","operationId":"post_schema_trace_api_logic_schema_trace_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchemaTraceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/logic/mcp-actions":{"get":{"tags":["Logic Engine"],"summary":"List Mcp Actions","description":"F2.3 — Palette v2: catalog of MCP tools the editor can drop as actions.\n\nThe endpoint reflects ``MCP_TOOLS_REGISTRY`` at call time; the UI\ngroups entries by dotted prefix (``wallet.*``, ``storage.*``, …) to\npopulate the palette's MCP Actions category.","operationId":"list_mcp_actions_api_logic_mcp_actions_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by tool category","title":"Category"},"description":"Filter by tool category"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/signals-catalog":{"get":{"tags":["Logic Engine"],"summary":"List Signal Channels","description":"F2.3 — Palette v2: catalog of signal channels available to triggers.\n\nCombines a curated list of stable, documented channels with the\ndynamic set discovered from ``neural_router._routes``. The UI uses\nthis to populate the Signal trigger picker's autocomplete list.","operationId":"list_signal_channels_api_logic_signals_catalog_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/channel-event-triggers":{"get":{"tags":["Logic Engine"],"summary":"List Channel Event Triggers Endpoint","description":"Palette v2 + FlowEditor: normalized channel neural_event catalog.\n\nSingle SoT with MCP ``channels.list_event_triggers`` — see\n``shared.messaging.channel_event_catalog``.","operationId":"list_channel_event_triggers_endpoint_api_logic_channel_event_triggers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/rules/upsert":{"post":{"tags":["Logic Engine"],"summary":"Upsert logic rule by external rule_id","description":"Create or update a logic rule keyed by stable ``rule_id`` (``external_rule_key``).\n\nCardGame templates and deploy scripts send ``steps`` instead of ``space``;\nsaga/auth/compensate/metadata are stored in ``editor_metadata``.","operationId":"upsert_logic_rule_api_logic_rules_upsert_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertLogicRuleRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/logic/blueprints":{"get":{"tags":["Logic Engine"],"summary":"List installable logic blueprints","operationId":"list_logic_blueprints_api_logic_blueprints_get","parameters":[{"name":"project_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Project Type"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/blueprints/{blueprint_id}":{"get":{"tags":["Logic Engine"],"summary":"Get logic blueprint by id","operationId":"get_logic_blueprint_api_logic_blueprints__blueprint_id__get","parameters":[{"name":"blueprint_id","in":"path","required":true,"schema":{"type":"string","title":"Blueprint Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/projects/{project_id}/preview-blueprint":{"post":{"tags":["Logic Engine"],"summary":"Preview blueprint compile","operationId":"preview_logic_blueprint_api_logic_projects__project_id__preview_blueprint_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewBlueprintBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/projects/{project_id}/install-blueprint":{"post":{"tags":["Logic Engine"],"summary":"Install blueprint as new rule","operationId":"install_logic_blueprint_api_logic_projects__project_id__install_blueprint_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallBlueprintBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/projects/{project_id}/install-structure":{"post":{"tags":["Logic Engine"],"summary":"Install multi-rule structure pack","operationId":"install_logic_structure_api_logic_projects__project_id__install_structure_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallStructureBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/test":{"post":{"tags":["Logic Engine"],"summary":"Test Logic","description":"Test JSON logic without saving","operationId":"test_logic_api_logic_test_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_test_logic_api_logic_test_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/logic/{logic_id}":{"get":{"tags":["Logic Engine"],"summary":"Get Logic By Id","description":"Get a specific logic\n\nLogic is stored in data_projects_8dna.data.logic","operationId":"get_logic_by_id_api_logic__logic_id__get","parameters":[{"name":"logic_id","in":"path","required":true,"schema":{"type":"string","description":"Logic ID (UUID)","title":"Logic Id"},"description":"Logic ID (UUID)"},{"name":"If-Epoch-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Epoch-Match"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"logic.get","x-capability-id":"logic.get"},"put":{"tags":["Logic Engine"],"summary":"Update Logic","description":"Update a logic\n\nLogic is stored in data_projects_8dna.data.logic","operationId":"update_logic_api_logic__logic_id__put","parameters":[{"name":"logic_id","in":"path","required":true,"schema":{"type":"string","description":"Logic ID (UUID)","title":"Logic Id"},"description":"Logic ID (UUID)"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateLogicRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Logic Engine"],"summary":"Delete Logic","description":"Delete a logic\n\nLogic is stored in data_projects_8dna.data.logic","operationId":"delete_logic_api_logic__logic_id__delete","parameters":[{"name":"logic_id","in":"path","required":true,"schema":{"type":"string","description":"Logic ID (UUID)","title":"Logic Id"},"description":"Logic ID (UUID)"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/{logic_id}/execute":{"post":{"tags":["Logic Engine"],"summary":"Execute Rule","description":"Execute a logic through Protein Commands API\n\nLogic is stored in data_projects_8dna.data.logic","operationId":"execute_rule_api_logic__logic_id__execute_post","parameters":[{"name":"logic_id","in":"path","required":true,"schema":{"type":"string","description":"Logic ID (UUID)","title":"Logic Id"},"description":"Logic ID (UUID)"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecuteLogicRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"logic.execute","x-capability-id":"logic.execute"}},"/api/logic/{logic_id}/executions":{"get":{"tags":["Logic Engine"],"summary":"Get Logic Executions","description":"Get execution history for a logic","operationId":"get_logic_executions_api_logic__logic_id__executions_get","parameters":[{"name":"logic_id","in":"path","required":true,"schema":{"type":"string","description":"Logic ID (UUID)","title":"Logic Id"},"description":"Logic ID (UUID)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Number of executions to return","default":10,"title":"Limit"},"description":"Number of executions to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/logic/{logic_id}/suggest-params":{"get":{"tags":["Logic Engine"],"summary":"Suggest Execution Params","description":"Get suggested execution parameters based on last successful execution","operationId":"suggest_execution_params_api_logic__logic_id__suggest_params_get","parameters":[{"name":"logic_id","in":"path","required":true,"schema":{"type":"string","description":"Logic ID (UUID)","title":"Logic Id"},"description":"Logic ID (UUID)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/logic/executions/recent":{"get":{"tags":["Logic Engine"],"summary":"Get Recent Logic Executions Batch","description":"Batch recent logic executions for up to 20 rules (single log scan).","operationId":"get_recent_logic_executions_batch_api_projects__project_id__logic_executions_recent_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"ids","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated logic IDs (max 20)","title":"Ids"},"description":"Comma-separated logic IDs (max 20)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":20,"minimum":1,"description":"Executions per rule","default":1,"title":"Limit"},"description":"Executions per rule"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hooks/hubspot/relay":{"post":{"tags":["Webhooks","Integrations"],"summary":"Receive Hubspot App Webhook Relay","description":"Platform HubSpot app webhook → tenant connection by ``portal_id``.","operationId":"receive_hubspot_app_webhook_relay_api_hooks_hubspot_relay_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Receive Hubspot App Webhook Relay Api Hooks Hubspot Relay Post"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/hooks/{project_id}/{provider}/{slug}":{"get":{"tags":["Webhooks","Integrations"],"summary":"Verify Webhook Project","operationId":"verify_webhook_project_api_hooks__project_id___provider___slug__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"provider","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Provider"}},{"name":"slug","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string","title":"Response Verify Webhook Project Api Hooks  Project Id   Provider   Slug  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Webhooks","Integrations"],"summary":"Receive Webhook Project","operationId":"receive_webhook_project_api_hooks__project_id___provider___slug__post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"provider","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Provider"}},{"name":"slug","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Slug"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Receive Webhook Project Api Hooks  Project Id   Provider   Slug  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hooks/ecosystem/users/{user_id}/{provider}/{slug}":{"get":{"tags":["Webhooks","Integrations"],"summary":"Verify Webhook Personal","operationId":"verify_webhook_personal_api_hooks_ecosystem_users__user_id___provider___slug__get","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"User Id"}},{"name":"provider","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Provider"}},{"name":"slug","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"string","title":"Response Verify Webhook Personal Api Hooks Ecosystem Users  User Id   Provider   Slug  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Webhooks","Integrations"],"summary":"Receive Webhook Personal","operationId":"receive_webhook_personal_api_hooks_ecosystem_users__user_id___provider___slug__post","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"User Id"}},{"name":"provider","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Provider"}},{"name":"slug","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Slug"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Receive Webhook Personal Api Hooks Ecosystem Users  User Id   Provider   Slug  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/hooks/{project_id}/{slug}":{"post":{"tags":["Webhooks","Integrations"],"summary":"Receive Webhook Legacy","description":"Legacy AgentStack HMAC hooks (project scope).","operationId":"receive_webhook_legacy_api_hooks__project_id___slug__post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"slug","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Slug"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Receive Webhook Legacy Api Hooks  Project Id   Slug  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"webhooks.register","x-capability-id":"webhooks.register"}},"/api/integrations/recipes":{"get":{"tags":["Integrations"],"summary":"List Integration Recipes","operationId":"list_integration_recipes_api_integrations_recipes_get","parameters":[{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search name/description/tags","title":"Q"},"description":"Search name/description/tags"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Integration Recipes Api Integrations Recipes Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"integrations.list_recipes","x-capability-id":"integrations.list_recipes"}},"/api/integrations/recipes/taxonomies":{"get":{"tags":["Integrations"],"summary":"Integration Recipe Taxonomies","operationId":"integration_recipe_taxonomies_api_integrations_recipes_taxonomies_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Integration Recipe Taxonomies Api Integrations Recipes Taxonomies Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/apps":{"get":{"tags":["Integrations"],"summary":"List Integration Apps","operationId":"list_integration_apps_api_integrations_apps_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search name/description/tags","title":"Q"},"description":"Search name/description/tags"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"tag","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tag"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Integration Apps Api Integrations Apps Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/apps/taxonomies":{"get":{"tags":["Integrations"],"summary":"Integration App Taxonomies","operationId":"integration_app_taxonomies_api_integrations_apps_taxonomies_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Integration App Taxonomies Api Integrations Apps Taxonomies Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/apps/{provider}":{"get":{"tags":["Integrations"],"summary":"Get Integration App","operationId":"get_integration_app_api_integrations_apps__provider__get","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Integration App Api Integrations Apps  Provider  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/apps/{provider}/triggers":{"get":{"tags":["Integrations"],"summary":"List Integration App Triggers","operationId":"list_integration_app_triggers_api_integrations_apps__provider__triggers_get","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Integration App Triggers Api Integrations Apps  Provider  Triggers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/apps/{provider}/actions":{"get":{"tags":["Integrations"],"summary":"List Integration App Actions","operationId":"list_integration_app_actions_api_integrations_apps__provider__actions_get","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Integration App Actions Api Integrations Apps  Provider  Actions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/apps/{provider}/dynamic-fields":{"get":{"tags":["Integrations"],"summary":"List Integration App Dynamic Fields","operationId":"list_integration_app_dynamic_fields_api_integrations_apps__provider__dynamic_fields_get","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}},{"name":"field_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Field Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Integration App Dynamic Fields Api Integrations Apps  Provider  Dynamic Fields Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/recipes/bundle":{"get":{"tags":["Integrations"],"summary":"Export Recipe Bundle","description":"Export full catalog as a versioned bundle (no secrets).","operationId":"export_recipe_bundle_api_integrations_recipes_bundle_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Export Recipe Bundle Api Integrations Recipes Bundle Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/recipes/{recipe_id}/install":{"post":{"tags":["Integrations"],"summary":"Install Recipe","operationId":"install_recipe_api_integrations_recipes__recipe_id__install_post","parameters":[{"name":"recipe_id","in":"path","required":true,"schema":{"type":"string","title":"Recipe Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstallRecipeBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Install Recipe Api Integrations Recipes  Recipe Id  Install Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/connections":{"get":{"tags":["Integrations"],"summary":"List Connections","operationId":"list_connections_api_integrations_connections_get","parameters":[{"name":"owner_kind","in":"query","required":false,"schema":{"$ref":"#/components/schemas/IntegrationOwnerKind","default":"project"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"}},{"name":"generation","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Generation"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Connections Api Integrations Connections Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"integrations.list_connections","x-capability-id":"integrations.list_connections"},"post":{"tags":["Integrations"],"summary":"Create Connection","operationId":"create_connection_api_integrations_connections_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateConnectionBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Connection Api Integrations Connections Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/integrations/oauth/{provider}/begin":{"post":{"tags":["Integrations"],"summary":"Oauth Begin Integration","operationId":"oauth_begin_integration_api_integrations_oauth__provider__begin_post","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OAuthBeginBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Oauth Begin Integration Api Integrations Oauth  Provider  Begin Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/oauth/{provider}/callback":{"get":{"tags":["Integrations"],"summary":"Oauth Callback Integration","description":"Browser redirect target — completes token exchange and returns to SPA.","operationId":"oauth_callback_integration_api_integrations_oauth__provider__callback_get","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}},{"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"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/connections/{connection_id}/activate-webhook":{"post":{"tags":["Integrations"],"summary":"Activate Integration Webhook","description":"Register provider inbound webhook for an existing connection (post-OAuth retry).","operationId":"activate_integration_webhook_api_integrations_connections__connection_id__activate_webhook_post","parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Activate Integration Webhook Api Integrations Connections  Connection Id  Activate Webhook Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/connections/{connection_id}/refresh-token":{"post":{"tags":["Integrations"],"summary":"Refresh Integration Token","operationId":"refresh_integration_token_api_integrations_connections__connection_id__refresh_token_post","parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}},{"name":"force","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Force"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Refresh Integration Token Api Integrations Connections  Connection Id  Refresh Token Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/connections/{connection_id}/mailbox":{"post":{"tags":["Integrations"],"summary":"Mailbox Operation","description":"List, read, or send through a connected Gmail or Microsoft mailbox.","operationId":"mailbox_operation_api_integrations_connections__connection_id__mailbox_post","parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailboxOpBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mailbox Operation Api Integrations Connections  Connection Id  Mailbox Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/connections/{connection_id}":{"patch":{"tags":["Integrations"],"summary":"Update Integration Connection","operationId":"update_integration_connection_api_integrations_connections__connection_id__patch","parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateConnectionBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Integration Connection Api Integrations Connections  Connection Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Integrations"],"summary":"Delete Connection","operationId":"delete_connection_api_integrations_connections__connection_id__delete","parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Connection Api Integrations Connections  Connection Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/connections/{connection_id}/export":{"get":{"tags":["Integrations"],"summary":"Export Connection","operationId":"export_connection_api_integrations_connections__connection_id__export_get","parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Export Connection Api Integrations Connections  Connection Id  Export Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/connections/import":{"post":{"tags":["Integrations"],"summary":"Import Connection","operationId":"import_connection_api_integrations_connections_import_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportConnectionBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Import Connection Api Integrations Connections Import Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/integrations/import/zapier":{"post":{"tags":["Integrations"],"summary":"Import Zapier Automation","description":"Map Zapier export JSON to recipe + logic block draft (or commit when dry_run=false).","operationId":"import_zapier_automation_api_integrations_import_zapier_post","parameters":[{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean","description":"Preview only; no 8DNA writes","default":true,"title":"Dry Run"},"description":"Preview only; no 8DNA writes"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCommitBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Import Zapier Automation Api Integrations Import Zapier Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/import/make":{"post":{"tags":["Integrations"],"summary":"Import Make Automation","description":"Map Make scenario JSON to recipe + logic block draft (or commit when dry_run=false).","operationId":"import_make_automation_api_integrations_import_make_post","parameters":[{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean","description":"Preview only; no 8DNA writes","default":true,"title":"Dry Run"},"description":"Preview only; no 8DNA writes"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCommitBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Import Make Automation Api Integrations Import Make Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/import/n8n":{"post":{"tags":["Integrations"],"summary":"Import N8N Automation","description":"Map n8n workflow JSON to recipe + logic block draft (or commit when dry_run=false).","operationId":"import_n8n_automation_api_integrations_import_n8n_post","parameters":[{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean","description":"Preview only; no 8DNA writes","default":true,"title":"Dry Run"},"description":"Preview only; no 8DNA writes"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportCommitBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Import N8N Automation Api Integrations Import N8N Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/scenarios/generate":{"post":{"tags":["Integrations"],"summary":"Generate Integration Scenario","description":"NL → RuleDocumentV1 draft (copilot stub).","operationId":"generate_integration_scenario_api_integrations_scenarios_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateScenarioBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Generate Integration Scenario Api Integrations Scenarios Generate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/integrations/modules":{"get":{"tags":["Integrations"],"summary":"List Integration Modules","operationId":"list_integration_modules_api_integrations_modules_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Integration Modules Api Integrations Modules Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/modules/registrations":{"get":{"tags":["Integrations"],"summary":"List Integration Module Registrations","operationId":"list_integration_module_registrations_api_integrations_modules_registrations_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"owner_kind","in":"query","required":false,"schema":{"$ref":"#/components/schemas/IntegrationOwnerKind","default":"project"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},{"name":"connection_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connection Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Integration Module Registrations Api Integrations Modules Registrations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/modules/{module_id}/register":{"post":{"tags":["Integrations"],"summary":"Register Integration Module","operationId":"register_integration_module_api_integrations_modules__module_id__register_post","parameters":[{"name":"module_id","in":"path","required":true,"schema":{"type":"string","title":"Module Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterModuleBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Register Integration Module Api Integrations Modules  Module Id  Register Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/deliveries/dlq":{"get":{"tags":["Integrations"],"summary":"List Dlq Deliveries","operationId":"list_dlq_deliveries_api_integrations_deliveries_dlq_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"owner_kind","in":"query","required":false,"schema":{"$ref":"#/components/schemas/IntegrationOwnerKind","default":"project"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},{"name":"connection_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connection Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Dlq Deliveries Api Integrations Deliveries Dlq Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/connections/test-hook":{"post":{"tags":["Integrations"],"summary":"Test Hook","description":"Verify inbound signature + optional logic dispatch (synchronous).","operationId":"test_hook_api_integrations_connections_test_hook_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestHookBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Test Hook Api Integrations Connections Test Hook Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/integrations/connections/{connection_id}/rotate-secret":{"post":{"tags":["Integrations"],"summary":"Rotate Connection Secret","operationId":"rotate_connection_secret_api_integrations_connections__connection_id__rotate_secret_post","parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateSecretBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Rotate Connection Secret Api Integrations Connections  Connection Id  Rotate Secret Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/connections/{connection_id}/secrets":{"get":{"tags":["Integrations"],"summary":"Reveal Connection Secrets","operationId":"reveal_connection_secrets_api_integrations_connections__connection_id__secrets_get","parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Reveal Connection Secrets Api Integrations Connections  Connection Id  Secrets Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/connections/{connection_id}/poll":{"post":{"tags":["Integrations"],"summary":"Poll Integration Connection","operationId":"poll_integration_connection_api_integrations_connections__connection_id__poll_post","parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Poll Integration Connection Api Integrations Connections  Connection Id  Poll Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/inbox/events":{"get":{"tags":["Integrations"],"summary":"List Inbox Events","operationId":"list_inbox_events_api_integrations_inbox_events_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"owner_kind","in":"query","required":false,"schema":{"$ref":"#/components/schemas/IntegrationOwnerKind","default":"project"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},{"name":"connection_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connection Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Inbox Events Api Integrations Inbox Events Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/connections/{connection_id}/rotate-secret/generate":{"post":{"tags":["Integrations"],"summary":"Generate Connection Signing Secret","operationId":"generate_connection_signing_secret_api_integrations_connections__connection_id__rotate_secret_generate_post","parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Generate Connection Signing Secret Api Integrations Connections  Connection Id  Rotate Secret Generate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/deliveries/process-batch":{"post":{"tags":["Integrations"],"summary":"Process Integration Outbound Batch","description":"Drain ``webhooks.outbound`` work queue (ops / worker parity with inbox batch).","operationId":"process_integration_outbound_batch_api_integrations_deliveries_process_batch_post","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":16,"title":"Limit"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Process Integration Outbound Batch Api Integrations Deliveries Process Batch Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/deliveries":{"get":{"tags":["Integrations"],"summary":"List Deliveries","operationId":"list_deliveries_api_integrations_deliveries_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"owner_kind","in":"query","required":false,"schema":{"$ref":"#/components/schemas/IntegrationOwnerKind","default":"project"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},{"name":"connection_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connection Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Deliveries Api Integrations Deliveries Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/issues":{"get":{"tags":["Integrations"],"summary":"List Integration Issues","operationId":"list_integration_issues_api_integrations_issues_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"owner_kind","in":"query","required":false,"schema":{"$ref":"#/components/schemas/IntegrationOwnerKind","default":"project"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},{"name":"connection_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connection Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Integration Issues Api Integrations Issues Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/migrate-legacy-webhooks":{"post":{"tags":["Integrations"],"summary":"Migrate Legacy Webhooks","operationId":"migrate_legacy_webhooks_api_integrations_migrate_legacy_webhooks_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":2,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Migrate Legacy Webhooks Api Integrations Migrate Legacy Webhooks Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/deliveries/replay":{"post":{"tags":["Integrations"],"summary":"Replay Delivery","operationId":"replay_delivery_api_integrations_deliveries_replay_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"target_url","in":"query","required":true,"schema":{"type":"string","title":"Target Url"}},{"name":"event_type","in":"query","required":false,"schema":{"type":"string","default":"replay","title":"Event Type"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Replay Delivery Api Integrations Deliveries Replay Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/deliveries/{delivery_id}/replay":{"post":{"tags":["Integrations"],"summary":"Replay Delivery By Id","operationId":"replay_delivery_by_id_api_integrations_deliveries__delivery_id__replay_post","parameters":[{"name":"delivery_id","in":"path","required":true,"schema":{"type":"string","title":"Delivery Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"owner_kind","in":"query","required":false,"schema":{"$ref":"#/components/schemas/IntegrationOwnerKind","default":"project"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Replay Delivery By Id Api Integrations Deliveries  Delivery Id  Replay Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/connectors/setup-schema":{"get":{"tags":["Integrations"],"summary":"Connector Setup Schema","operationId":"connector_setup_schema_api_integrations_connectors_setup_schema_get","parameters":[{"name":"provider","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Provider"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Connector Setup Schema Api Integrations Connectors Setup Schema Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/connections/{connection_id}/health":{"get":{"tags":["Integrations"],"summary":"Connection Health","operationId":"connection_health_api_integrations_connections__connection_id__health_get","parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Connection Health Api Integrations Connections  Connection Id  Health Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/connections/{connection_id}/telegram-diagnose":{"get":{"tags":["Integrations"],"summary":"Telegram Connection Diagnose","operationId":"telegram_connection_diagnose_api_integrations_connections__connection_id__telegram_diagnose_get","parameters":[{"name":"connection_id","in":"path","required":true,"schema":{"type":"string","title":"Connection Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Telegram Connection Diagnose Api Integrations Connections  Connection Id  Telegram Diagnose Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/diagnostics":{"get":{"tags":["Integrations"],"summary":"Integrations Diagnostics","operationId":"integrations_diagnostics_api_integrations_diagnostics_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Integrations Diagnostics Api Integrations Diagnostics Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/diagnostics/platform":{"get":{"tags":["Integrations"],"summary":"Integrations Platform Diagnostics","description":"Cross-tenant integrations rollup (platform admin diagnostics).","operationId":"integrations_platform_diagnostics_api_integrations_diagnostics_platform_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Integrations Platform Diagnostics Api Integrations Diagnostics Platform Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/inbox/process-batch":{"post":{"tags":["Integrations"],"summary":"Process Integration Inbox Batch","description":"Worker-style batch (dev/admin); production should run from scheduler/cron.","operationId":"process_integration_inbox_batch_api_integrations_inbox_process_batch_post","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":32,"title":"Limit"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Process Integration Inbox Batch Api Integrations Inbox Process Batch Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/polling/process-batch":{"post":{"tags":["Integrations"],"summary":"Process Integration Polling Batch","description":"Poll due connections (``config.poll_enabled``); same contract as MCP ops tool.","operationId":"process_integration_polling_batch_api_integrations_polling_process_batch_post","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":16,"title":"Limit"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Project Id"}},{"name":"min_interval_s","in":"query","required":false,"schema":{"type":"integer","maximum":3600,"minimum":5,"default":60,"title":"Min Interval S"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Process Integration Polling Batch Api Integrations Polling Process Batch Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/triggers/hydrate":{"post":{"tags":["Integrations"],"summary":"Hydrate Integration Triggers","description":"Load persisted trigger bindings into in-process registry (ops / recovery).","operationId":"hydrate_integration_triggers_api_integrations_triggers_hydrate_post","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":2000,"minimum":1,"default":256,"title":"Limit"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Hydrate Integration Triggers Api Integrations Triggers Hydrate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/triggers/rebind":{"post":{"tags":["Integrations"],"summary":"Rebind Integration Triggers","description":"Re-sync enabled logic rule triggers (extended subscriptions) after deploy or DNA repair.","operationId":"rebind_integration_triggers_api_integrations_triggers_rebind_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":64,"title":"Limit"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Rebind Integration Triggers Api Integrations Triggers Rebind Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/inbox/{inbox_id}/replay":{"post":{"tags":["Integrations"],"summary":"Replay Inbox Event","operationId":"replay_inbox_event_api_integrations_inbox__inbox_id__replay_post","parameters":[{"name":"inbox_id","in":"path","required":true,"schema":{"type":"string","title":"Inbox Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"owner_kind","in":"query","required":false,"schema":{"$ref":"#/components/schemas/IntegrationOwnerKind","default":"project"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Replay Inbox Event Api Integrations Inbox  Inbox Id  Replay Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/scenarios":{"get":{"tags":["Integrations"],"summary":"List Integration Scenarios","operationId":"list_integration_scenarios_api_integrations_scenarios_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"owner_kind","in":"query","required":false,"schema":{"$ref":"#/components/schemas/IntegrationOwnerKind","default":"project"}},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Integration Scenarios Api Integrations Scenarios Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Integrations"],"summary":"Create Integration Scenario","operationId":"create_integration_scenario_api_integrations_scenarios_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScenarioBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Integration Scenario Api Integrations Scenarios Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/integrations/scenarios/{scenario_id}":{"get":{"tags":["Integrations"],"summary":"Get Integration Scenario","operationId":"get_integration_scenario_api_integrations_scenarios__scenario_id__get","parameters":[{"name":"scenario_id","in":"path","required":true,"schema":{"type":"string","title":"Scenario Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"If-Epoch-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Epoch-Match"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Integration Scenario Api Integrations Scenarios  Scenario Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/scenarios/{scenario_id}/draft":{"post":{"tags":["Integrations"],"summary":"Save Integration Scenario Draft","operationId":"save_integration_scenario_draft_api_integrations_scenarios__scenario_id__draft_post","parameters":[{"name":"scenario_id","in":"path","required":true,"schema":{"type":"string","title":"Scenario Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveScenarioDraftBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Save Integration Scenario Draft Api Integrations Scenarios  Scenario Id  Draft Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/scenarios/{scenario_id}/publish":{"post":{"tags":["Integrations"],"summary":"Publish Integration Scenario","operationId":"publish_integration_scenario_api_integrations_scenarios__scenario_id__publish_post","parameters":[{"name":"scenario_id","in":"path","required":true,"schema":{"type":"string","title":"Scenario Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Publish Integration Scenario Api Integrations Scenarios  Scenario Id  Publish Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/scenarios/{scenario_id}/unpublish":{"post":{"tags":["Integrations"],"summary":"Unpublish Integration Scenario","operationId":"unpublish_integration_scenario_api_integrations_scenarios__scenario_id__unpublish_post","parameters":[{"name":"scenario_id","in":"path","required":true,"schema":{"type":"string","title":"Scenario Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Unpublish Integration Scenario Api Integrations Scenarios  Scenario Id  Unpublish Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/scenarios/{scenario_id}/test-step":{"post":{"tags":["Integrations"],"summary":"Test Integration Scenario Step","operationId":"test_integration_scenario_step_api_integrations_scenarios__scenario_id__test_step_post","parameters":[{"name":"scenario_id","in":"path","required":true,"schema":{"type":"string","title":"Scenario Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestScenarioStepBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Test Integration Scenario Step Api Integrations Scenarios  Scenario Id  Test Step Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/scenarios/{scenario_id}/map-preview":{"post":{"tags":["Integrations"],"summary":"Preview Integration Scenario Maps","operationId":"preview_integration_scenario_maps_api_integrations_scenarios__scenario_id__map_preview_post","parameters":[{"name":"scenario_id","in":"path","required":true,"schema":{"type":"string","title":"Scenario Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MapPreviewBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Preview Integration Scenario Maps Api Integrations Scenarios  Scenario Id  Map Preview Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/scenarios/{scenario_id}/runs":{"get":{"tags":["Integrations"],"summary":"List Integration Scenario Runs","operationId":"list_integration_scenario_runs_api_integrations_scenarios__scenario_id__runs_get","parameters":[{"name":"scenario_id","in":"path","required":true,"schema":{"type":"string","title":"Scenario Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Integration Scenario Runs Api Integrations Scenarios  Scenario Id  Runs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/scenarios/{scenario_id}/gdpr-export":{"get":{"tags":["Integrations"],"summary":"Integration Scenario Gdpr Export","operationId":"integration_scenario_gdpr_export_api_integrations_scenarios__scenario_id__gdpr_export_get","parameters":[{"name":"scenario_id","in":"path","required":true,"schema":{"type":"string","title":"Scenario Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Integration Scenario Gdpr Export Api Integrations Scenarios  Scenario Id  Gdpr Export Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/scenarios/{scenario_id}/export":{"get":{"tags":["Integrations"],"summary":"Integration Scenario Export","operationId":"integration_scenario_export_api_integrations_scenarios__scenario_id__export_get","parameters":[{"name":"scenario_id","in":"path","required":true,"schema":{"type":"string","title":"Scenario Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Integration Scenario Export Api Integrations Scenarios  Scenario Id  Export Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/integrations/data-store/{scenario_id}/{key}":{"get":{"tags":["Integrations"],"summary":"Get Integration Data Store","operationId":"get_integration_data_store_api_integrations_data_store__scenario_id___key__get","parameters":[{"name":"scenario_id","in":"path","required":true,"schema":{"type":"string","title":"Scenario Id"}},{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Integration Data Store Api Integrations Data Store  Scenario Id   Key  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Integrations"],"summary":"Set Integration Data Store","operationId":"set_integration_data_store_api_integrations_data_store__scenario_id___key__post","parameters":[{"name":"scenario_id","in":"path","required":true,"schema":{"type":"string","title":"Scenario Id"}},{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataStoreValueBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Set Integration Data Store Api Integrations Data Store  Scenario Id   Key  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/command":{"post":{"tags":["Commands"],"summary":"Execute Command","description":"Execute a client command\n\nCommands are processed through Logic Engine command handlers.\nSupports wildcard triggers (e.g., \"action.*\").\n\nCommand format: category.action\nExamples:\n- check.daily_reward\n- action.draw_card\n- game.level_up\n- shop.purchase\n- reward.claim\n\nArgs:\n    request: Command request with command string and data\n    current_user: Authenticated user context\n\nReturns:\n    Command execution results","operationId":"execute_command_api_command_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/endpoints__command_endpoints__CommandRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/endpoints__command_endpoints__CommandResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/projects/{project_id}/guidance/definitions":{"get":{"tags":["Guidance"],"summary":"List Definitions","operationId":"list_definitions_api_projects__project_id__guidance_definitions_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Definitions Api Projects  Project Id  Guidance Definitions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"guidance.list_capability_tasks","x-capability-id":"guidance.list_capability_tasks"}},"/api/projects/{project_id}/guidance/definitions/{definition_id}":{"put":{"tags":["Guidance"],"summary":"Upsert Definition","operationId":"upsert_definition_api_projects__project_id__guidance_definitions__definition_id__put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"definition_id","in":"path","required":true,"schema":{"type":"string","title":"Definition Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertDefinitionBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Upsert Definition Api Projects  Project Id  Guidance Definitions  Definition Id  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/guidance/sessions/{session_id}/hydrate":{"get":{"tags":["Guidance"],"summary":"Hydrate Session","description":"Thin path-hydrate BFF (`docs/perf/PATH_HYDRATE_BFF.md`).\n\nReturns the session row plus ``capability_matrix_keys`` derived from playbook\nstep fabricCapabilityId / task ids when present on session state.","operationId":"hydrate_session_api_projects__project_id__guidance_sessions__session_id__hydrate_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Hydrate Session Api Projects  Project Id  Guidance Sessions  Session Id  Hydrate Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/guidance/sessions/active":{"get":{"tags":["Guidance"],"summary":"List Active Sessions","operationId":"list_active_sessions_api_projects__project_id__guidance_sessions_active_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Active Sessions Api Projects  Project Id  Guidance Sessions Active Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/guidance/sessions":{"post":{"tags":["Guidance"],"summary":"Start Session","operationId":"start_session_api_projects__project_id__guidance_sessions_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartSessionBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Start Session Api Projects  Project Id  Guidance Sessions Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/guidance/sessions/{session_id}":{"get":{"tags":["Guidance"],"summary":"Get Session","operationId":"get_session_api_projects__project_id__guidance_sessions__session_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Session Api Projects  Project Id  Guidance Sessions  Session Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"patch":{"tags":["Guidance"],"summary":"Patch Session","operationId":"patch_session_api_projects__project_id__guidance_sessions__session_id__patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchSessionBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Patch Session Api Projects  Project Id  Guidance Sessions  Session Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/guidance/events":{"post":{"tags":["Guidance"],"summary":"Post Events","description":"Analytics batch sink → OpTrace ``guidance.path.*`` rings.","operationId":"post_events_api_projects__project_id__guidance_events_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuidanceEventBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response Post Events Api Projects  Project Id  Guidance Events Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/guidance/funnel":{"get":{"tags":["Guidance"],"summary":"Get Funnel Snapshot","description":"Merged funnel: persisted 8DNA baseline + in-process counters (`scope=global` for platform rollup).","operationId":"get_funnel_snapshot_api_projects__project_id__guidance_funnel_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"playbook_id","in":"query","required":false,"schema":{"type":"string","default":"messaging-channel-bot","title":"Playbook Id"}},{"name":"scope","in":"query","required":false,"schema":{"type":"string","default":"project","title":"Scope"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Funnel Snapshot Api Projects  Project Id  Guidance Funnel Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/guidance/path-status":{"get":{"tags":["Guidance"],"summary":"Get Path Status","description":"Server verify snapshot for SPA runGoalVerify fallback (W3.6 / guidance.path_status).","operationId":"get_path_status_api_projects__project_id__guidance_path_status_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"playbook_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Playbook Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Path Status Api Projects  Project Id  Guidance Path Status Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"guidance.path_status","x-capability-id":"guidance.path_status"}},"/api/social/friends":{"get":{"tags":["AgentSocial"],"summary":"List Friends","operationId":"list_friends_api_social_friends_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/friends/user-ids":{"get":{"tags":["AgentSocial"],"summary":"List Friend User Ids","description":"Ordered compact id list (mirrors friends[]); kept in ecosystem.agent_social.friend_user_ids.","operationId":"list_friend_user_ids_api_social_friends_user_ids_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/friends/cards":{"get":{"tags":["AgentSocial"],"summary":"List Friend Cards","description":"Public card fields for each friend (display_name, username, avatar URL, friends_since).\nNo email. Cached briefly; pass no_cache=true to bypass.","operationId":"list_friend_cards_api_social_friends_cards_get","parameters":[{"name":"no_cache","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"No Cache"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/friends/cards/batch":{"post":{"tags":["AgentSocial"],"summary":"Friend Cards Batch","description":"Resolve cards only for user_ids that are friends of the current user.","operationId":"friend_cards_batch_api_social_friends_cards_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FriendIdsBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/users/public-cards":{"post":{"tags":["AgentSocial"],"summary":"Social Public User Cards","description":"Public display fields for open channel chat (any signed-in user).\nSame shape as friend cards (display_name, username, avatar); no friendship check.","operationId":"social_public_user_cards_api_social_users_public_cards_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FriendIdsBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/users/lookup":{"post":{"tags":["AgentSocial"],"summary":"Social User Lookup","description":"Find ecosystem users by numeric id, exact email, or @username (case-insensitive).\nDoes not expose email in the response.","operationId":"social_user_lookup_api_social_users_lookup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserLookupBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/followers":{"get":{"tags":["AgentSocial"],"summary":"Social Followers List","description":"People who follow you (accepted as subscriber from a friend request).","operationId":"social_followers_list_api_social_followers_get","parameters":[{"name":"expand","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expand"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/settings/privacy":{"get":{"tags":["AgentSocial"],"summary":"Social Privacy Get","operationId":"social_privacy_get_api_social_settings_privacy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["AgentSocial"],"summary":"Social Privacy Put","operationId":"social_privacy_put_api_social_settings_privacy_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrivacyUpdateBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/friends/requests/in":{"get":{"tags":["AgentSocial"],"summary":"Friend Requests In","operationId":"friend_requests_in_api_social_friends_requests_in_get","parameters":[{"name":"expand","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expand"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/friends/requests/out":{"get":{"tags":["AgentSocial"],"summary":"Friend Requests Out","operationId":"friend_requests_out_api_social_friends_requests_out_get","parameters":[{"name":"expand","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expand"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/friends/request/respond":{"post":{"tags":["AgentSocial"],"summary":"Friend Request Respond","operationId":"friend_request_respond_api_social_friends_request_respond_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FriendRespondBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/friends/request":{"post":{"tags":["AgentSocial"],"summary":"Friend Request","operationId":"friend_request_api_social_friends_request_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FriendRequestSendBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/friends/accept":{"post":{"tags":["AgentSocial"],"summary":"Friend Accept","operationId":"friend_accept_api_social_friends_accept_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FriendIdBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/friends/remove":{"post":{"tags":["AgentSocial"],"summary":"Friend Remove","operationId":"friend_remove_api_social_friends_remove_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FriendIdBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/friends/reject":{"post":{"tags":["AgentSocial"],"summary":"Friend Reject","operationId":"friend_reject_api_social_friends_reject_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FriendIdBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/friends/cancel":{"post":{"tags":["AgentSocial"],"summary":"Friend Cancel","operationId":"friend_cancel_api_social_friends_cancel_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FriendCancelBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/friends/block":{"post":{"tags":["AgentSocial"],"summary":"Friend Block","operationId":"friend_block_api_social_friends_block_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FriendIdBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/chat/index":{"get":{"tags":["AgentSocial"],"summary":"Chat Index Get","description":"Full persisted sidebar list for the user (no server-side truncation).\n\nOlder threads can still **drop out of the client UI** when a device sends a capped\n``PUT`` (subset semantics) or when ``GET /initial-snapshot`` is used — that endpoint\nintentionally returns only ``limit_channels`` rows sorted by activity (see its docstring).","operationId":"chat_index_get_api_social_chat_index_get","parameters":[{"name":"If-None-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-None-Match"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["AgentSocial"],"summary":"Chat Index Put","operationId":"chat_index_put_api_social_chat_index_put","parameters":[{"name":"if-match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatIndexBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/dm/chat-index":{"get":{"tags":["AgentSocial"],"summary":"Dm Chat Index Get","description":"Same payload as ``GET /chat/index`` (alias for DM clients).","operationId":"dm_chat_index_get_api_social_dm_chat_index_get","parameters":[{"name":"If-None-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-None-Match"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/initial-snapshot":{"get":{"tags":["AgentSocial"],"summary":"Messenger Initial Snapshot","description":"Bundled first-session payload for Local-First clients (v1: chat index + empty thread slots).\n\n``threads`` is always ``[]`` — do **not** treat it as the inbox. Inbox SoT is\n``GET /api/social/chat/index``. Thread bodies are filled client-side via\n``GET /dm/thread`` / ``GET /chat/history``.","operationId":"messenger_initial_snapshot_api_social_initial_snapshot_get","parameters":[{"name":"limit_channels","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":20,"title":"Limit Channels"}},{"name":"messages_per_channel","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Messages Per Channel"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/history/repair":{"post":{"tags":["AgentSocial"],"summary":"Social History Repair","description":"Return the caller's own outbox rows from opt-in cold sqlite (never peer bodies).","operationId":"social_history_repair_api_social_history_repair_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HistoryRepairBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/chat/index/remove":{"post":{"tags":["AgentSocial"],"summary":"Chat Index Remove","description":"Remove one row from the chat index (sidebar list). Prefer this over subset PUT.","operationId":"chat_index_remove_api_social_chat_index_remove_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatIndexRemoveBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/messenger/prefs":{"get":{"tags":["AgentSocial"],"summary":"Messenger Prefs Get","operationId":"messenger_prefs_get_api_social_messenger_prefs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["AgentSocial"],"summary":"Messenger Prefs Put","operationId":"messenger_prefs_put_api_social_messenger_prefs_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessengerPrefsPutBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/messenger/push-surface":{"post":{"tags":["AgentSocial"],"summary":"Messenger Push Surface Post","description":"Lightweight beacon: which chat is open and whether the UI is visible (for Web Push policy).","operationId":"messenger_push_surface_post_api_social_messenger_push_surface_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessengerPushSurfaceBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/chat/read-map":{"get":{"tags":["AgentSocial"],"summary":"Chat Read Map Get","description":"All read pointers for building unread hints on the client.","operationId":"chat_read_map_get_api_social_chat_read_map_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/dm/ensure":{"post":{"tags":["AgentSocial"],"summary":"Dm Ensure","description":"Ensure a private DM channel exists with the peer. Fails with 403 when\n``can_initiate_dm`` rejects (e.g. ``dm_policy_friends_only`` without friendship).","operationId":"dm_ensure_api_social_dm_ensure_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DmEnsureBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/chat/history":{"get":{"tags":["AgentSocial"],"summary":"Chat History","operationId":"chat_history_api_social_chat_history_get","parameters":[{"name":"home_project_id","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Home Project Id"}},{"name":"channel_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Channel Id"}},{"name":"since_seq","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Since Seq"}},{"name":"before_seq","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Exclusive upper bound on ``seq`` — combine with ``limit`` to fetch the window of messages immediately older than what the client already has (async older-history pagination).","title":"Before Seq"},"description":"Exclusive upper bound on ``seq`` — combine with ``limit`` to fetch the window of messages immediately older than what the client already has (async older-history pagination)."},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"title":"Limit"}},{"name":"since_hlc","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"When set, return rows with HLC greater than this wire-HLC (base36); takes precedence over since_seq.","title":"Since Hlc"},"description":"When set, return rows with HLC greater than this wire-HLC (base36); takes precedence over since_seq."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/dm/thread":{"get":{"tags":["AgentSocial"],"summary":"Dm Thread Get","description":"Merged DM thread from both participants' ``social_dm.outbox`` (peer gated by chat_index).","operationId":"dm_thread_get_api_social_dm_thread_get","parameters":[{"name":"home_project_id","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Home Project Id"}},{"name":"channel_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Channel Id"}},{"name":"since_seq","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Return only messages with seq greater than this (delta / catch-up).","title":"Since Seq"},"description":"Return only messages with seq greater than this (delta / catch-up)."},{"name":"before_seq","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Exclusive upper bound on ``seq`` — combine with ``limit`` to walk older pages of the thread (Phase 1 async pagination).","title":"Before Seq"},"description":"Exclusive upper bound on ``seq`` — combine with ``limit`` to walk older pages of the thread (Phase 1 async pagination)."},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"description":"Tail-window size (newest N). When set the response includes ``has_more`` and ``next_cursor`` for cursor pagination.","title":"Limit"},"description":"Tail-window size (newest N). When set the response includes ``has_more`` and ``next_cursor`` for cursor pagination."},{"name":"since_hlc","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"When set, return rows with HLC greater than this wire-HLC (base36); takes precedence over since_seq.","title":"Since Hlc"},"description":"When set, return rows with HLC greater than this wire-HLC (base36); takes precedence over since_seq."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/delta":{"get":{"tags":["AgentSocial"],"summary":"Social Delta","description":"Unified messenger delta (Phase A3).\n\nOne round-trip that answers the Local-First client's catch-up question:\n*what changed in this channel since my last sync?* The SyncEngine uses\nthis endpoint on reconnect / visibility-change, and may hedge a second\nrequest after p95 ms without fan-out to three separate history calls.\n\nGenetic tag: ``frontend.social.messenger.delta_protocol.gen1``.","operationId":"social_delta_api_social_delta_get","parameters":[{"name":"home_project_id","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Home Project Id"}},{"name":"channel_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Channel Id"}},{"name":"since_seq","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Return only appended rows with seq > this (delta catch-up).","title":"Since Seq"},"description":"Return only appended rows with seq > this (delta catch-up)."},{"name":"since_hlc","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Reserved for CRDT (Phase B): fetch ``y_updates`` staged after this wire-HLC (base36). Safe to omit; server falls back to seq-based delta.","title":"Since Hlc"},"description":"Reserved for CRDT (Phase B): fetch ``y_updates`` staged after this wire-HLC (base36). Safe to omit; server falls back to seq-based delta."},{"name":"since_reaction_hlc","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Return ``reactions`` events with HLC strictly after this wire-HLC (base36).","title":"Since Reaction Hlc"},"description":"Return ``reactions`` events with HLC strictly after this wire-HLC (base36)."},{"name":"since_comment_hlc","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Return ``comments`` events with HLC strictly after this wire-HLC (base36).","title":"Since Comment Hlc"},"description":"Return ``comments`` events with HLC strictly after this wire-HLC (base36)."},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":500,"minimum":1},{"type":"null"}],"description":"Tail-window size for ``messages_appended``. When set the response includes ``has_more`` and ``next_cursor``.","title":"Limit"},"description":"Tail-window size for ``messages_appended``. When set the response includes ``has_more`` and ``next_cursor``."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/chat/message/react":{"post":{"tags":["AgentSocial"],"summary":"Chat Message React","description":"Apply one immutable reaction cell on a message (server SoT).","operationId":"chat_message_react_api_social_chat_message_react_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatMessageReactionBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/chat/message/comment":{"post":{"tags":["AgentSocial"],"summary":"Chat Message Comment","description":"Upsert one comment cell on a message (server SoT).","operationId":"chat_message_comment_api_social_chat_message_comment_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatMessageCommentBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/crdt/update":{"post":{"tags":["AgentSocial"],"summary":"Social Crdt Update","description":"Accept a CRDT update, persist in 8DNA, fan-out to the relay room.\n\nGenetic tag: ``frontend.social.messenger.crdt.gen1``.","operationId":"social_crdt_update_api_social_crdt_update_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrdtUpdatePostBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/crdt/state":{"get":{"tags":["AgentSocial"],"summary":"Social Crdt State","description":"Cold-start / catch-up: return the current CRDT snapshot + updates since ``since_hlc``.","operationId":"social_crdt_state_api_social_crdt_state_get","parameters":[{"name":"home_project_id","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Home Project Id"}},{"name":"channel_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Channel Id"}},{"name":"since_hlc","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Since Hlc"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/dm/message":{"post":{"tags":["AgentSocial"],"summary":"Dm Message Post","operationId":"dm_message_post_api_social_dm_message_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DmMessagePostBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/chat/message":{"post":{"tags":["AgentSocial"],"summary":"Chat Post","operationId":"chat_post_api_social_chat_message_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatPostBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/chat/pin":{"post":{"tags":["AgentSocial"],"summary":"Chat Pin","operationId":"chat_pin_api_social_chat_pin_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatPinBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/chat/unpin":{"post":{"tags":["AgentSocial"],"summary":"Chat Unpin","operationId":"chat_unpin_api_social_chat_unpin_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatPinBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/chat/message/edit":{"post":{"tags":["AgentSocial"],"summary":"Chat Message Edit","operationId":"chat_message_edit_api_social_chat_message_edit_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatMessageEditBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/chat/message/delete":{"post":{"tags":["AgentSocial"],"summary":"Chat Message Delete","operationId":"chat_message_delete_api_social_chat_message_delete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatMessageIdBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/chat/read":{"post":{"tags":["AgentSocial"],"summary":"Chat Read Set","description":"Persist last-read pointer for messenger UI (per user, per channel).","operationId":"chat_read_set_api_social_chat_read_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatReadBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"},"get":{"tags":["AgentSocial"],"summary":"Chat Read Get","operationId":"chat_read_get_api_social_chat_read_get","parameters":[{"name":"home_project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Home Project Id"}},{"name":"channel_id","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":512,"title":"Channel Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/presence/online":{"get":{"tags":["AgentSocial"],"summary":"Presence Online Users","description":"User ids with at least one active stream-relay connection in ``home_project_id`` (same process).\n\n``total_connections`` sums per-user connection refcounts (tabs/sockets) — one dict scan, same cost as listing ids.","operationId":"presence_online_users_api_social_presence_online_get","parameters":[{"name":"home_project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Home Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/party-invite/token":{"post":{"tags":["AgentSocial"],"summary":"Party Invite Token","operationId":"party_invite_token_api_social_party_invite_token_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PartyInviteBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/party-invite/verify":{"post":{"tags":["AgentSocial"],"summary":"Party Invite Verify","operationId":"party_invite_verify_api_social_party_invite_verify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyInviteBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/channel-invites/link-token":{"post":{"tags":["AgentSocial"],"summary":"Channel Invite Link Token","operationId":"channel_invite_link_token_api_social_channel_invites_link_token_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelInviteLinkBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/channel-invites/direct":{"post":{"tags":["AgentSocial"],"summary":"Channel Invite Direct","operationId":"channel_invite_direct_api_social_channel_invites_direct_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelInviteDirectBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/channel-invites/inbox":{"get":{"tags":["AgentSocial"],"summary":"Channel Invite Inbox","operationId":"channel_invite_inbox_api_social_channel_invites_inbox_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/channel-invites/accept":{"post":{"tags":["AgentSocial"],"summary":"Channel Invite Accept","operationId":"channel_invite_accept_api_social_channel_invites_accept_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelInviteIdBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/channel-invites/decline":{"post":{"tags":["AgentSocial"],"summary":"Channel Invite Decline","operationId":"channel_invite_decline_api_social_channel_invites_decline_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelInviteIdBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/channel-invites/redeem":{"post":{"tags":["AgentSocial"],"summary":"Channel Invite Redeem","operationId":"channel_invite_redeem_api_social_channel_invites_redeem_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelInviteRedeemBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/federation/add":{"post":{"tags":["AgentSocial"],"summary":"Federation Add","operationId":"federation_add_api_social_federation_add_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FederationBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/federation/{consumer_project_id}":{"get":{"tags":["AgentSocial"],"summary":"Federation List","operationId":"federation_list_api_social_federation__consumer_project_id__get","parameters":[{"name":"consumer_project_id","in":"path","required":true,"schema":{"type":"integer","title":"Consumer Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/channels/register":{"post":{"tags":["AgentSocial"],"summary":"Channel Register","operationId":"channel_register_api_social_channels_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelRegisterBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/channels/update":{"post":{"tags":["AgentSocial"],"summary":"Channel Update","operationId":"channel_update_api_social_channels_update_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelUpdateBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/channels/delete":{"post":{"tags":["AgentSocial"],"summary":"Channel Delete","operationId":"channel_delete_api_social_channels_delete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelDeleteBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/public/quota":{"get":{"tags":["AgentSocial"],"summary":"Social Public Quota Get","operationId":"social_public_quota_get_api_social_public_quota_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/public/me":{"get":{"tags":["AgentSocial"],"summary":"Social Public Me","description":"This user's public listings for discovery on ``home_project_id``.\n\nSource of truth is the **project** row (same as ``/api/social/public/index``), not the\nuser-DNA mirror — avoids stale/wrong rows when multiple projects or PAS edits exist.\nResponse shape matches the legacy nested map (one uid key per kind).","operationId":"social_public_me_api_social_public_me_get","parameters":[{"name":"home_project_id","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Home Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/public/publish":{"post":{"tags":["AgentSocial"],"summary":"Social Public Publish","operationId":"social_public_publish_api_social_public_publish_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialPublicPublishBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/public/unpublish":{"post":{"tags":["AgentSocial"],"summary":"Social Public Unpublish","operationId":"social_public_unpublish_api_social_public_unpublish_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialPublicPublishBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/public/index":{"get":{"tags":["AgentSocial"],"summary":"Social Public Index","operationId":"social_public_index_api_social_public_index_get","parameters":[{"name":"home_project_id","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Home Project Id"}},{"name":"scope","in":"query","required":false,"schema":{"type":"string","default":"all","title":"Scope"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"expand","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expand"}},{"name":"no_cache","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"No Cache"}},{"name":"extend_ttl_seconds","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Extend Ttl Seconds"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/public/reconcile":{"post":{"tags":["AgentSocial"],"summary":"Social Public Reconcile","operationId":"social_public_reconcile_api_social_public_reconcile_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialPublicReconcileBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/entities/expand":{"post":{"tags":["AgentSocial"],"summary":"Social Entities Expand","description":"Model A: resolve channel/surrogate ids to metadata for UI (batch).","operationId":"social_entities_expand_api_social_entities_expand_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialExpandBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/channel":{"post":{"tags":["AgentSocial"],"summary":"Public Channel Create","description":"Create a pure distributed public channel (ring in project or owner user DNA).","operationId":"public_channel_create_api_social_channel_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicChannelCreateBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/channel/{channel_id}":{"get":{"tags":["AgentSocial"],"summary":"Public Channel Get","operationId":"public_channel_get_api_social_channel__channel_id__get","parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","title":"Channel Id"}},{"name":"home_project_id","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Home Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/channel/{channel_id}/history":{"get":{"tags":["AgentSocial"],"summary":"Public Channel History","operationId":"public_channel_history_api_social_channel__channel_id__history_get","parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","title":"Channel Id"}},{"name":"home_project_id","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Home Project Id"}},{"name":"include_bodies","in":"query","required":false,"schema":{"type":"integer","maximum":1,"minimum":0,"description":"When 1, attach resolved ``body`` / ``edited_at`` to each ring card and return ``bodies_included: true``. Saves the client one RTT on cold open (no separate ``POST /resolve-messages`` needed). Mobile first-load latency halves.","default":0,"title":"Include Bodies"},"description":"When 1, attach resolved ``body`` / ``edited_at`` to each ring card and return ``bodies_included: true``. Saves the client one RTT on cold open (no separate ``POST /resolve-messages`` needed). Mobile first-load latency halves."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/channel/{channel_id}/message":{"post":{"tags":["AgentSocial"],"summary":"Public Channel Message Post","operationId":"public_channel_message_post_api_social_channel__channel_id__message_post","parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","title":"Channel Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicChannelMessagePostBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/channel/{channel_id}/message/{msg_id}":{"patch":{"tags":["AgentSocial"],"summary":"Public Channel Message Patch","operationId":"public_channel_message_patch_api_social_channel__channel_id__message__msg_id__patch","parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","title":"Channel Id"}},{"name":"msg_id","in":"path","required":true,"schema":{"type":"string","title":"Msg Id"}},{"name":"home_project_id","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Home Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicChannelMessagePatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["AgentSocial"],"summary":"Public Channel Message Delete","operationId":"public_channel_message_delete_api_social_channel__channel_id__message__msg_id__delete","parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","title":"Channel Id"}},{"name":"msg_id","in":"path","required":true,"schema":{"type":"string","title":"Msg Id"}},{"name":"home_project_id","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Home Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/channel/{channel_id}/resolve-messages":{"post":{"tags":["AgentSocial"],"summary":"Public Channel Resolve Messages","operationId":"public_channel_resolve_messages_api_social_channel__channel_id__resolve_messages_post","parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","title":"Channel Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicChannelResolveBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/channel/{channel_id}/subscribe":{"post":{"tags":["AgentSocial"],"summary":"Public Channel Subscribe","operationId":"public_channel_subscribe_api_social_channel__channel_id__subscribe_post","parameters":[{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","title":"Channel Id"}},{"name":"home_project_id","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Home Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/channels/{home_project_id}":{"get":{"tags":["AgentSocial"],"summary":"Channel List","operationId":"channel_list_api_social_channels__home_project_id__get","parameters":[{"name":"home_project_id","in":"path","required":true,"schema":{"type":"integer","title":"Home Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/channels/{home_project_id}/{channel_id}":{"get":{"tags":["AgentSocial"],"summary":"Channel Get One","operationId":"channel_get_one_api_social_channels__home_project_id___channel_id__get","parameters":[{"name":"home_project_id","in":"path","required":true,"schema":{"type":"integer","title":"Home Project Id"}},{"name":"channel_id","in":"path","required":true,"schema":{"type":"string","title":"Channel Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/social/merge-feed":{"post":{"tags":["AgentSocial"],"summary":"Merge Feed","operationId":"merge_feed_api_social_merge_feed_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MergeFeedBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/social/admin/chat-sweep":{"post":{"tags":["AgentSocial"],"summary":"Admin Chat Sweep","description":"Ecosystem admin: run one chat history prune batch.","operationId":"admin_chat_sweep_api_social_admin_chat_sweep_post","parameters":[{"name":"batch","in":"query","required":false,"schema":{"type":"integer","default":500,"title":"Batch"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/support/messages":{"post":{"tags":["Support"],"summary":"Post User Message","operationId":"post_user_message_api_support_messages_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupportMessageBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/support/my-thread":{"get":{"tags":["Support"],"summary":"Get My Thread","operationId":"get_my_thread_api_support_my_thread_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"since_seq","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Since Seq"}},{"name":"since_hlc","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Since Hlc"}},{"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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/support/inbox":{"get":{"tags":["Support"],"summary":"Get Inbox","operationId":"get_inbox_api_support_inbox_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"assignee_user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Assignee User Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"social.support.inbox","x-capability-id":"social.support.inbox"}},"/api/support/thread/{channel_user_id}":{"get":{"tags":["Support"],"summary":"Get Staff Thread","operationId":"get_staff_thread_api_support_thread__channel_user_id__get","parameters":[{"name":"channel_user_id","in":"path","required":true,"schema":{"type":"integer","title":"Channel User Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"since_seq","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Since Seq"}},{"name":"since_hlc","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Since Hlc"}},{"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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/support/thread/{channel_user_id}/messages":{"post":{"tags":["Support"],"summary":"Post Staff Message","operationId":"post_staff_message_api_support_thread__channel_user_id__messages_post","parameters":[{"name":"channel_user_id","in":"path","required":true,"schema":{"type":"integer","title":"Channel User Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupportStaffMessageBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/support/thread/{channel_user_id}/tickets/{ticket_id}/transition":{"post":{"tags":["Support"],"summary":"Post Ticket Transition","operationId":"post_ticket_transition_api_support_thread__channel_user_id__tickets__ticket_id__transition_post","parameters":[{"name":"channel_user_id","in":"path","required":true,"schema":{"type":"integer","title":"Channel User Id"}},{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupportTransitionBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/support/thread/{channel_user_id}/tickets/{ticket_id}/assign":{"post":{"tags":["Support"],"summary":"Post Ticket Assign","operationId":"post_ticket_assign_api_support_thread__channel_user_id__tickets__ticket_id__assign_post","parameters":[{"name":"channel_user_id","in":"path","required":true,"schema":{"type":"integer","title":"Channel User Id"}},{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupportAssignBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/support/my-thread/reaction":{"post":{"tags":["Support"],"summary":"Post My Thread Reaction","operationId":"post_my_thread_reaction_api_support_my_thread_reaction_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupportReactionBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/support/my-thread/tickets/{ticket_id}/request-human":{"post":{"tags":["Support"],"summary":"Post Request Human","operationId":"post_request_human_api_support_my_thread_tickets__ticket_id__request_human_post","parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/support/config":{"get":{"tags":["Support"],"summary":"Get Cfg","operationId":"get_cfg_api_support_config_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Support"],"summary":"Put Cfg","operationId":"put_cfg_api_support_config_put","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupportConfigPatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/support/ai-binding/health":{"get":{"tags":["Support"],"summary":"Get Support Ai Binding Health Endpoint","operationId":"get_support_ai_binding_health_endpoint_api_support_ai_binding_health_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/support/eligibility":{"get":{"tags":["Support"],"summary":"Support Eligibility","description":"Batch: which accessible projects expose end-user support or a public messenger lounge.\n\n``project_ids`` is a comma-separated list (max ~80 ids). Omitted or unknown ids are skipped.","operationId":"support_eligibility_api_support_eligibility_get","parameters":[{"name":"project_ids","in":"query","required":false,"schema":{"type":"string","maxLength":4000,"default":"","title":"Project Ids"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Support"],"summary":"Support Eligibility Post","description":"Batch eligibility via JSON body (avoids long query strings for 26+ project ids).","operationId":"support_eligibility_post_api_support_eligibility_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupportEligibilityBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/support/projects/search":{"get":{"tags":["Support"],"summary":"Support Projects Search","description":"Ranked projects the user may contact via support (messenger contacts panel).\n\nGen1: DNA title scan + support config flags — O(n) over accessible projects; cache client-side.","operationId":"support_projects_search_api_support_projects_search_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":256,"default":"","title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":80,"minimum":1,"default":24,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/support/me/project-roles":{"get":{"tags":["Support"],"summary":"Get Me Project Roles","description":"Projects where the current user is owner, admin, or support team (Dev Shell resolver).\n\nUses bounded 8DNA scans with a 30s server cache per user.","operationId":"get_me_project_roles_api_support_me_project_roles_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/support/cron/auto-close-idle":{"post":{"tags":["Support"],"summary":"Post Auto Close Idle Tickets","description":"Staff/cron: close **resolved** tickets that exceeded ``auto_close_after_h`` (see lifecycle organelle).\n\nWire as ``scheduler.execute_task`` / Logic Engine periodic rule for each active project.","operationId":"post_auto_close_idle_tickets_api_support_cron_auto_close_idle_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/support/cron/ai-after-silence":{"post":{"tags":["Support"],"summary":"Post Ai After Silence Scan","description":"Staff/cron: ``ai_after_silence`` agent runs after ``silence_window_s`` without staff reply.","operationId":"post_ai_after_silence_scan_api_support_cron_ai_after_silence_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/stream-relay/rooms":{"post":{"tags":["Stream/Relay"],"summary":"Create Relay Room","description":"Create new relay room\n\nBody:\n{\n    \"name\": \"My Game Room\",\n    \"type\": \"game\",  // game|chat|dashboard|stream|custom\n    \"capacity\": 50,\n    \"settings\": {...},\n    \"metadata\": {...}\n}","operationId":"create_relay_room_api_stream_relay_rooms_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Room Config"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"},"get":{"tags":["Stream/Relay"],"summary":"List Relay Rooms","description":"List relay rooms for current project","operationId":"list_relay_rooms_api_stream_relay_rooms_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/stream-relay/rooms/{room_id}":{"get":{"tags":["Stream/Relay"],"summary":"Get Relay Room","description":"Get room information","operationId":"get_relay_room_api_stream_relay_rooms__room_id__get","parameters":[{"name":"room_id","in":"path","required":true,"schema":{"type":"string","title":"Room Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/pas/social_public/me":{"get":{"tags":["PrincipalAccess"],"summary":"Pas Social Public Me Get","operationId":"pas_social_public_me_get_api_pas_social_public_me_get","parameters":[{"name":"home_project_id","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Home Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["PrincipalAccess"],"summary":"Pas Social Public Me Put","operationId":"pas_social_public_me_put_api_pas_social_public_me_put","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasSlicePutBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/matchmaking/queues":{"get":{"tags":["Matchmaking"],"summary":"List Matchmaking Queues","description":"List matchmaking queues for current project","operationId":"list_matchmaking_queues_api_matchmaking_queues_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Matchmaking"],"summary":"Create Matchmaking Queue","description":"Create new matchmaking queue\n\nBody example:\n{\n    \"name\": \"PvP Matchmaking\",\n    \"type\": \"competitive\",\n    \"criteria\": {\n        \"required\": [\"user.data.profile.level\"],\n        \"optional\": [\"user.data.stats.rating\"]\n    },\n    \"tolerance\": {\n        \"level_range\": 5,\n        \"rating_range\": 100,\n        \"max_wait_seconds\": 30\n    },\n    \"room_config\": {\n        \"auto_create\": true,\n        \"capacity\": 2,\n        \"type\": \"pvp_match\",\n        \"existing_room_id\": \"room_abc\"\n    },\n    \"tiers\": {\n        \"bronze\": {\"level_min\": 1, \"level_max\": 10},\n        \"silver\": {\"level_min\": 11, \"level_max\": 25}\n    }\n}\n\nIf room_config.auto_create is false, set room_config.existing_room_id to a stream_relay room\nid that already exists in the same project as the queue.","operationId":"create_matchmaking_queue_api_matchmaking_queues_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueueConfigRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/matchmaking/queues/{queue_id}":{"get":{"tags":["Matchmaking"],"summary":"Get Queue Status","description":"Get queue status and statistics","operationId":"get_queue_status_api_matchmaking_queues__queue_id__get","parameters":[{"name":"queue_id","in":"path","required":true,"schema":{"type":"string","title":"Queue Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/matchmaking/join/{queue_id}":{"post":{"tags":["Matchmaking"],"summary":"Join Matchmaking Queue","description":"Join matchmaking queue\n\nBody (optional):\n{\n    \"criteria\": {\n        \"level\": 15,\n        \"rating\": 1250,\n        \"region\": \"eu-west\"\n    }\n}\n\nIf criteria not provided, will be auto-extracted from user.data","operationId":"join_matchmaking_queue_api_matchmaking_join__queue_id__post","parameters":[{"name":"queue_id","in":"path","required":true,"schema":{"type":"string","title":"Queue Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JoinQueueRequest","default":{}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/matchmaking/leave/{queue_id}":{"delete":{"tags":["Matchmaking"],"summary":"Leave Matchmaking Queue","description":"Leave matchmaking queue","operationId":"leave_matchmaking_queue_api_matchmaking_leave__queue_id__delete","parameters":[{"name":"queue_id","in":"path","required":true,"schema":{"type":"string","title":"Queue Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/matchmaking/matches/{match_id}":{"get":{"tags":["Matchmaking"],"summary":"Get Match Info","description":"Get match information","operationId":"get_match_info_api_matchmaking_matches__match_id__get","parameters":[{"name":"match_id","in":"path","required":true,"schema":{"type":"string","title":"Match Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/push/vapid-public-key":{"get":{"tags":["Notifications"],"summary":"Get Vapid Public Key","description":"Return VAPID public key when configured; otherwise 200 with ``publicKey: null`` (not 503).\n\nWhen unconfigured, ``diagnostics`` lists where the server looked (booleans only — no secrets).","operationId":"get_vapid_public_key_api_push_vapid_public_key_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"notifications.subscribe_push","x-capability-id":"notifications.subscribe_push"}},"/api/push/status":{"get":{"tags":["Notifications"],"summary":"Get Push Delivery Status","description":"Server-side Web Push readiness (no secrets).\nSubscribe may work with public key only; delivery requires private key + pywebpush.","operationId":"get_push_delivery_status_api_push_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Push Delivery Status Api Push Status Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/push/health":{"get":{"tags":["Notifications"],"summary":"Push Health","description":"Per-user Web Push health + process-local worker counters (since core boot).\nUse with ``GET /api/push/status`` for global readiness.","operationId":"push_health_api_push_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Push Health Api Push Health Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/push/subscribe":{"post":{"tags":["Notifications"],"summary":"Push Subscribe","operationId":"push_subscribe_api_push_subscribe_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PushSubscribeBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/push/unsubscribe":{"post":{"tags":["Notifications"],"summary":"Push Unsubscribe","operationId":"push_unsubscribe_api_push_unsubscribe_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PushUnsubscribeBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/push/cancel":{"post":{"tags":["Notifications"],"summary":"Push Cancel Pending","description":"Drop queued web-push outbox items for this user matching ``correlation_key`` (exact).","operationId":"push_cancel_pending_api_push_cancel_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PushCancelBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/push/ack":{"post":{"tags":["Notifications"],"summary":"Push Ack","description":"HMAC-signed notification actions from the service worker.\n\nAuth is **only** ``signed_token`` (HMAC, short TTL in token). Service workers often\ndo not send the same session cookies as a top-level document ``fetch``, so requiring\n``get_current_user_universal`` caused 401 on legitimate mark_read / reply / mute clicks.","operationId":"push_ack_api_push_ack_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PushAckBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/push/notify":{"post":{"tags":["Notifications"],"summary":"Push Notify","description":"Enqueue a web push for a user (self or admin).","operationId":"push_notify_api_push_notify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PushNotifyBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/events/stats":{"get":{"tags":["Analytics"],"summary":"Event system statistics","description":"Get event system statistics","operationId":"get_event_stats_api_events_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/batch":{"post":{"tags":["Batch"],"summary":"Batch Request","description":"Выполнить батч запросов\n\nПринимает массив запросов и выполняет их параллельно или последовательно\nВозвращает результаты с индексами для сопоставления\n\nArgs:\n    request: Батч запросов\n    request_obj: FastAPI Request для доступа к app\n    current_user: Текущий пользователь\n\nReturns:\n    BatchResponse с результатами всех запросов","operationId":"batch_request_api_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/buffs":{"post":{"tags":["Buffs"],"summary":"Create Buff","description":"Создать новый бафф. Доступно только для своей сущности (user) или при правах admin в проекте (project).","operationId":"create_buff_api_buffs_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBuffRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/buffs/{buff_id}":{"put":{"tags":["Buffs"],"summary":"Update Buff","description":"Обновить существующий бафф (только для шаблонов в состоянии PENDING). Права как у create_buff.","operationId":"update_buff_api_buffs__buff_id__put","parameters":[{"name":"buff_id","in":"path","required":true,"schema":{"type":"string","description":"Buff ID","title":"Buff Id"},"description":"Buff ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBuffRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"get":{"tags":["Buffs"],"summary":"Get Buff","description":"Получить информацию о конкретном баффе","operationId":"get_buff_api_buffs__buff_id__get","parameters":[{"name":"buff_id","in":"path","required":true,"schema":{"type":"string","description":"Buff ID","title":"Buff Id"},"description":"Buff ID"},{"name":"entity_id","in":"query","required":true,"schema":{"type":"integer","description":"Entity ID","title":"Entity Id"},"description":"Entity ID"},{"name":"entity_kind","in":"query","required":true,"schema":{"type":"string","description":"Entity kind (user or project)","title":"Entity Kind"},"description":"Entity kind (user or project)"},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Project ID (for user buffs)","title":"Project Id"},"description":"Project ID (for user buffs)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/buffs/{buff_id}/apply":{"post":{"tags":["Buffs"],"summary":"Apply Buff","description":"Применить бафф к сущности. Доступно только для своей сущности или при правах admin в проекте.","operationId":"apply_buff_api_buffs__buff_id__apply_post","parameters":[{"name":"buff_id","in":"path","required":true,"schema":{"type":"string","description":"Buff ID","title":"Buff Id"},"description":"Buff ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyBuffRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/buffs/{buff_id}/revert":{"post":{"tags":["Buffs"],"summary":"Revert Buff","description":"Откатить бафф с валидацией успешности отката","operationId":"revert_buff_api_buffs__buff_id__revert_post","parameters":[{"name":"buff_id","in":"path","required":true,"schema":{"type":"string","description":"Buff ID","title":"Buff Id"},"description":"Buff ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyBuffRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/buffs/{buff_id}/extend":{"post":{"tags":["Buffs"],"summary":"Extend Buff","description":"Продлить бафф","operationId":"extend_buff_api_buffs__buff_id__extend_post","parameters":[{"name":"buff_id","in":"path","required":true,"schema":{"type":"string","description":"Buff ID","title":"Buff Id"},"description":"Buff ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExtendBuffRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/buffs/{buff_id}/cancel":{"post":{"tags":["Buffs"],"summary":"Cancel Buff","description":"Отменить бафф (работает для любого состояния, для ACTIVE требуется admin/owner)","operationId":"cancel_buff_api_buffs__buff_id__cancel_post","parameters":[{"name":"buff_id","in":"path","required":true,"schema":{"type":"string","description":"Buff ID","title":"Buff Id"},"description":"Buff ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyBuffRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/buffs/{buff_id}/retry":{"post":{"tags":["Buffs"],"summary":"Retry Failed Buff","description":"Повторить попытку применения/отката баффа после ошибки","operationId":"retry_failed_buff_api_buffs__buff_id__retry_post","parameters":[{"name":"buff_id","in":"path","required":true,"schema":{"type":"string","description":"Buff ID","title":"Buff Id"},"description":"Buff ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyBuffRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/buffs/entity-data":{"get":{"tags":["Buffs"],"summary":"Get Entity Data","description":"Получить структуру данных entity в плоском формате","operationId":"get_entity_data_api_buffs_entity_data_get","parameters":[{"name":"entity_id","in":"query","required":true,"schema":{"type":"integer","description":"Entity ID","title":"Entity Id"},"description":"Entity ID"},{"name":"entity_kind","in":"query","required":true,"schema":{"type":"string","description":"Entity kind (user or project)","title":"Entity Kind"},"description":"Entity kind (user or project)"},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/buffs/user/{user_id}/active":{"get":{"tags":["Buffs"],"summary":"Get User Active Buffs","description":"Получить список активных баффов пользователя. Доступно только самому пользователю или ecosystem admin.","operationId":"get_user_active_buffs_api_buffs_user__user_id__active_get","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","description":"User ID","title":"User Id"},"description":"User ID"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category","title":"Category"},"description":"Filter by category"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/buffs/user/{user_id}/status":{"get":{"tags":["Buffs"],"summary":"Get User Buff Status","description":"Получить упрощенный статус баффов пользователя. Доступно только самому пользователю или ecosystem admin.","operationId":"get_user_buff_status_api_buffs_user__user_id__status_get","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","description":"User ID","title":"User Id"},"description":"User ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/buffs/project/{project_id}/active":{"get":{"tags":["Buffs"],"summary":"Get Project Active Buffs","description":"Получить список активных баффов проекта","operationId":"get_project_active_buffs_api_buffs_project__project_id__active_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"include_ecosystem","in":"query","required":false,"schema":{"type":"boolean","description":"Include ecosystem buffs","default":true,"title":"Include Ecosystem"},"description":"Include ecosystem buffs"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category","title":"Category"},"description":"Filter by category"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/buffs/project/{project_id}/all":{"get":{"tags":["Buffs"],"summary":"Get Project All Buffs","description":"Получить все баффы проекта с пагинацией. Ограничение: до 100 пользователей при include_user_buffs.","operationId":"get_project_all_buffs_api_buffs_project__project_id__all_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"include_ecosystem","in":"query","required":false,"schema":{"type":"boolean","description":"Include ecosystem buffs","default":true,"title":"Include Ecosystem"},"description":"Include ecosystem buffs"},{"name":"include_user_buffs","in":"query","required":false,"schema":{"type":"boolean","description":"Include user buffs from project (expensive; admin only)","default":false,"title":"Include User Buffs"},"description":"Include user buffs from project (expensive; admin only)"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category","title":"Category"},"description":"Filter by category"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Items per page","default":100,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/buffs/project/{project_id}/user/{user_id}/active":{"get":{"tags":["Buffs"],"summary":"Get User In Project Active Buffs","description":"Получить активные баффы пользователя в проекте. Доступно самому пользователю или участнику проекта.","operationId":"get_user_in_project_active_buffs_api_buffs_project__project_id__user__user_id__active_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","description":"User ID","title":"User Id"},"description":"User ID"},{"name":"include_project_buffs","in":"query","required":false,"schema":{"type":"boolean","description":"Include project buffs","default":true,"title":"Include Project Buffs"},"description":"Include project buffs"},{"name":"include_ecosystem","in":"query","required":false,"schema":{"type":"boolean","description":"Include ecosystem buffs","default":false,"title":"Include Ecosystem"},"description":"Include ecosystem buffs"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category","title":"Category"},"description":"Filter by category"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/buffs/{entity_kind}/{entity_id}/effective-limits":{"get":{"tags":["Buffs"],"summary":"Get Entity Effective Limits","description":"Merged limits for a user or project entity (SDK: /buffs/{kind}/{id}/effective-limits).","operationId":"get_entity_effective_limits_api_buffs__entity_kind___entity_id__effective_limits_get","parameters":[{"name":"entity_kind","in":"path","required":true,"schema":{"type":"string","description":"user or project","title":"Entity Kind"},"description":"user or project"},{"name":"entity_id","in":"path","required":true,"schema":{"type":"integer","description":"Entity ID","title":"Entity Id"},"description":"Entity ID"},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Project scope when entity_kind=user in a project","title":"Project Id"},"description":"Project scope when entity_kind=user in a project"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/buffs/project/{project_id}/effective-limits":{"get":{"tags":["Buffs"],"summary":"Get Project Effective Limits","description":"Project-plane merged limits (business tier buffs on the project entity).","operationId":"get_project_effective_limits_api_buffs_project__project_id__effective_limits_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/buffs/user/{user_id}/effective-limits":{"get":{"tags":["Buffs"],"summary":"Get User Effective Limits","description":"Вычислить эффективные лимиты пользователя. Доступно самому пользователю или ecosystem admin.","operationId":"get_user_effective_limits_api_buffs_user__user_id__effective_limits_get","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","description":"User ID","title":"User Id"},"description":"User ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/buffs/project/{project_id}/user/{user_id}/effective-limits":{"get":{"tags":["Buffs"],"summary":"Get User In Project Effective Limits","description":"Вычислить эффективные лимиты пользователя в проекте. Доступно участнику проекта или ecosystem admin.","operationId":"get_user_in_project_effective_limits_api_buffs_project__project_id__user__user_id__effective_limits_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","description":"User ID","title":"User Id"},"description":"User ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/health":{"get":{"tags":["Payments"],"summary":"Payments Health","description":"Проверка здоровья payments service","operationId":"payments_health_api_payments_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/debug":{"get":{"tags":["Payments"],"summary":"Payments Debug","description":"Safe debug endpoint — returns aggregate counts only, no PII or raw data.\nFor deeper inspection use the sandbox events endpoint.","operationId":"payments_debug_api_payments_debug_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/":{"get":{"tags":["Payments"],"summary":"Get Payments Overview","description":"Получить обзор платежей пользователя","operationId":"get_payments_overview_api_payments__get","parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"User ID (optional - defaults to current user)","title":"User Id"},"description":"User ID (optional - defaults to current user)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Payments"],"summary":"Create Payment","description":"Единый путь создания платежа: scope=user (по умолчанию) или scope=project (только admin/owner).","operationId":"create_payment_api_payments__post","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePaymentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments":{"post":{"tags":["Payments"],"summary":"Create Payment No Slash","description":"Alias for POST /api/payments (no trailing slash) - client compatibility. Validates dict to CreatePaymentRequest then delegates.","operationId":"create_payment_no_slash_api_payments_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payment Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/payments/project":{"get":{"tags":["Payments"],"summary":"Get Project Payments Overview","description":"Получить обзор платежей проекта (только для админов)","operationId":"get_project_payments_overview_api_payments_project_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Payments"],"summary":"Create Project Payment","description":"Создать платеж проекта (админы). Алиас: можно также POST / со scope=project.","operationId":"create_project_payment_api_payments_project_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Payment Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/payments/webhooks/stripe":{"post":{"tags":["Payments"],"summary":"Stripe Webhook","description":"Webhook Stripe (без auth). Проверка подписи, разбор события, зачисление на кошелёк и запись в data_projects_transaction.","operationId":"stripe_webhook_api_payments_webhooks_stripe_post","parameters":[{"name":"Stripe-Signature","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stripe-Signature"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/webhooks/tochka":{"post":{"tags":["Payments"],"summary":"Tochka Webhook","description":"Callback Точкабанк (без auth). Проверка Token, обновление статуса, зачисление на кошелёк, запись в data_projects_transaction.","operationId":"tochka_webhook_api_payments_webhooks_tochka_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/payments/config":{"get":{"tags":["Payments"],"summary":"Get Payments Config","description":"Конфиг платежей для виджета: методы, провайдеры по стране из матрицы экосистемы.","operationId":"get_payments_config_api_payments_config_get","parameters":[{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO country code for provider matrix","title":"Country"},"description":"ISO country code for provider matrix"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/fees":{"get":{"tags":["Payments"],"summary":"Get Payment Fees Public","description":"Read-only fee rates for any authenticated user (UI preview: withdrawal commission, BYOK %).\nSame values as ecosystem config; does not require ecosystem admin.","operationId":"get_payment_fees_public_api_payments_fees_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/transactions":{"get":{"tags":["Payments"],"summary":"Get Payment Transactions","description":"Получить список транзакций пользователя. Task 2.2: Primary source — data_projects_transaction.","operationId":"get_payment_transactions_api_payments_transactions_get","parameters":[{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"User ID (optional - defaults to current user)","title":"User Id"},"description":"User ID (optional - defaults to current user)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Limit number of transactions","default":50,"title":"Limit"},"description":"Limit number of transactions"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","description":"Offset for pagination","default":0,"title":"Offset"},"description":"Offset for pagination"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/withdrawal-request":{"post":{"tags":["Payments"],"summary":"Create Withdrawal Request","description":"Submit a withdrawal request for a project (project owner/admin only).","operationId":"create_withdrawal_request_api_payments_withdrawal_request_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WithdrawalRequestBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/payments/withdrawal-requests":{"get":{"tags":["Payments"],"summary":"Get Own Withdrawal Requests","description":"List withdrawal requests for the current user's project.","operationId":"get_own_withdrawal_requests_api_payments_withdrawal_requests_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status: pending|approved|paid|rejected","title":"Status"},"description":"Filter by status: pending|approved|paid|rejected"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/withdrawal-settings":{"put":{"tags":["Payments"],"summary":"Put Withdrawal Settings","description":"Save payout (bank) details to project.protected.withdrawal_settings.","operationId":"put_withdrawal_settings_api_payments_withdrawal_settings_put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WithdrawalSettingsBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/payments/guest-checkout/{payment_id}":{"get":{"tags":["Payments"],"summary":"Get Guest Checkout Session","description":"Resume EDITFLOW client checkout without auth.\n\nValidates ``metadata.share_key`` on the seller's pending sale payment and returns\nStripe session fields for the guest payer page.","operationId":"get_guest_checkout_session_api_payments_guest_checkout__payment_id__get","parameters":[{"name":"payment_id","in":"path","required":true,"schema":{"type":"string","description":"Payment ID from share link","title":"Payment Id"},"description":"Payment ID from share link"},{"name":"share_key","in":"query","required":true,"schema":{"type":"string","minLength":16,"description":"Share key from seller link","title":"Share Key"},"description":"Share key from seller link"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/{payment_id}":{"get":{"tags":["Payments"],"summary":"Get Payment Details","description":"Получить детали платежа. Статус и данные транзакции — из data_projects_transaction (первичный источник правды).","operationId":"get_payment_details_api_payments__payment_id__get","parameters":[{"name":"payment_id","in":"path","required":true,"schema":{"type":"string","description":"Payment ID","title":"Payment Id"},"description":"Payment ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/{payment_id}/refund":{"post":{"tags":["Payments"],"summary":"Refund Payment","description":"Возврат по платежу. Сначала кошелёк продавца, затем Stripe/Tochka, затем payment_refunded.","operationId":"refund_payment_api_payments__payment_id__refund_post","parameters":[{"name":"payment_id","in":"path","required":true,"schema":{"type":"string","description":"Payment ID","title":"Payment Id"},"description":"Payment ID"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/admin/transactions":{"get":{"tags":["Payments"],"summary":"Get Admin Transactions","description":"Лог транзакций (data_projects_transaction) — только для админа/владельца экосистемы (project_id=ECOSYSTEM_PROJECT_ID).","operationId":"get_admin_transactions_api_payments_admin_transactions_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by project (ecosystem admin only)","title":"Project Id"},"description":"Filter by project (ecosystem admin only)"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by user","title":"User Id"},"description":"Filter by user"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by data.type (e.g. payment_created, payment_completed)","title":"Type"},"description":"Filter by data.type (e.g. payment_created, payment_completed)"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/admin/payments/overview":{"get":{"tags":["Payments"],"summary":"Get Admin Payments Overview","description":"Раздел «Платежи» для админки экосистемы: провайдеры, матрица по странам, проекты с BYOK отключённым.","operationId":"get_admin_payments_overview_api_payments_admin_payments_overview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/admin/payments/keys-status":{"get":{"tags":["Payments"],"summary":"Get Admin Payment Keys Status","description":"Returns which payment providers are configured (masked, no secrets).","operationId":"get_admin_payment_keys_status_api_payments_admin_payments_keys_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/admin/payments/keys":{"put":{"tags":["Payments"],"summary":"Put Admin Payment Keys","description":"Update ecosystem payment provider keys. Body: { stripe?: { secret_key?, webhook_secret? }, tochka?: { terminal_id?, password? } }.\nOnly non-empty values are updated; existing keys are preserved when omitted.","operationId":"put_admin_payment_keys_api_payments_admin_payments_keys_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/payments/project/{project_id}/keys-status":{"get":{"tags":["Payments"],"summary":"Get Project Payment Keys Status","description":"Returns which payment providers are configured for a project (no secrets exposed).","operationId":"get_project_payment_keys_status_api_payments_project__project_id__keys_status_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/project/{project_id}/keys-status/summary":{"get":{"tags":["Payments"],"summary":"Get Project Payment Keys Status Summary","description":"Member-safe: whether payment providers are configured (no admin gate).","operationId":"get_project_payment_keys_status_summary_api_payments_project__project_id__keys_status_summary_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/project/{project_id}/keys":{"put":{"tags":["Payments"],"summary":"Put Project Payment Keys","description":"Update project BYOK payment provider keys.\nBody: { stripe?: { secret_key?, webhook_secret? }, tochka?: { terminal_id?, password? } }\nOnly non-empty values are updated; existing keys are preserved when omitted.","operationId":"put_project_payment_keys_api_payments_project__project_id__keys_put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/admin/fees":{"get":{"tags":["Payments"],"summary":"Get Admin Payment Fees","description":"Return current platform fee config (ecosystem admin/owner only).","operationId":"get_admin_payment_fees_api_payments_admin_fees_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Payments"],"summary":"Put Admin Payment Fees","description":"Update platform fee config (ecosystem admin/owner only).\nBody: { byok_processing_fee_percent?, payout_commission_min_percent?,\n         payout_commission_max_percent?, payout_commission_default_percent? }","operationId":"put_admin_payment_fees_api_payments_admin_fees_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/payments/admin/withdrawal-requests":{"get":{"tags":["Payments"],"summary":"Get Admin Withdrawal Requests","description":"List all withdrawal requests (ecosystem admin/owner only).","operationId":"get_admin_withdrawal_requests_api_payments_admin_withdrawal_requests_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter: pending|approved|paid|rejected","title":"Status"},"description":"Filter: pending|approved|paid|rejected"},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by project","title":"Project Id"},"description":"Filter by project"},{"name":"date_from","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO date from","title":"Date From"},"description":"ISO date from"},{"name":"date_to","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO date to","title":"Date To"},"description":"ISO date to"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/admin/withdrawal-requests/{request_id}/status":{"put":{"tags":["Payments"],"summary":"Update Withdrawal Request Status","description":"Approve, mark as paid, or reject a withdrawal request (ecosystem admin/owner only).","operationId":"update_withdrawal_request_status_api_payments_admin_withdrawal_requests__request_id__status_put","parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string","description":"Withdrawal request ID (UUID)","title":"Request Id"},"description":"Withdrawal request ID (UUID)"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WithdrawalStatusBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/public-config/{project_id}":{"get":{"tags":["Payments"],"summary":"Get Public Payment Config","description":"Public payment config for the checkout widget — no auth required.\nReturns only the data the widget needs to bootstrap: providers, currency, default_wallet_id,\noptional ``default_amount`` (from ``payment_widget.default_amount``).\nThe public_payment_key is NOT returned here (it is only sent by the frontend after the payer\nsubmits the form, in POST /api/payments/public).","operationId":"get_public_payment_config_api_payments_public_config__project_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO country code","title":"Country"},"description":"ISO country code"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/public-status/{project_id}/{payment_id}":{"get":{"tags":["Payments"],"summary":"Get Public Payment Status","description":"Guest poll. Returns wallet_credit only after the ledger row exists.","operationId":"get_public_payment_status_api_payments_public_status__project_id___payment_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"payment_id","in":"path","required":true,"schema":{"type":"string","title":"Payment Id"}},{"name":"key","in":"query","required":true,"schema":{"type":"string","description":"Widget public_payment_key","title":"Key"},"description":"Widget public_payment_key"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/public":{"post":{"tags":["Payments"],"summary":"Create Public Payment","description":"Create a payment on behalf of a guest (unauthenticated) customer.\n\nThe caller must supply the project's `public_key` matching\n``project.data.config.payment_widget.public_payment_key``. Only ``intent=sale`` is allowed;\nthe destination wallet and recipient_project_id are taken from the project's\npayment_widget config — the caller cannot override them.\n\nReturns the same shape as POST /api/payments/: `{ payment_id, client_secret }` (Stripe)\nor `{ payment_id, payment_url }` (Tochka).","operationId":"create_public_payment_api_payments_public_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicPaymentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/payments/ledger/transactions":{"get":{"tags":["Payments","Payments"],"summary":"List transactions (SDK-compatible)","description":"Список транзакций в формате для SDK. Источник истины — data_projects_transaction. Фильтры: merchant_id, payment_id, status.","operationId":"get_ledger_transactions_api_payments_ledger_transactions_get","parameters":[{"name":"merchant_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Merchant ID filter","title":"Merchant Id"},"description":"Merchant ID filter"},{"name":"payment_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Payment ID filter","title":"Payment Id"},"description":"Payment ID filter"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Status filter","title":"Status"},"description":"Status filter"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Limit results","default":50,"title":"Limit"},"description":"Limit results"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Offset results","default":0,"title":"Offset"},"description":"Offset results"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/chain-surface":{"get":{"tags":["AgentNet"],"summary":"Get Agentnet Chain Surface Public","description":"Public chain surface (masked addresses, RPC ping) for integrators and grant reviewers.","operationId":"get_agentnet_chain_surface_public_api_agentnet_chain_surface_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Agentnet Chain Surface Public Api Agentnet Chain Surface Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/balance":{"get":{"tags":["AgentNet"],"summary":"Get Agentcoin Balance","operationId":"get_agentcoin_balance_api_agentnet__project_id__balance_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"name":"account_key","in":"query","required":true,"schema":{"type":"string","description":"Ledger account key, e.g. wallet scope","title":"Account Key"},"description":"Ledger account key, e.g. wallet scope"},{"name":"asset_code","in":"query","required":false,"schema":{"type":"string","default":"AGNT","title":"Asset Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/batches":{"get":{"tags":["AgentNet"],"summary":"List Agentcoin Batches","description":"Recent ledger batches (newest first).","operationId":"list_agentcoin_batches_api_agentnet__project_id__batches_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"before_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Key-set cursor (exclusive upper bound on batch id)","title":"Before Id"},"description":"Key-set cursor (exclusive upper bound on batch id)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["AgentNet"],"summary":"Post Agentcoin Batch","operationId":"post_agentcoin_batch_api_agentnet__project_id__batches_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PostBatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/batches/{batch_id}/proof":{"get":{"tags":["AgentNet"],"summary":"Get Agentcoin Batch Proof","description":"Merkle inclusion paths for a posted batch (read-only; same cap as balance/lists).","operationId":"get_agentcoin_batch_proof_api_agentnet__project_id__batches__batch_id__proof_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"name":"batch_id","in":"path","required":true,"schema":{"type":"integer","description":"Ledger batch id","title":"Batch Id"},"description":"Ledger batch id"},{"name":"entry_sort_index","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"When set, ``proofs`` includes only the path for this leg ``sort_index``","title":"Entry Sort Index"},"description":"When set, ``proofs`` includes only the path for this leg ``sort_index``"},{"name":"include_checkpoint","in":"query","required":false,"schema":{"type":"boolean","description":"When true, attach covering checkpoint metadata (if persisted)","default":false,"title":"Include Checkpoint"},"description":"When true, attach covering checkpoint metadata (if persisted)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/checkpoints/covering-batch/{batch_id}":{"get":{"tags":["AgentNet"],"summary":"Get Agentcoin Checkpoint Covering Batch","description":"Return the newest checkpoint that covers ``batch_id`` (compact; no ``batch_roots_json`` body).","operationId":"get_agentcoin_checkpoint_covering_batch_api_agentnet__project_id__checkpoints_covering_batch__batch_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"name":"batch_id","in":"path","required":true,"schema":{"type":"integer","description":"Ledger batch id","title":"Batch Id"},"description":"Ledger batch id"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/checkpoints/by-epoch/{epoch}":{"get":{"tags":["AgentNet"],"summary":"Get Agentcoin Checkpoint By Epoch","description":"Return a single checkpoint row (includes ``batch_roots_json`` when stored).","operationId":"get_agentcoin_checkpoint_by_epoch_api_agentnet__project_id__checkpoints_by_epoch__epoch__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"name":"epoch","in":"path","required":true,"schema":{"type":"integer","minimum":0,"description":"Checkpoint epoch number","title":"Epoch"},"description":"Checkpoint epoch number"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/checkpoints/recent":{"get":{"tags":["AgentNet"],"summary":"List Agentcoin Checkpoints Recent","description":"Recent checkpoint epochs (newest first) without heavy ``batch_roots_json`` payloads.","operationId":"list_agentcoin_checkpoints_recent_api_agentnet__project_id__checkpoints_recent_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/compute-credits/quote":{"post":{"tags":["AgentNet"],"summary":"Post Agentcoin Compute Credits Quote","description":"Deterministic AGC quote for compute credits (read cap).","operationId":"post_agentcoin_compute_credits_quote_api_agentnet__project_id__compute_credits_quote_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComputeCreditsQuoteBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/compute-credits/quotes/{quote_id}":{"get":{"tags":["AgentNet"],"summary":"Get Agentcoin Compute Credits Quote Status","description":"Read-only quote phase/expiry (no side-effect refresh). See docs/adr/AGENTNET_COMPUTE_CREDIT_QUOTE_STATUS.md.","operationId":"get_agentcoin_compute_credits_quote_status_api_agentnet__project_id__compute_credits_quotes__quote_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"name":"quote_id","in":"path","required":true,"schema":{"type":"string","description":"Quote id from POST quote","title":"Quote Id"},"description":"Quote id from POST quote"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/compute-credits/purchase":{"post":{"tags":["AgentNet"],"summary":"Post Agentcoin Compute Credits Purchase","description":"Settle AGC to treasury and credit ``builder_energy`` (write cap).","operationId":"post_agentcoin_compute_credits_purchase_api_agentnet__project_id__compute_credits_purchase_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComputeCreditsPurchaseBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/accounts":{"get":{"tags":["AgentNet"],"summary":"List Agentcoin Accounts","description":"Materialised balances for treasury / user breakdown (admin read).","operationId":"list_agentcoin_accounts_api_agentnet__project_id__accounts_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":2000,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/receipts/verify":{"post":{"tags":["AgentNet"],"summary":"Post Agentcoin Receipt Verify","description":"Verify receipt hash + optional Merkle / signature fields.","operationId":"post_agentcoin_receipt_verify_api_agentnet__project_id__receipts_verify_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReceiptVerifyBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/batches/{batch_id}/evidence-receipt":{"get":{"tags":["AgentNet"],"summary":"Get Agentcoin Evidence Receipt","description":"Self-contained evidence pack (batch + checkpoint prefix witness).","operationId":"get_agentcoin_evidence_receipt_api_agentnet__project_id__batches__batch_id__evidence_receipt_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"name":"batch_id","in":"path","required":true,"schema":{"type":"integer","description":"Ledger batch id","title":"Batch Id"},"description":"Ledger batch id"},{"name":"trace_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Trace Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/proof-to-task":{"post":{"tags":["AgentNet"],"summary":"Post Agentnet Proof To Task","operationId":"post_agentnet_proof_to_task_api_agentnet__project_id__proof_to_task_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProofToTaskBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/funding/offer":{"get":{"tags":["AgentNet"],"summary":"Get Agentnet Funding Offer","operationId":"get_agentnet_funding_offer_api_agentnet__project_id__funding_offer_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"name":"payment_id","in":"query","required":true,"schema":{"type":"string","minLength":4,"title":"Payment Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/funding/start-vault-deposit":{"post":{"tags":["AgentNet"],"summary":"Post Agentnet Start Vault Deposit","operationId":"post_agentnet_start_vault_deposit_api_agentnet__project_id__funding_start_vault_deposit_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FundingStartVaultBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/identity/register-wallet":{"post":{"tags":["AgentNet"],"summary":"Post Agentnet Register Wallet","description":"Bind L2 wallet address to user for vault deposit indexer (SIWE / personal_sign).","operationId":"post_agentnet_register_wallet_api_agentnet__project_id__identity_register_wallet_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterWalletBindingBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/funding/transparency":{"get":{"tags":["AgentNet"],"summary":"Get Agentnet Funding Transparency","operationId":"get_agentnet_funding_transparency_api_agentnet__project_id__funding_transparency_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/exports/ledger":{"get":{"tags":["AgentNet"],"summary":"Export Agentnet Ledger","description":"Tax/compliance export — recent batches with entry summary (read-only).","operationId":"export_agentnet_ledger_api_agentnet__project_id__exports_ledger_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":2000,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/bridge/intents":{"get":{"tags":["AgentNet"],"summary":"List Agentcoin Bridge Intents","description":"Operator list of bridge intents (empty when table not migrated).","operationId":"list_agentcoin_bridge_intents_api_agentnet__project_id__bridge_intents_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project 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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["AgentNet"],"summary":"Create Agentnet Bridge Intent","operationId":"create_agentnet_bridge_intent_api_agentnet__project_id__bridge_intents_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BridgeIntentCreateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/bridge/finalize-in":{"post":{"tags":["AgentNet"],"summary":"Finalize Agentnet Bridge In","operationId":"finalize_agentnet_bridge_in_api_agentnet__project_id__bridge_finalize_in_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BridgeFinalizeInBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/bridge/finalize-out":{"post":{"tags":["AgentNet"],"summary":"Finalize Agentnet Bridge Out","operationId":"finalize_agentnet_bridge_out_api_agentnet__project_id__bridge_finalize_out_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BridgeFinalizeOutBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/bridge/events":{"get":{"tags":["AgentNet"],"summary":"List Agentcoin Bridge Events","description":"Operator list of normalized bridge chain events (empty until relay populates rows).","operationId":"list_agentcoin_bridge_events_api_agentnet__project_id__bridge_events_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"name":"chain_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Optional chain id filter","title":"Chain Id"},"description":"Optional chain id filter"},{"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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/bridge/supply-snapshot":{"get":{"tags":["AgentNet"],"summary":"Get Agentcoin Bridge Supply Snapshot","description":"L0 AGC sum + in-flight bridge intents + optional on-chain ``totalSupply`` (read-only).\n\nConfigure EVM read with ``AGENTCOIN_BRIDGE_RPC_URL`` or ``AGENTCOIN_EVM_RPC_URL`` and\n``AGENTCOIN_AGC_CONTRACT_ADDRESS``.","operationId":"get_agentcoin_bridge_supply_snapshot_api_agentnet__project_id__bridge_supply_snapshot_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/checkpoints/publish-pending":{"post":{"tags":["AgentNet"],"summary":"Post Agentcoin Publish Checkpoints Pending","description":"Drain pending ``data_agentcoin_checkpoint`` rows through the anchor publisher.\n\nUses EVM when ``AGENTNET_EVM_RPC_URL``, ``AGENTNET_EVM_CHAIN_ID``,\n``AGENTNET_CHECKPOINT_ANCHOR_ADDRESS``, and a signer are available:\n**prefer** ``AGENTNET_EVM_SIGN_HTTP_URL`` + ``AGENTNET_EVM_SIGN_HTTP_FROM`` (+ optional token)\nvia ``HttpRemoteEvmSigner``; otherwise local hex / Vault paths from\n``resolve_evm_signer_for_anchor`` (see ``docs/plans/AGENTCOIN_EVM_ANCHOR_PUBLISHER.md``).\nIf EVM is incomplete, falls back to ``LocalOnlyAnchorPublisher`` (no on-chain tx hash).","operationId":"post_agentcoin_publish_checkpoints_pending_api_agentnet__project_id__checkpoints_publish_pending_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishPendingCheckpointsBody","default":{"prefer_evm":true,"limit":5}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/agusd/mint":{"post":{"tags":["AgentNet"],"summary":"Post Agentnet Agusd Mint Deprecated","description":"Deprecated — use ``POST …/vault/deposit-confirm`` after ERC-4626 deposit.","operationId":"post_agentnet_agusd_mint_deprecated_api_agentnet__project_id__agusd_mint_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgusdMintBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/vault/nav":{"get":{"tags":["AgentNet"],"summary":"Get Agentnet Vault Nav","operationId":"get_agentnet_vault_nav_api_agentnet__project_id__vault_nav_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/{project_id}/vault/deposit-confirm":{"post":{"tags":["AgentNet"],"summary":"Post Agentnet Vault Deposit Confirm","operationId":"post_agentnet_vault_deposit_confirm_api_agentnet__project_id__vault_deposit_confirm_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Logical project id","title":"Project Id"},"description":"Logical project id"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VaultDepositConfirmBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/finance/{project_id}/portfolio":{"get":{"tags":["Finance"],"summary":"Get User Portfolio","operationId":"get_user_portfolio_api_finance__project_id__portfolio_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get User Portfolio Api Finance  Project Id  Portfolio Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/finance/{project_id}/activity":{"get":{"tags":["Finance"],"summary":"Get User Activity","operationId":"get_user_activity_api_finance__project_id__activity_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"rail","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by rail e.g. payments_usdt","title":"Rail"},"description":"Filter by rail e.g. payments_usdt"},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by activity kind","title":"Kind"},"description":"Filter by activity kind"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get User Activity Api Finance  Project Id  Activity Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/finance/{project_id}/billing-status":{"get":{"tags":["Finance"],"summary":"Get Billing Status","operationId":"get_billing_status_api_finance__project_id__billing_status_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Billing Status Api Finance  Project Id  Billing Status Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/finance/{project_id}/swap/pairs":{"get":{"tags":["Finance"],"summary":"Swap Pairs","operationId":"swap_pairs_api_finance__project_id__swap_pairs_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Swap Pairs Api Finance  Project Id  Swap Pairs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/finance/{project_id}/swap/quote":{"post":{"tags":["Finance"],"summary":"Swap Quote","operationId":"swap_quote_api_finance__project_id__swap_quote_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwapQuoteBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Swap Quote Api Finance  Project Id  Swap Quote Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/finance/{project_id}/swap/execute":{"post":{"tags":["Finance"],"summary":"Swap Execute","operationId":"swap_execute_api_finance__project_id__swap_execute_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SwapExecuteBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Swap Execute Api Finance  Project Id  Swap Execute Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/finance/{project_id}/pay/quote":{"post":{"tags":["Finance"],"summary":"Pay Quote","operationId":"pay_quote_api_finance__project_id__pay_quote_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayQuoteBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Pay Quote Api Finance  Project Id  Pay Quote Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/finance/{project_id}/pay/execute":{"post":{"tags":["Finance"],"summary":"Pay Execute","operationId":"pay_execute_api_finance__project_id__pay_execute_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayExecuteBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Pay Execute Api Finance  Project Id  Pay Execute Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/finance/projects/{project_id}/portfolio":{"get":{"tags":["Finance"],"summary":"Get Project Portfolio","operationId":"get_project_portfolio_api_finance_projects__project_id__portfolio_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Project Portfolio Api Finance Projects  Project Id  Portfolio Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/finance/projects/{project_id}/cashflow":{"get":{"tags":["Finance"],"summary":"Get Project Cashflow","operationId":"get_project_cashflow_api_finance_projects__project_id__cashflow_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Project Cashflow Api Finance Projects  Project Id  Cashflow Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/finance/projects/{project_id}/treasury":{"get":{"tags":["Finance"],"summary":"Get Project Treasury","operationId":"get_project_treasury_api_finance_projects__project_id__treasury_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Project Treasury Api Finance Projects  Project Id  Treasury Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/finance/projects/{project_id}/fund":{"post":{"tags":["Finance"],"summary":"Fund Project","operationId":"fund_project_api_finance_projects__project_id__fund_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FundProjectBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Fund Project Api Finance Projects  Project Id  Fund Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/finance/projects/{project_id}/contribute":{"post":{"tags":["Finance"],"summary":"Contribute Project","operationId":"contribute_project_api_finance_projects__project_id__contribute_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContributeProjectBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Contribute Project Api Finance Projects  Project Id  Contribute Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/finance/projects/{project_id}/contributions":{"get":{"tags":["Finance"],"summary":"List Project Contributions","operationId":"list_project_contributions_api_finance_projects__project_id__contributions_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Project Contributions Api Finance Projects  Project Id  Contributions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/finance/projects/{project_id}/contributions/summary":{"get":{"tags":["Finance"],"summary":"Project Contributions Summary","operationId":"project_contributions_summary_api_finance_projects__project_id__contributions_summary_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Project Contributions Summary Api Finance Projects  Project Id  Contributions Summary Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/finance/me/dashboard-bundle":{"get":{"tags":["Finance"],"summary":"Dashboard Bundle","operationId":"dashboard_bundle_api_finance_me_dashboard_bundle_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Ecosystem or tenant project id","default":1,"title":"Project Id"},"description":"Ecosystem or tenant project id"},{"name":"activity_limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Activity Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Dashboard Bundle Api Finance Me Dashboard Bundle Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/finance/projects/{project_id}/dashboard-bundle":{"get":{"tags":["Finance"],"summary":"Project Dashboard Bundle","operationId":"project_dashboard_bundle_api_finance_projects__project_id__dashboard_bundle_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"activity_limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Activity Limit"}},{"name":"include","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated embeds: org,staff,clients","title":"Include"},"description":"Comma-separated embeds: org,staff,clients"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Project Dashboard Bundle Api Finance Projects  Project Id  Dashboard Bundle Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/finance/me/projects-summary":{"get":{"tags":["Finance"],"summary":"Projects Summary","operationId":"projects_summary_api_finance_me_projects_summary_get","parameters":[{"name":"project_ids","in":"query","required":true,"schema":{"type":"string","description":"Comma-separated project ids","title":"Project Ids"},"description":"Comma-separated project ids"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Projects Summary Api Finance Me Projects Summary Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/finance/projects/{project_id}/merchant-summary":{"get":{"tags":["Finance"],"summary":"Merchant Summary","operationId":"merchant_summary_api_finance_projects__project_id__merchant_summary_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Merchant Summary Api Finance Projects  Project Id  Merchant Summary Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/finance/projects/{project_id}/analytics":{"get":{"tags":["Finance"],"summary":"Project Finance Analytics","operationId":"project_finance_analytics_api_finance_projects__project_id__analytics_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"months","in":"query","required":false,"schema":{"type":"integer","maximum":24,"minimum":1,"default":6,"title":"Months"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Project Finance Analytics Api Finance Projects  Project Id  Analytics Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"finance.project.analytics","x-capability-id":"finance.project.analytics"}},"/api/projects/{project_id}/agentnet/bnb/status":{"get":{"tags":["AgentNet BNB"],"summary":"Bnb Chain Status","operationId":"bnb_chain_status_api_projects__project_id__agentnet_bnb_status_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bnb Chain Status Api Projects  Project Id  Agentnet Bnb Status Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agentnet/bnb/register-identity":{"post":{"tags":["AgentNet BNB"],"summary":"Bnb Register Identity","operationId":"bnb_register_identity_api_projects__project_id__agentnet_bnb_register_identity_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BnbRegisterBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bnb Register Identity Api Projects  Project Id  Agentnet Bnb Register Identity Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agentnet/bnb/proof-bundle/{run_uuid}":{"get":{"tags":["AgentNet BNB"],"summary":"Bnb Proof Bundle For Run","operationId":"bnb_proof_bundle_for_run_api_projects__project_id__agentnet_bnb_proof_bundle__run_uuid__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"run_uuid","in":"path","required":true,"schema":{"type":"string","title":"Run Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bnb Proof Bundle For Run Api Projects  Project Id  Agentnet Bnb Proof Bundle  Run Uuid  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agentnet/bnb/apex-jobs":{"get":{"tags":["AgentNet BNB"],"summary":"Bnb Apex Jobs List","operationId":"bnb_apex_jobs_list_api_projects__project_id__agentnet_bnb_apex_jobs_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bnb Apex Jobs List Api Projects  Project Id  Agentnet Bnb Apex Jobs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agentnet/arb/status":{"get":{"tags":["AgentNet Arbitrum"],"summary":"Arb Chain Status","operationId":"arb_chain_status_api_projects__project_id__agentnet_arb_status_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Arb Chain Status Api Projects  Project Id  Agentnet Arb Status Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agentnet/sol/status":{"get":{"tags":["AgentNet Solana"],"summary":"Solana Chain Status","operationId":"solana_chain_status_api_projects__project_id__agentnet_sol_status_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Solana Chain Status Api Projects  Project Id  Agentnet Sol Status Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agentnet/sol/register-identity":{"post":{"tags":["AgentNet Solana"],"summary":"Solana Register Identity","operationId":"solana_register_identity_api_projects__project_id__agentnet_sol_register_identity_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SolRegisterBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Solana Register Identity Api Projects  Project Id  Agentnet Sol Register Identity Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agentnet/sol/proof-bundle/{run_uuid}":{"get":{"tags":["AgentNet Solana"],"summary":"Solana Proof Bundle For Run","operationId":"solana_proof_bundle_for_run_api_projects__project_id__agentnet_sol_proof_bundle__run_uuid__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"run_uuid","in":"path","required":true,"schema":{"type":"string","title":"Run Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Solana Proof Bundle For Run Api Projects  Project Id  Agentnet Sol Proof Bundle  Run Uuid  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agentnet/sol/submit-validation/{run_uuid}":{"post":{"tags":["AgentNet Solana"],"summary":"Solana Submit Validation","operationId":"solana_submit_validation_api_projects__project_id__agentnet_sol_submit_validation__run_uuid__post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"run_uuid","in":"path","required":true,"schema":{"type":"string","title":"Run Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Solana Submit Validation Api Projects  Project Id  Agentnet Sol Submit Validation  Run Uuid  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/proof-bundle/{bundle_hash}":{"get":{"tags":["AgentNet PTR"],"summary":"Get Proof Bundle","description":"Public read-only proof bundle by hash.\n\nLookup order: relational index (PK on ``bundle_hash``), then artifact dir scan.","operationId":"get_proof_bundle_api_agentnet_proof_bundle__bundle_hash__get","parameters":[{"name":"bundle_hash","in":"path","required":true,"schema":{"type":"string","title":"Bundle Hash"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Proof Bundle Api Agentnet Proof Bundle  Bundle Hash  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/ptr/rails":{"get":{"tags":["AgentNet PTR"],"summary":"List Ptr Rails","operationId":"list_ptr_rails_api_agentnet_ptr_rails_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Ptr Rails Api Agentnet Ptr Rails Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agentnet/chain/intents":{"post":{"tags":["AgentNet Chain Control"],"summary":"Submit Chain Intent","operationId":"submit_chain_intent_api_projects__project_id__agentnet_chain_intents_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitIntentBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Submit Chain Intent Api Projects  Project Id  Agentnet Chain Intents Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agentnet/chain/intents/{intent_id}":{"get":{"tags":["AgentNet Chain Control"],"summary":"Get Chain Intent","operationId":"get_chain_intent_api_projects__project_id__agentnet_chain_intents__intent_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"intent_id","in":"path","required":true,"schema":{"type":"string","title":"Intent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Chain Intent Api Projects  Project Id  Agentnet Chain Intents  Intent Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/agentnet/chain/delegations/{agent_uuid}":{"get":{"tags":["AgentNet Chain Control"],"summary":"Get Delegation","operationId":"get_delegation_api_projects__project_id__agentnet_chain_delegations__agent_uuid__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Delegation Api Projects  Project Id  Agentnet Chain Delegations  Agent Uuid  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["AgentNet Chain Control"],"summary":"Sync Delegation","operationId":"sync_delegation_api_projects__project_id__agentnet_chain_delegations__agent_uuid__post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"agent_uuid","in":"path","required":true,"schema":{"type":"string","title":"Agent Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DelegationBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Sync Delegation Api Projects  Project Id  Agentnet Chain Delegations  Agent Uuid  Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/chain/rails":{"get":{"tags":["AgentNet Chain Control Public"],"summary":"List Chain Rails","operationId":"list_chain_rails_api_agentnet_chain_rails_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Chain Rails Api Agentnet Chain Rails Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/agentnet/working-set":{"get":{"tags":["AgentNet"],"summary":"Get Working Set Draft","operationId":"get_working_set_draft_api_agentnet_working_set_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"flow_id","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Flow Id"}},{"name":"trace_id","in":"query","required":false,"schema":{"type":"string","description":"OpTrace correlation id","default":"","title":"Trace Id"},"description":"OpTrace correlation id"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Working Set Draft Api Agentnet Working Set Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["AgentNet"],"summary":"Save Working Set Draft","operationId":"save_working_set_draft_api_agentnet_working_set_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"flow_id","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Flow Id"}},{"name":"trace_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Trace Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Save Working Set Draft Api Agentnet Working Set Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["AgentNet"],"summary":"Clear Working Set Draft","operationId":"clear_working_set_draft_api_agentnet_working_set_delete","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"flow_id","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Flow Id"}},{"name":"trace_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Trace Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Clear Working Set Draft Api Agentnet Working Set Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ledger/{path}":{"get":{"tags":["Proxy"],"summary":"Proxy Ledger Get","description":"Proxy ledger requests to AgentPay service","operationId":"proxy_ledger_get_api_ledger__path__get","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","description":"Ledger path","title":"Path"},"description":"Ledger path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/proxy/{service}/{path}":{"get":{"tags":["Proxy"],"summary":"Generic Proxy Get","description":"Generic proxy for external services","operationId":"generic_proxy_get_api_proxy__service___path__get","parameters":[{"name":"service","in":"path","required":true,"schema":{"type":"string","description":"Service name","title":"Service"},"description":"Service name"},{"name":"path","in":"path","required":true,"schema":{"type":"string","description":"Service path","title":"Path"},"description":"Service path"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/proxy/status":{"get":{"tags":["Proxy"],"summary":"Get Proxy Status","description":"Get proxy status and available services","operationId":"get_proxy_status_api_proxy_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/proxy/health":{"get":{"tags":["Proxy"],"summary":"Proxy Health","description":"Health check for proxy service","operationId":"proxy_health_api_proxy_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/proxy/config":{"get":{"tags":["Proxy"],"summary":"Get Proxy Config","description":"Get proxy configuration.\nRequires authentication.","operationId":"get_proxy_config_api_proxy_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/stats":{"get":{"tags":["Unified API"],"summary":"Get Users Stats","description":"Get users statistics. Requires authentication. active_users_30d is simplified (equals total until last_active/created_at available).","operationId":"get_users_stats_api_users_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/analytics":{"get":{"tags":["Unified API"],"summary":"Get Users Analytics","description":"Get users analytics. Requires authentication. Metrics are simplified until created_at/last_active available.","operationId":"get_users_analytics_api_users_analytics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/scheduler/stats":{"get":{"tags":["Unified API"],"summary":"Get Scheduler Stats","description":"Get scheduler statistics","operationId":"get_scheduler_stats_api_scheduler_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/webhooks":{"get":{"tags":["Unified API"],"summary":"Get Webhooks","description":"Get webhooks. Requires read access to the requested project.","operationId":"get_webhooks_api_webhooks_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Project ID","default":1025,"title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/webhooks/stats":{"get":{"tags":["Unified API"],"summary":"Get Webhooks Stats","description":"Get webhooks statistics. Requires read access to the requested project.","operationId":"get_webhooks_stats_api_webhooks_stats_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Project ID","default":1025,"title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/security/events":{"get":{"tags":["Unified API"],"summary":"Get Security Events","description":"Get security events from Security Event System","operationId":"get_security_events_api_security_events_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Limit results","default":100,"title":"Limit"},"description":"Limit results"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/audit/logs":{"get":{"tags":["Unified API"],"summary":"Get Audit Logs","description":"Get audit logs - permission-based access with full filtering support.\n\nPolicy: Access is governed by permission_service.check_project_access (read).\nEcosystem owners may filter by any project they have read access to.\nNon-ecosystem users may only see audit logs for their own project;\nproject_id query parameter is ignored for them and replaced with their context project.","operationId":"get_audit_logs_api_audit_logs_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Limit results","default":50,"title":"Limit"},"description":"Limit results"},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Offset for pagination (alternative to page)","title":"Offset"},"description":"Offset for pagination (alternative to page)"},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by project ID","title":"Project Id"},"description":"Filter by project ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"start_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Start date (ISO format)","title":"Start Date"},"description":"Start date (ISO format)"},{"name":"end_date","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"End date (ISO format)","title":"End Date"},"description":"End date (ISO format)"},{"name":"action","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by action","title":"Action"},"description":"Filter by action"},{"name":"resource_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by resource type","title":"Resource Type"},"description":"Filter by resource type"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status (success/failure/warning)","title":"Status"},"description":"Filter by status (success/failure/warning)"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search in logs","title":"Search"},"description":"Search in logs"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort field","default":"timestamp","title":"Sort By"},"description":"Sort field"},{"name":"sort_order","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort order (asc/desc)","default":"desc","title":"Sort Order"},"description":"Sort order (asc/desc)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/monitoring/live":{"get":{"tags":["Unified API"],"summary":"Get Monitoring Live","description":"Get real-time system monitoring metrics.\n\nDeprecated. Use GET /api/metrics for admin monitoring (variant C: single source of truth).\nSuccessor: ``GET /api/metrics`` (Link: rel=successor-version).","operationId":"get_monitoring_live_api_monitoring_live_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"deprecated":true,"x-sunset-date":"2027-01-01","x-channel":"rest_compat"}},"/api/auth/audit-logs":{"get":{"tags":["Unified API"],"summary":"Auth Audit Logs","description":"Get authentication audit logs","operationId":"auth_audit_logs_api_auth_audit_logs_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Limit results","default":100,"title":"Limit"},"description":"Limit results"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/analytics/projects/{project_id}/stats":{"get":{"tags":["Unified API"],"summary":"Get Project Analytics Stats","description":"Get project analytics statistics","operationId":"get_project_analytics_stats_api_analytics_projects__project_id__stats_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/audit/stats":{"get":{"tags":["Unified API"],"summary":"Get Audit Stats","description":"Get audit statistics - permission-based access","operationId":"get_audit_stats_api_audit_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/system/status":{"get":{"tags":["Admin"],"summary":"Get System Status","operationId":"get_system_status_api_system_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/security/status":{"get":{"tags":["Admin"],"summary":"Get Security Status","operationId":"get_security_status_api_security_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/admin/project-agents":{"get":{"tags":["Admin"],"summary":"Project-scoped agents listing (legacy admin shape)","description":"Admin-style list merged from 8DNA fleet + transitional ``config.agents[]``.\n\nThis is **not** the scoped Agents Fleet list; use ``GET /api/projects/{project_id}/agents``\n(session/API key) or ``GET /api/users/me/agents`` for personal agents. Superservice and legacy\nUIs use this merged route.","operationId":"get_project_agents_legacy_api_admin_project_agents_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/mail/inbound/{provider}":{"post":{"tags":["Notifications"],"summary":"Mail Inbound Webhook","description":"Inbound email webhook (Resend, Postmark, generic).","operationId":"mail_inbound_webhook_api_mail_inbound__provider__post","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/mail/events/{provider}":{"post":{"tags":["Notifications"],"summary":"Mail Events Webhook","description":"Bounce/complaint events — add to suppression list.","operationId":"mail_events_webhook_api_mail_events__provider__post","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/mail/inbox":{"get":{"tags":["Notifications"],"summary":"Get Mail Inbox","operationId":"get_mail_inbox_api_mail_inbox_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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/mail/inbox/{thread_id}":{"get":{"tags":["Notifications"],"summary":"Get Mail Thread","operationId":"get_mail_thread_api_mail_inbox__thread_id__get","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"patch":{"tags":["Notifications"],"summary":"Patch Mail Thread","operationId":"patch_mail_thread_api_mail_inbox__thread_id__patch","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/mail/reply":{"post":{"tags":["Notifications"],"summary":"Reply Mail","description":"Reply to a thread (``thread_id``) or the last noticed letter. Same as messaging.inbox.reply.","operationId":"reply_mail_api_mail_reply_post","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","default":"","title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/mail/send":{"post":{"tags":["Notifications"],"summary":"Send Mail","description":"Send one letter from the signed-in mailbox. From is the server address.","operationId":"send_mail_api_mail_send_post","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","default":"","title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/mail/mailbox/settings":{"get":{"tags":["Notifications"],"summary":"Get Mailbox Settings","operationId":"get_mailbox_settings_api_mail_mailbox_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Notifications"],"summary":"Put Mailbox Settings","operationId":"put_mailbox_settings_api_mail_mailbox_settings_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/mail/mailbox/claim":{"post":{"tags":["Notifications"],"summary":"Claim Mailbox","description":"Claim local@agentstack.tech for the signed-in user. Does not send mail.","operationId":"claim_mailbox_api_mail_mailbox_claim_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/projects/{project_id}/mail/mailbox":{"get":{"tags":["Notifications"],"summary":"Get Project Mailbox","operationId":"get_project_mailbox_api_projects__project_id__mail_mailbox_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Notifications"],"summary":"Claim Project Mailbox Route","operationId":"claim_project_mailbox_route_api_projects__project_id__mail_mailbox_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/notification-prefs":{"get":{"tags":["Notifications"],"summary":"Get Notification Prefs","operationId":"get_notification_prefs_api_users_me_notification_prefs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"notifications.list_prefs","x-capability-id":"notifications.list_prefs"},"put":{"tags":["Notifications"],"summary":"Put Notification Prefs","operationId":"put_notification_prefs_api_users_me_notification_prefs_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"},"patch":{"tags":["Notifications"],"summary":"Patch Notification Prefs Category","description":"Single category×channel toggle — same as MCP ``notifications.update_prefs`` patch.","operationId":"patch_notification_prefs_category_api_users_me_notification_prefs_patch","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat","x-mcp-action":"notifications.update_prefs","x-capability-id":"notifications.update_prefs"}},"/api/users/me/telegram-bind-link":{"get":{"tags":["Notifications"],"summary":"Get Telegram Bind Link","description":"Self-serve Telegram /start bind_* deeplink (ch-02).","operationId":"get_telegram_bind_link_api_users_me_telegram_bind_link_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/channel-routes":{"get":{"tags":["Notifications"],"summary":"Get Channel Routes","description":"List stored route rows and the effective email plan (MCP ``channels.route`` op=list).","operationId":"get_channel_routes_api_users_me_channel_routes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"channels.route","x-capability-id":"channels.route"},"put":{"tags":["Notifications"],"summary":"Put User Channel Route","operationId":"put_user_channel_route_api_users_me_channel_routes_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/users/me/channel-routes/{route_id}":{"delete":{"tags":["Notifications"],"summary":"Delete User Channel Route","operationId":"delete_user_channel_route_api_users_me_channel_routes__route_id__delete","parameters":[{"name":"route_id","in":"path","required":true,"schema":{"type":"string","title":"Route Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/notification-sources":{"put":{"tags":["Notifications"],"summary":"Put Notification Source","operationId":"put_notification_source_api_users_me_notification_sources_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat","x-mcp-action":"channels.enroll_source","x-capability-id":"channels.enroll_source"}},"/api/users/me/notification-sources/{source_id}":{"delete":{"tags":["Notifications"],"summary":"Delete Notification Source","operationId":"delete_notification_source_api_users_me_notification_sources__source_id__delete","parameters":[{"name":"source_id","in":"path","required":true,"schema":{"type":"string","title":"Source Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"channels.delete_source","x-capability-id":"channels.delete_source"}},"/api/users/me/notification-sources/health":{"get":{"tags":["Notifications"],"summary":"List Notification Sources Health","operationId":"list_notification_sources_health_api_users_me_notification_sources_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"channels.sources_health","x-capability-id":"channels.sources_health"}},"/api/users/me/notification-sources/{source_id}/health":{"get":{"tags":["Notifications"],"summary":"Get Notification Source Health","operationId":"get_notification_source_health_api_users_me_notification_sources__source_id__health_get","parameters":[{"name":"source_id","in":"path","required":true,"schema":{"type":"string","title":"Source Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"channels.source_health","x-capability-id":"channels.source_health"}},"/api/users/me/notify-digest-depth":{"get":{"tags":["Notifications"],"summary":"Get Notify Digest Depth","operationId":"get_notify_digest_depth_api_users_me_notify_digest_depth_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"channels.digest_depth","x-capability-id":"channels.digest_depth"}},"/api/users/me/notification-routing/resolve":{"post":{"tags":["Notifications"],"summary":"Post Notification Routing Resolve","description":"Preview effective channels (parity with MCP ``channels.resolve_routing``).","operationId":"post_notification_routing_resolve_api_users_me_notification_routing_resolve_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat","x-mcp-action":"channels.resolve_routing","x-capability-id":"channels.resolve_routing"}},"/api/users/me/notification-deliver":{"post":{"tags":["Notifications"],"summary":"Post Notification Deliver","description":"Self test ping used by Profile enroll (`sdk.messaging.deliverNotification`).","operationId":"post_notification_deliver_api_users_me_notification_deliver_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat","x-mcp-action":"notifications.deliver","x-capability-id":"notifications.deliver"}},"/api/users/me/notify-flush-digest":{"post":{"tags":["Notifications"],"summary":"Post Notify Flush Digest","operationId":"post_notify_flush_digest_api_users_me_notify_flush_digest_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"channels.flush_digest","x-capability-id":"channels.flush_digest"}},"/api/users/me/notification-delivery-status":{"get":{"tags":["Notifications"],"summary":"Get Notification Delivery Status","operationId":"get_notification_delivery_status_api_users_me_notification_delivery_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"channels.delivery_snapshot","x-capability-id":"channels.delivery_snapshot"}},"/api/users/me/notification-failed-deliveries":{"get":{"tags":["Notifications"],"summary":"Get Notification Failed Deliveries","operationId":"get_notification_failed_deliveries_api_users_me_notification_failed_deliveries_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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"channels.list_failed_deliveries","x-capability-id":"channels.list_failed_deliveries"}},"/api/users/me/delivery-status":{"get":{"tags":["Notifications"],"summary":"Get Delivery Status","operationId":"get_delivery_status_api_users_me_delivery_status_get","parameters":[{"name":"correlation_key","in":"query","required":true,"schema":{"type":"string","title":"Correlation Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"notifications.delivery_status","x-capability-id":"notifications.delivery_status"}},"/api/notifications/deliver":{"post":{"tags":["Notifications"],"summary":"Post Notifications Deliver","description":"POST /api/notifications/deliver — parity with MCP ``channels.deliver``.","operationId":"post_notifications_deliver_api_notifications_deliver_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/backups":{"get":{"tags":["Backup Management"],"summary":"List Backups","description":"List backups with optional filters and permission checks","operationId":"list_backups_api_backups_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by project ID","title":"Project Id"},"description":"Filter by project ID"},{"name":"backup_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by backup type","title":"Backup Type"},"description":"Filter by backup type"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status","title":"Status"},"description":"Filter by status"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Limit results","default":100,"title":"Limit"},"description":"Limit results"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Backup Management"],"summary":"Create Backup","description":"Create a new backup with permission check","operationId":"create_backup_api_backups_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackupCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/backups/schedules":{"get":{"tags":["Backup Management"],"summary":"List Backup Schedules","description":"List backup schedules with permission check","operationId":"list_backup_schedules_api_backups_schedules_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by project ID","title":"Project Id"},"description":"Filter by project ID"},{"name":"enabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter by enabled status","title":"Enabled"},"description":"Filter by enabled status"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Backup Management"],"summary":"Create Backup Schedule","description":"Create a backup schedule with permission check","operationId":"create_backup_schedule_api_backups_schedules_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackupScheduleRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/backups/restore-operations":{"get":{"tags":["Backup Management"],"summary":"List Restore Operations","description":"List restore operations with permission check","operationId":"list_restore_operations_api_backups_restore_operations_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by project ID","title":"Project Id"},"description":"Filter by project ID"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Limit results","default":100,"title":"Limit"},"description":"Limit results"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/backups/{backup_uuid}":{"get":{"tags":["Backup Management"],"summary":"Get Backup","description":"Get backup details with permission check","operationId":"get_backup_api_backups__backup_uuid__get","parameters":[{"name":"backup_uuid","in":"path","required":true,"schema":{"type":"string","description":"Backup UUID","title":"Backup Uuid"},"description":"Backup UUID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Backup Management"],"summary":"Delete Backup","description":"Delete a backup with permission check","operationId":"delete_backup_api_backups__backup_uuid__delete","parameters":[{"name":"backup_uuid","in":"path","required":true,"schema":{"type":"string","description":"Backup UUID","title":"Backup Uuid"},"description":"Backup UUID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/backups/{backup_uuid}/restore":{"post":{"tags":["Backup Management"],"summary":"Restore Backup","description":"Restore entities from backup with permission check","operationId":"restore_backup_api_backups__backup_uuid__restore_post","parameters":[{"name":"backup_uuid","in":"path","required":true,"schema":{"type":"string","description":"Backup UUID","title":"Backup Uuid"},"description":"Backup UUID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackupRestoreRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/scheduler/tasks":{"get":{"tags":["Scheduler"],"summary":"Get Scheduler Tasks","description":"Get scheduler tasks for a project","operationId":"get_scheduler_tasks_api_scheduler_tasks_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"env_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sandbox anchor. Omit to read the live promoted head.","title":"Env Uuid"},"description":"Sandbox anchor. Omit to read the live promoted head."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Scheduler"],"summary":"Create Scheduler Task","description":"Create new scheduler task (HTTP → shared impl).","operationId":"create_scheduler_task_api_scheduler_tasks_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Task data","title":"Task Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/scheduler/tasks/{task_id}":{"put":{"tags":["Scheduler"],"summary":"Update Scheduler Task","description":"Update scheduler task (HTTP → shared impl).","operationId":"update_scheduler_task_api_scheduler_tasks__task_id__put","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","description":"Task ID","title":"Task Id"},"description":"Task ID"},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Task data","title":"Task Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Scheduler"],"summary":"Delete Scheduler Task","description":"Delete scheduler task (HTTP → shared impl).","operationId":"delete_scheduler_task_api_scheduler_tasks__task_id__delete","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","description":"Task ID","title":"Task Id"},"description":"Task ID"},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/scheduler/tasks/{task_id}/execute":{"post":{"tags":["Scheduler"],"summary":"Execute Scheduler Task","description":"Execute scheduler task immediately","operationId":"execute_scheduler_task_api_scheduler_tasks__task_id__execute_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","description":"Task ID","title":"Task Id"},"description":"Task ID"},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/scheduler/tasks/{task_id}/executions":{"get":{"tags":["Scheduler"],"summary":"Get Task Executions","description":"Get execution history for a scheduler task","operationId":"get_task_executions_api_scheduler_tasks__task_id__executions_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","description":"Task ID","title":"Task Id"},"description":"Task ID"},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Limit","default":10,"title":"Limit"},"description":"Limit"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","description":"Offset","default":0,"title":"Offset"},"description":"Offset"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/scheduler/projects/{project_id}/schedulers":{"get":{"tags":["Scheduler"],"summary":"Get All Schedulers","description":"Get all schedulers from all logic in project (aggregated view)","operationId":"get_all_schedulers_api_scheduler_projects__project_id__schedulers_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/scheduler/projects/{project_id}/schedulers/{scheduler_id}":{"get":{"tags":["Scheduler"],"summary":"Get Scheduler","description":"Get specific scheduler by ID","operationId":"get_scheduler_api_scheduler_projects__project_id__schedulers__scheduler_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"scheduler_id","in":"path","required":true,"schema":{"type":"string","description":"Scheduler ID","title":"Scheduler Id"},"description":"Scheduler ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Scheduler"],"summary":"Update Scheduler","description":"Update scheduler configuration","operationId":"update_scheduler_api_scheduler_projects__project_id__schedulers__scheduler_id__put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"scheduler_id","in":"path","required":true,"schema":{"type":"string","description":"Scheduler ID","title":"Scheduler Id"},"description":"Scheduler ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Updates to apply","title":"Updates"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/scheduler/projects/{project_id}/schedulers/{scheduler_id}/enable":{"post":{"tags":["Scheduler"],"summary":"Enable Scheduler","description":"Enable scheduler","operationId":"enable_scheduler_api_scheduler_projects__project_id__schedulers__scheduler_id__enable_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"scheduler_id","in":"path","required":true,"schema":{"type":"string","description":"Scheduler ID","title":"Scheduler Id"},"description":"Scheduler ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/scheduler/projects/{project_id}/schedulers/{scheduler_id}/disable":{"post":{"tags":["Scheduler"],"summary":"Disable Scheduler","description":"Disable scheduler","operationId":"disable_scheduler_api_scheduler_projects__project_id__schedulers__scheduler_id__disable_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"scheduler_id","in":"path","required":true,"schema":{"type":"string","description":"Scheduler ID","title":"Scheduler Id"},"description":"Scheduler ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/scheduler/projects/{project_id}/schedulers/{scheduler_id}/executions":{"get":{"tags":["Scheduler"],"summary":"Get Scheduler Executions","description":"Get execution logs for scheduler","operationId":"get_scheduler_executions_api_scheduler_projects__project_id__schedulers__scheduler_id__executions_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"scheduler_id","in":"path","required":true,"schema":{"type":"string","description":"Scheduler ID","title":"Scheduler Id"},"description":"Scheduler ID"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Limit","default":100,"title":"Limit"},"description":"Limit"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","description":"Offset","default":0,"title":"Offset"},"description":"Offset"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/scheduler/projects/{project_id}/schedulers/{scheduler_id}/execute":{"post":{"tags":["Scheduler"],"summary":"Execute Scheduler","description":"Execute scheduler manually","operationId":"execute_scheduler_api_scheduler_projects__project_id__schedulers__scheduler_id__execute_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"scheduler_id","in":"path","required":true,"schema":{"type":"string","description":"Scheduler ID","title":"Scheduler Id"},"description":"Scheduler ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/scheduler/pool/tasks":{"get":{"tags":["Scheduler"],"summary":"Get Pool Tasks","description":"Get all tasks from execution pool (for admin view)\nReturns tasks sorted by execute_at","operationId":"get_pool_tasks_api_scheduler_pool_tasks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Scheduler"],"summary":"Clear Pool","description":"Clear all tasks from execution pool","operationId":"clear_pool_api_scheduler_pool_tasks_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/scheduler/pool/tasks/{task_id}":{"get":{"tags":["Scheduler"],"summary":"Get Pool Task Details","description":"Get detailed information about a task from pool","operationId":"get_pool_task_details_api_scheduler_pool_tasks__task_id__get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","description":"Task ID","title":"Task Id"},"description":"Task ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Scheduler"],"summary":"Remove Pool Task","description":"Remove task from execution pool","operationId":"remove_pool_task_api_scheduler_pool_tasks__task_id__delete","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","description":"Task ID","title":"Task Id"},"description":"Task ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/scheduler/pool/refresh":{"post":{"tags":["Scheduler"],"summary":"Refresh Pool","description":"Manually trigger pool refill","operationId":"refresh_pool_api_scheduler_pool_refresh_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/scheduler/all-tasks":{"get":{"tags":["Scheduler"],"summary":"Get All Tasks","description":"Get all tasks from database (heavy operation)\nIncludes both schedulers from logic and standalone tasks","operationId":"get_all_tasks_api_scheduler_all_tasks_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by project ID","title":"Project Id"},"description":"Filter by project ID"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Limit (max 10000)","default":1000,"title":"Limit"},"description":"Limit (max 10000)"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","description":"Offset","default":0,"title":"Offset"},"description":"Offset"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/wallets":{"get":{"tags":["Project"],"summary":"Get Project Wallets","description":"Получение всех кошельков проекта","operationId":"get_project_wallets_api_projects__project_id__wallets_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Project"],"summary":"Create Project Wallet","description":"Создание кошелька проекта. Требуется право manage_wallets / create_wallets.","operationId":"create_project_wallet_api_projects__project_id__wallets_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Wallet data","title":"Wallet Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/wallets/ensure-default":{"post":{"tags":["Project"],"summary":"Ensure Default Project Wallet","description":"Принудительно создать дефолтный кошелек для проекта, если его нет","operationId":"ensure_default_project_wallet_api_projects__project_id__wallets_ensure_default_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/wallets/{wallet_id}":{"get":{"tags":["Project"],"summary":"Get Project Wallet","description":"Получение кошелька проекта по ID","operationId":"get_project_wallet_api_projects__project_id__wallets__wallet_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"wallet_id","in":"path","required":true,"schema":{"type":"string","description":"Wallet ID","title":"Wallet Id"},"description":"Wallet ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Project"],"summary":"Update Project Wallet","description":"Обновление кошелька проекта","operationId":"update_project_wallet_api_projects__project_id__wallets__wallet_id__put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"wallet_id","in":"path","required":true,"schema":{"type":"string","description":"Wallet ID","title":"Wallet Id"},"description":"Wallet ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWalletRequest","description":"Update data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Project"],"summary":"Delete Project Wallet","description":"Удаление кошелька проекта","operationId":"delete_project_wallet_api_projects__project_id__wallets__wallet_id__delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"wallet_id","in":"path","required":true,"schema":{"type":"string","description":"Wallet ID","title":"Wallet Id"},"description":"Wallet ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/wallets/{wallet_id}/balance":{"get":{"tags":["Project"],"summary":"Get Project Wallet Balance","description":"Получение баланса кошелька проекта по валюте (по умолчанию USD).","operationId":"get_project_wallet_balance_api_projects__project_id__wallets__wallet_id__balance_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"wallet_id","in":"path","required":true,"schema":{"type":"string","description":"Wallet ID","title":"Wallet Id"},"description":"Wallet ID"},{"name":"currency","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Currency code (default USD)","default":"USD","title":"Currency"},"description":"Currency code (default USD)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BalanceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/wallets/{wallet_id}/deposit":{"post":{"tags":["Project"],"summary":"Deposit To Project Wallet","description":"Пополнение кошелька проекта","operationId":"deposit_to_project_wallet_api_projects__project_id__wallets__wallet_id__deposit_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"wallet_id","in":"path","required":true,"schema":{"type":"string","description":"Wallet ID","title":"Wallet Id"},"description":"Wallet ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_deposit_to_project_wallet_api_projects__project_id__wallets__wallet_id__deposit_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/wallets/{wallet_id}/withdraw":{"post":{"tags":["Project"],"summary":"Withdraw From Project Wallet","description":"Списание с кошелька проекта","operationId":"withdraw_from_project_wallet_api_projects__project_id__wallets__wallet_id__withdraw_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"wallet_id","in":"path","required":true,"schema":{"type":"string","description":"Wallet ID","title":"Wallet Id"},"description":"Wallet ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_withdraw_from_project_wallet_api_projects__project_id__wallets__wallet_id__withdraw_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/wallets/{wallet_id}/receive-payment":{"post":{"tags":["Project"],"summary":"Receive Payment To Project Wallet","description":"Получение платежа на кошелёк проекта","operationId":"receive_payment_to_project_wallet_api_projects__project_id__wallets__wallet_id__receive_payment_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"wallet_id","in":"path","required":true,"schema":{"type":"string","description":"Wallet ID","title":"Wallet Id"},"description":"Wallet ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_receive_payment_to_project_wallet_api_projects__project_id__wallets__wallet_id__receive_payment_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/wallets/{wallet_id}/transfer":{"post":{"tags":["Project"],"summary":"Transfer From Project Wallet","description":"Перевод с кошелька проекта","operationId":"transfer_from_project_wallet_api_projects__project_id__wallets__wallet_id__transfer_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"wallet_id","in":"path","required":true,"schema":{"type":"string","description":"Wallet ID","title":"Wallet Id"},"description":"Wallet ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Transfer data","title":"Transfer Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/wallets/{wallet_id}/transactions":{"get":{"tags":["Project"],"summary":"Get Project Wallet Transactions","description":"Получение истории транзакций кошелька проекта","operationId":"get_project_wallet_transactions_api_projects__project_id__wallets__wallet_id__transactions_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"wallet_id","in":"path","required":true,"schema":{"type":"string","description":"Wallet ID","title":"Wallet Id"},"description":"Wallet ID"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Number of transactions to return","default":100,"title":"Limit"},"description":"Number of transactions to return"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","description":"Number of transactions to skip","default":0,"title":"Offset"},"description":"Number of transactions to skip"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Project"],"summary":"Create Project Wallet Transaction","description":"Создание транзакции для кошелька проекта","operationId":"create_project_wallet_transaction_api_projects__project_id__wallets__wallet_id__transactions_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"wallet_id","in":"path","required":true,"schema":{"type":"string","description":"Wallet ID","title":"Wallet Id"},"description":"Wallet ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Transaction data","title":"Transaction Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransactionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/wallets/{wallet_id}/analytics":{"get":{"tags":["Project"],"summary":"Get Project Wallet Analytics","description":"Получение аналитики кошелька проекта","operationId":"get_project_wallet_analytics_api_projects__project_id__wallets__wallet_id__analytics_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"wallet_id","in":"path","required":true,"schema":{"type":"string","description":"Wallet ID","title":"Wallet Id"},"description":"Wallet ID"},{"name":"period","in":"query","required":false,"schema":{"type":"string","description":"Analytics period (7d, 30d, 90d, 1y)","default":"30d","title":"Period"},"description":"Analytics period (7d, 30d, 90d, 1y)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/wallets/{wallet_id}/stats":{"get":{"tags":["Project"],"summary":"Get Project Wallet Stats","description":"Получение статистики кошелька проекта","operationId":"get_project_wallet_stats_api_projects__project_id__wallets__wallet_id__stats_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"wallet_id","in":"path","required":true,"schema":{"type":"string","description":"Wallet ID","title":"Wallet Id"},"description":"Wallet ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/currencies":{"get":{"tags":["Profile"],"summary":"List Available Currencies","description":"Catalog for SDK `AgentWallets.getCurrencies()`.","operationId":"list_available_currencies_api_currencies_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"When set, include custom currencies from project 8DNA money slice","title":"Project Id"},"description":"When set, include custom currencies from project 8DNA money slice"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Available Currencies Api Currencies Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Profile"],"summary":"Create Custom Currency","description":"Create tenant virtual currency (SDK `AgentWallets.createCurrency`).","operationId":"create_custom_currency_api_currencies_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomCurrencyBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Custom Currency Api Currencies Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/projects/{project_id}/asset-presets":{"get":{"tags":["Assets"],"summary":"List Asset Presets","description":"Return asset wizard presets (bundled + project custom).","operationId":"list_asset_presets_api_projects__project_id__asset_presets_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Assets"],"summary":"Save Asset Preset","description":"Save or update a custom asset preset for the project.","operationId":"save_asset_preset_api_projects__project_id__asset_presets_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SaveAssetPresetRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/asset-presets/{preset_id}":{"delete":{"tags":["Assets"],"summary":"Delete Asset Preset","description":"Delete a project custom asset preset.","operationId":"delete_asset_preset_api_projects__project_id__asset_presets__preset_id__delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"preset_id","in":"path","required":true,"schema":{"type":"string","description":"Custom preset id","title":"Preset Id"},"description":"Custom preset id"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/assets":{"post":{"tags":["Assets"],"summary":"Create Asset","description":"Create new asset in project\n\nArgs:\n    project_id: Project ID\n    request: Asset data\n    user: Authenticated user\n\nReturns:\n    Created asset","operationId":"create_asset_api_projects__project_id__assets_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAssetRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"get":{"tags":["Assets"],"summary":"List Assets","description":"List assets in project\n\nArgs:\n    project_id: Project ID\n    type: Optional filter by type\n    category: Optional filter by category\n    rarity: Optional filter by rarity\n    tradeable: Optional filter by tradeable\n    user: Authenticated user\n\nReturns:\n    List of assets","operationId":"list_assets_api_projects__project_id__assets_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by asset type","title":"Type"},"description":"Filter by asset type"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category","title":"Category"},"description":"Filter by category"},{"name":"rarity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by rarity","title":"Rarity"},"description":"Filter by rarity"},{"name":"tradeable","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter by tradeable","title":"Tradeable"},"description":"Filter by tradeable"},{"name":"lifecycle","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by metadata.lifecycle","title":"Lifecycle"},"description":"Filter by metadata.lifecycle"},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search name or asset id","title":"Q"},"description":"Search name or asset id"},{"name":"cross_project","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter cross_project flag","title":"Cross Project"},"description":"Filter cross_project flag"},{"name":"include_catalog_scope","in":"query","required":false,"schema":{"type":"boolean","description":"When true, attach ECS catalog scope (drift, canonical_total) like MCP assets.list","default":false,"title":"Include Catalog Scope"},"description":"When true, attach ECS catalog scope (drift, canonical_total) like MCP assets.list"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/assets/{asset_id}":{"get":{"tags":["Assets"],"summary":"Get Asset","description":"Get asset by ID\n\nArgs:\n    project_id: Project ID\n    asset_id: Asset ID\n    user: Authenticated user\n\nReturns:\n    Asset details","operationId":"get_asset_api_projects__project_id__assets__asset_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","description":"Asset ID","title":"Asset Id"},"description":"Asset ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Assets"],"summary":"Update Asset","description":"Update asset\n\nArgs:\n    project_id: Project ID\n    asset_id: Asset ID\n    request: Update data\n    user: Authenticated user\n\nReturns:\n    Updated asset","operationId":"update_asset_api_projects__project_id__assets__asset_id__put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","description":"Asset ID","title":"Asset Id"},"description":"Asset ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAssetRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Assets"],"summary":"Delete Asset","description":"Delete asset\n\nArgs:\n    project_id: Project ID\n    asset_id: Asset ID\n    user: Authenticated user\n\nReturns:\n    Success status","operationId":"delete_asset_api_projects__project_id__assets__asset_id__delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","description":"Asset ID","title":"Asset Id"},"description":"Asset ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/assets/{asset_id}/activity":{"get":{"tags":["Assets"],"summary":"Get Asset Activity","description":"Activity timeline for a catalog asset (execution_ecosystem_logs).","operationId":"get_asset_activity_api_projects__project_id__assets__asset_id__activity_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","description":"Asset ID","title":"Asset Id"},"description":"Asset ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/assets/bulk-delete":{"post":{"tags":["Assets"],"summary":"Bulk Delete Assets","description":"Delete multiple assets at once\n\nArgs:\n    project_id: Project ID\n    asset_ids: List of asset IDs to delete\n    user: Authenticated user\n\nReturns:\n    Result with success count and failed assets","operationId":"bulk_delete_assets_api_projects__project_id__assets_bulk_delete_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeleteAssetsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/assets/bulk-update":{"post":{"tags":["Assets"],"summary":"Bulk Update Assets","description":"Update multiple assets at once\n\nArgs:\n    project_id: Project ID\n    updates: List of updates, each with 'asset_id' and update fields\n    user: Authenticated user\n\nReturns:\n    Result with success count and failed assets","operationId":"bulk_update_assets_api_projects__project_id__assets_bulk_update_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkUpdateAssetsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/assets/export":{"get":{"tags":["Assets"],"summary":"Export Assets","description":"Export all assets from project as JSON\n\nArgs:\n    project_id: Project ID\n    user: Authenticated user\n\nReturns:\n    List of assets (JSON)","operationId":"export_assets_api_projects__project_id__assets_export_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/assets/import":{"post":{"tags":["Assets"],"summary":"Import Assets","description":"Import assets from JSON data\n\nArgs:\n    project_id: Project ID\n    assets_data: List of asset data to import\n    overwrite: If True, overwrite existing assets with same ID\n    user: Authenticated user\n\nReturns:\n    Result with imported count and failed assets","operationId":"import_assets_api_projects__project_id__assets_import_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportAssetsRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/assets/{asset_id}/transfer":{"post":{"tags":["Assets"],"summary":"Transfer Asset","description":"Transfer asset to another user/project\n\nArgs:\n    project_id: Source project ID\n    asset_id: Asset ID\n    request: Transfer data\n    user: Authenticated user\n\nReturns:\n    Success status","operationId":"transfer_asset_api_projects__project_id__assets__asset_id__transfer_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"asset_id","in":"path","required":true,"schema":{"type":"string","description":"Asset ID","title":"Asset Id"},"description":"Asset ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TransferAssetRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/marketplace/listings":{"post":{"tags":["Marketplace"],"summary":"Create Listing","description":"Create new marketplace listing\n\nArgs:\n    request: Listing data\n    user: Authenticated user\n\nReturns:\n    Created listing","operationId":"create_listing_api_marketplace_listings_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateListingRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"},"get":{"tags":["Marketplace"],"summary":"List Listings","description":"List marketplace listings\n\nArgs:\n    type: Optional filter by type\n    status: Optional filter by status\n    project_id: Optional filter by project ID\n    seller_id: Optional filter by seller ID\n    page: Page number\n    limit: Items per page\n    user: Authenticated user\n\nReturns:\n    List of listings","operationId":"list_listings_api_marketplace_listings_get","parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by listing type","title":"Type"},"description":"Filter by listing type"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status","title":"Status"},"description":"Filter by status"},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by project ID","title":"Project Id"},"description":"Filter by project ID"},{"name":"scope","in":"query","required":false,"schema":{"anyOf":[{"enum":["global","session_project","project"],"type":"string"},{"type":"null"}],"description":"global=all projects; session_project=caller project; project=use project_id","title":"Scope"},"description":"global=all projects; session_project=caller project; project=use project_id"},{"name":"seller_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by seller ID","title":"Seller Id"},"description":"Filter by seller ID"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search query (asset name, id, description)","title":"Search"},"description":"Search query (asset name, id, description)"},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category","title":"Category"},"description":"Filter by category"},{"name":"tags","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by tags (comma-separated)","title":"Tags"},"description":"Filter by tags (comma-separated)"},{"name":"asset_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by catalog asset id","title":"Asset Id"},"description":"Filter by catalog asset id"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"description":"Items per page","default":50,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/marketplace/listings/{listing_id}":{"get":{"tags":["Marketplace"],"summary":"Get Listing","description":"Get listing by ID\n\nArgs:\n    listing_id: Listing UUID\n    user: Authenticated user\n\nReturns:\n    Listing details","operationId":"get_listing_api_marketplace_listings__listing_id__get","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"string","description":"Listing UUID","title":"Listing Id"},"description":"Listing UUID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Marketplace"],"summary":"Update Listing","description":"Update listing\n\nArgs:\n    listing_id: Listing UUID\n    request: Update data\n    user: Authenticated user\n\nReturns:\n    Updated listing","operationId":"update_listing_api_marketplace_listings__listing_id__put","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"string","description":"Listing UUID","title":"Listing Id"},"description":"Listing UUID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateListingRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Marketplace"],"summary":"Delete Listing","description":"Delete listing\n\nArgs:\n    listing_id: Listing UUID\n    user: Authenticated user\n\nReturns:\n    Success status","operationId":"delete_listing_api_marketplace_listings__listing_id__delete","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"string","description":"Listing UUID","title":"Listing Id"},"description":"Listing UUID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/marketplace/listings/{listing_id}/accept":{"post":{"tags":["Marketplace"],"summary":"Accept Listing","description":"Accept listing (create deal)\n\nArgs:\n    listing_id: Listing UUID\n    request: Buyer offer\n    user: Authenticated user\n\nReturns:\n    Updated listing with deal","operationId":"accept_listing_api_marketplace_listings__listing_id__accept_post","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"string","description":"Listing UUID","title":"Listing Id"},"description":"Listing UUID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptListingRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/marketplace/listings/{listing_id}/bids":{"post":{"tags":["Marketplace"],"summary":"Place Bid","description":"Place a bid on an auction listing.","operationId":"place_bid_api_marketplace_listings__listing_id__bids_post","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"string","description":"Listing UUID","title":"Listing Id"},"description":"Listing UUID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaceBidRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"get":{"tags":["Marketplace"],"summary":"List Bids","description":"List bids for an auction listing with pagination.","operationId":"list_bids_api_marketplace_listings__listing_id__bids_get","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"string","description":"Listing UUID","title":"Listing Id"},"description":"Listing UUID"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/marketplace/listings/{listing_id}/close-auction":{"post":{"tags":["Marketplace"],"summary":"Close Auction","description":"Close auction and create deal from winning bid. Seller or admin only.","operationId":"close_auction_api_marketplace_listings__listing_id__close_auction_post","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"string","description":"Listing UUID","title":"Listing Id"},"description":"Listing UUID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/marketplace/listings/{listing_id}/lock":{"post":{"tags":["Marketplace"],"summary":"Lock Deal Assets","description":"Lock assets for deal\n\nArgs:\n    listing_id: Listing UUID\n    side: \"seller\" or \"buyer\"\n    user: Authenticated user\n\nReturns:\n    Success status","operationId":"lock_deal_assets_api_marketplace_listings__listing_id__lock_post","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"string","description":"Listing UUID","title":"Listing Id"},"description":"Listing UUID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_lock_deal_assets_api_marketplace_listings__listing_id__lock_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/marketplace/listings/{listing_id}/confirm":{"post":{"tags":["Marketplace"],"summary":"Confirm Deal","description":"Confirm deal\n\nArgs:\n    listing_id: Listing UUID\n    side: \"seller\" or \"buyer\"\n    user: Authenticated user\n\nReturns:\n    Success status","operationId":"confirm_deal_api_marketplace_listings__listing_id__confirm_post","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"string","description":"Listing UUID","title":"Listing Id"},"description":"Listing UUID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_confirm_deal_api_marketplace_listings__listing_id__confirm_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/marketplace/listings/{listing_id}/cancel":{"post":{"tags":["Marketplace"],"summary":"Cancel Deal","description":"Cancel deal\n\nArgs:\n    listing_id: Listing UUID\n    user: Authenticated user\n\nReturns:\n    Success status","operationId":"cancel_deal_api_marketplace_listings__listing_id__cancel_post","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"string","description":"Listing UUID","title":"Listing Id"},"description":"Listing UUID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/marketplace/history":{"get":{"tags":["Marketplace"],"summary":"Get Full History","description":"Get full exchange history (from execution_ecosystem_logs)\n\nArgs:\n    project_id: Optional filter by project ID\n    user_id: Optional filter by user ID\n    page: Page number\n    limit: Items per page\n    user: Authenticated user\n\nReturns:\n    Full history","operationId":"get_full_history_api_marketplace_history_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by project ID","title":"Project Id"},"description":"Filter by project ID"},{"name":"user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by user ID","title":"User Id"},"description":"Filter by user ID"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"description":"Items per page","default":50,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/marketplace/projects/{project_id}/exchange/history":{"get":{"tags":["Marketplace"],"summary":"Get Project History","description":"Get project exchange history\n\nArgs:\n    project_id: Project ID\n    type: Optional filter by type\n    partner_id: Optional filter by partner ID\n    page: Page number\n    limit: Items per page\n    user: Authenticated user\n\nReturns:\n    Project history","operationId":"get_project_history_api_marketplace_projects__project_id__exchange_history_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by type (outgoing/incoming)","title":"Type"},"description":"Filter by type (outgoing/incoming)"},{"name":"partner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by partner ID","title":"Partner Id"},"description":"Filter by partner ID"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"description":"Items per page","default":50,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/marketplace/listings/{listing_id}/rating":{"post":{"tags":["Marketplace"],"summary":"Add Listing Rating","description":"Add rating and review to listing\n\nArgs:\n    listing_id: Listing UUID\n    rating: Rating (1-5)\n    comment: Optional comment/review\n    user: Authenticated user\n\nReturns:\n    Success status","operationId":"add_listing_rating_api_marketplace_listings__listing_id__rating_post","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"string","description":"Listing UUID","title":"Listing Id"},"description":"Listing UUID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddRatingRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/marketplace/listings/{listing_id}/ratings":{"get":{"tags":["Marketplace"],"summary":"Get Listing Ratings","description":"Get ratings and reviews for listing\n\nArgs:\n    listing_id: Listing UUID\n    user: Authenticated user\n\nReturns:\n    Ratings and reviews data","operationId":"get_listing_ratings_api_marketplace_listings__listing_id__ratings_get","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"string","description":"Listing UUID","title":"Listing Id"},"description":"Listing UUID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/marketplace/users/{user_id}/exchange/history":{"get":{"tags":["Marketplace"],"summary":"Get User History","description":"Get user exchange history\n\nArgs:\n    user_id: User ID\n    project_id: Optional project ID (defaults to user's current project)\n    type: Optional filter by type\n    partner_id: Optional filter by partner ID\n    page: Page number\n    limit: Items per page\n    current_user: Authenticated user\n\nReturns:\n    User history","operationId":"get_user_history_api_marketplace_users__user_id__exchange_history_get","parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"integer","description":"User ID","title":"User Id"},"description":"User ID"},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by type (outgoing/incoming)","title":"Type"},"description":"Filter by type (outgoing/incoming)"},{"name":"partner_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by partner ID","title":"Partner Id"},"description":"Filter by partner ID"},{"name":"page","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":100,"minimum":1},{"type":"null"}],"description":"Items per page","default":50,"title":"Limit"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/shop/resolve-slug/{slug}":{"get":{"tags":["Commerce","Marketplace","Commerce Shop"],"summary":"Resolve Shop Slug","description":"Public resolver for `/shop/p/:slug` — numeric project id or vanity token.","operationId":"resolve_shop_slug_api_commerce_shop_resolve_slug__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/coupons/registry":{"get":{"tags":["Commerce","Marketplace","Commerce Shop"],"summary":"List Coupon Registry","description":"Coupon registry for merchant/admin tooling (platform + project rows).","operationId":"list_coupon_registry_api_commerce_coupons_registry_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/merchant/coupons":{"get":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Merchant List Coupons","operationId":"merchant_list_coupons_api_commerce_merchant_coupons_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Merchant Create Coupon","operationId":"merchant_create_coupon_api_commerce_merchant_coupons_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchantCouponBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/merchant/coupons/{code}":{"put":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Merchant Update Coupon","operationId":"merchant_update_coupon_api_commerce_merchant_coupons__code__put","parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"Code"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchantCouponPatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Merchant Delete Coupon","operationId":"merchant_delete_coupon_api_commerce_merchant_coupons__code__delete","parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"Code"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/shop/products/{listing_uuid}":{"get":{"tags":["Commerce","Marketplace","Commerce Shop"],"summary":"Get Shop Product","description":"PDP BFF — listing + asset_card + seller + policy + optional buyer wallet.","operationId":"get_shop_product_api_commerce_shop_products__listing_uuid__get","parameters":[{"name":"listing_uuid","in":"path","required":true,"schema":{"type":"string","title":"Listing Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/merchant/policy":{"get":{"tags":["Commerce","Marketplace","Commerce Shop"],"summary":"Get Merchant Policy","operationId":"get_merchant_policy_api_commerce_merchant_policy_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Commerce","Marketplace","Commerce Shop"],"summary":"Put Merchant Policy","operationId":"put_merchant_policy_api_commerce_merchant_policy_put","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchantCommercePolicyBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/merchant/dashboard":{"get":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Merchant Dashboard","operationId":"merchant_dashboard_api_commerce_merchant_dashboard_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/merchant/hub-snapshot":{"get":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Merchant Hub Snapshot","description":"BFF: dashboard + listings + orders in one HTTP call for merchant hub.","operationId":"merchant_hub_snapshot_api_commerce_merchant_hub_snapshot_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"listings_limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":100,"title":"Listings Limit"}},{"name":"orders_limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":100,"title":"Orders Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/merchant/listings":{"get":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Merchant Listings","operationId":"merchant_listings_api_commerce_merchant_listings_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"stale_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Stale Only"}},{"name":"asset_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Asset Id"}},{"name":"asset_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated asset ids (batch filter)","title":"Asset Ids"},"description":"Comma-separated asset ids (batch filter)"},{"name":"visibility","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"public or limited","title":"Visibility"},"description":"public or limited"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Merchant Create Listing","description":"Create a marketplace listing under commerce merchant namespace.","operationId":"merchant_create_listing_api_commerce_merchant_listings_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkListingItem"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/merchant/orders-incoming":{"get":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Merchant Orders Incoming","operationId":"merchant_orders_incoming_api_commerce_merchant_orders_incoming_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/merchant/listings/{listing_uuid}":{"put":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Merchant Update Listing","operationId":"merchant_update_listing_api_commerce_merchant_listings__listing_uuid__put","parameters":[{"name":"listing_uuid","in":"path","required":true,"schema":{"type":"string","title":"Listing Uuid"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MerchantListingUpdateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/merchant/listings/{listing_uuid}/sync-price":{"post":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Merchant Sync Listing Price","operationId":"merchant_sync_listing_price_api_commerce_merchant_listings__listing_uuid__sync_price_post","parameters":[{"name":"listing_uuid","in":"path","required":true,"schema":{"type":"string","title":"Listing Uuid"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/merchant/listings/{listing_uuid}/reindex":{"post":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Merchant Reindex Listing","operationId":"merchant_reindex_listing_api_commerce_merchant_listings__listing_uuid__reindex_post","parameters":[{"name":"listing_uuid","in":"path","required":true,"schema":{"type":"string","title":"Listing Uuid"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/merchant/listings/bulk-sync-prices":{"post":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Merchant Bulk Sync Prices","operationId":"merchant_bulk_sync_prices_api_commerce_merchant_listings_bulk_sync_prices_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/merchant/listings/bulk-deactivate":{"post":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Merchant Bulk Deactivate","operationId":"merchant_bulk_deactivate_api_commerce_merchant_listings_bulk_deactivate_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkDeactivateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/merchant/shelf-stats":{"get":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Merchant Shelf Stats","description":"Deprecated — use GET /merchant/dashboard. Seller-scoped KPIs.","operationId":"merchant_shelf_stats_api_commerce_merchant_shelf_stats_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/storefront/listings":{"get":{"tags":["Commerce","Marketplace"],"summary":"List Storefront Listings","description":"Public/active storefront browse (optional auth). ETag + SWR cache headers.","operationId":"list_storefront_listings_api_commerce_storefront_listings_get","parameters":[{"name":"scope","in":"query","required":false,"schema":{"enum":["global","project"],"type":"string","description":"global = all projects; project = filter by project_id","default":"global","title":"Scope"},"description":"global = all projects; project = filter by project_id"},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"collection","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"featured | new","title":"Collection"},"description":"featured | new"},{"name":"search","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search"}},{"name":"sort","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"recent","title":"Sort"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"degraded","in":"query","required":false,"schema":{"type":"boolean","description":"Project-scope DNA browse when index cold (W1.6)","default":false,"title":"Degraded"},"description":"Project-scope DNA browse when index cold (W1.6)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/storefront/health":{"get":{"tags":["Commerce","Marketplace"],"summary":"Storefront Health","description":"Storefront index diagnostics (optional auth).","operationId":"storefront_health_api_commerce_storefront_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/storefront/rebuild-index":{"post":{"tags":["Commerce","Marketplace"],"summary":"Rebuild Storefront Index","description":"Ecosystem admin: full storefront index rebuild.","operationId":"rebuild_storefront_index_api_commerce_storefront_rebuild_index_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/commerce/storefront/backfill-ecs":{"post":{"tags":["Commerce","Marketplace"],"summary":"Backfill Storefront Ecs Index","description":"Ecosystem admin: one-shot ECS card_row + organelle backfill (F5.6 / F6.2).","operationId":"backfill_storefront_ecs_index_api_commerce_storefront_backfill_ecs_post","parameters":[{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Dry Run"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/intents":{"post":{"tags":["Commerce","Marketplace"],"summary":"Create Commerce Intent","description":"Signed checkout intent → surface_url (chromeless money entry).","operationId":"create_commerce_intent_api_commerce_intents_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCommerceIntentRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/commerce/intents/verify":{"get":{"tags":["Commerce","Marketplace"],"summary":"Verify Commerce Intent","operationId":"verify_commerce_intent_api_commerce_intents_verify_get","parameters":[{"name":"p","in":"query","required":true,"schema":{"type":"string","description":"b64url intent payload","title":"P"},"description":"b64url intent payload"},{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}},{"name":"exp","in":"query","required":true,"schema":{"type":"integer","title":"Exp"}},{"name":"sig","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sig"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/surfaces/sessions":{"post":{"tags":["Commerce","Marketplace"],"summary":"Create Commerce Surface Session","description":"Factory for chromeless surface hydrate sessions.","operationId":"create_commerce_surface_session_api_commerce_surfaces_sessions_post","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCommerceSurfaceSessionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/surfaces/sessions/{session_id}":{"get":{"tags":["Commerce","Marketplace"],"summary":"Get Commerce Surface Session","operationId":"get_commerce_surface_session_api_commerce_surfaces_sessions__session_id__get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}},{"name":"exp","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exp"}},{"name":"sig","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sig"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/checkout/sessions":{"post":{"tags":["Commerce","Marketplace"],"summary":"Create Checkout Session","operationId":"create_checkout_session_api_commerce_checkout_sessions_post","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCheckoutSessionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/checkout/sessions/{session_id}":{"get":{"tags":["Commerce","Marketplace"],"summary":"Get Checkout Session","operationId":"get_checkout_session_api_commerce_checkout_sessions__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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/checkout/sessions/{session_id}/confirm":{"post":{"tags":["Commerce","Marketplace"],"summary":"Confirm Checkout Session","operationId":"confirm_checkout_session_api_commerce_checkout_sessions__session_id__confirm_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/cart":{"get":{"tags":["Commerce","Marketplace"],"summary":"Get Cart","operationId":"get_cart_api_commerce_cart_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/cart/merge":{"post":{"tags":["Commerce","Marketplace"],"summary":"Merge Cart","operationId":"merge_cart_api_commerce_cart_merge_post","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MergeCartRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/cart/lines":{"post":{"tags":["Commerce","Marketplace"],"summary":"Add Cart Line","operationId":"add_cart_line_api_commerce_cart_lines_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CartLineRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/commerce/cart/checkout":{"post":{"tags":["Commerce","Marketplace"],"summary":"Checkout Cart","description":"Create checkout session from cart lines, then confirm in one call if wallet.","operationId":"checkout_cart_api_commerce_cart_checkout_post","parameters":[{"name":"rail","in":"query","required":false,"schema":{"type":"string","default":"wallet_internal","title":"Rail"}},{"name":"crm_deal_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Deprecated: prefer JSON body.crm_deal_id","title":"Crm Deal Id"},"description":"Deprecated: prefer JSON body.crm_deal_id"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency-Key"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/CartCheckoutRequest"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/cart/lines/{line_id}":{"delete":{"tags":["Commerce","Marketplace"],"summary":"Remove Cart Line","operationId":"remove_cart_line_api_commerce_cart_lines__line_id__delete","parameters":[{"name":"line_id","in":"path","required":true,"schema":{"type":"string","title":"Line Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"patch":{"tags":["Commerce","Marketplace","Commerce Shop"],"summary":"Set Cart Line Quantity","operationId":"set_cart_line_quantity_api_commerce_cart_lines__line_id__patch","parameters":[{"name":"line_id","in":"path","required":true,"schema":{"type":"string","title":"Line Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CartLineQuantityRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/cart/apply-coupon":{"post":{"tags":["Commerce","Marketplace","Commerce Shop"],"summary":"Apply Cart Coupon","description":"Apply or clear a coupon on the authenticated cart (`core.commerce.coupons.gen1`).","operationId":"apply_cart_coupon_api_commerce_cart_apply_coupon_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApplyCouponRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/commerce/coupons/preview":{"post":{"tags":["Commerce","Marketplace","Commerce Shop"],"summary":"Preview Coupon","description":"Preview coupon discount without auth (guest cart estimate).","operationId":"preview_coupon_api_commerce_coupons_preview_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CouponPreviewRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/commerce/guest/pricing/batch":{"post":{"tags":["Commerce","Marketplace","Commerce Shop"],"summary":"Guest Pricing Batch","description":"Batch guest-cart line pricing (title + unit_price_usdt) without auth.","operationId":"guest_pricing_batch_api_commerce_guest_pricing_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuestPricingBatchBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/commerce/delivery/download":{"get":{"tags":["Commerce","Marketplace","Commerce Shop"],"summary":"Commerce Delivery Download","description":"Redirect buyer to asset file after TTL-signed token verification.","operationId":"commerce_delivery_download_api_commerce_delivery_download_get","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","minLength":10,"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/delivery/refresh":{"post":{"tags":["Commerce","Marketplace","Commerce Shop"],"summary":"Commerce Delivery Refresh","description":"Re-issue a TTL-signed delivery gateway URL for an active purchase.","operationId":"commerce_delivery_refresh_api_commerce_delivery_refresh_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeliveryRefreshRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/commerce/orders":{"get":{"tags":["Commerce","Marketplace"],"summary":"List Orders","operationId":"list_orders_api_commerce_orders_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/orders/{order_id}":{"get":{"tags":["Commerce","Marketplace"],"summary":"Get Order","operationId":"get_order_api_commerce_orders__order_id__get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/marketplace/listings/bulk":{"post":{"tags":["Commerce","Marketplace"],"summary":"Bulk Create Listings","operationId":"bulk_create_listings_api_commerce_marketplace_listings_bulk_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkCreateListingsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/commerce/listings/{listing_id}/report":{"post":{"tags":["Commerce","Marketplace"],"summary":"Report Listing","operationId":"report_listing_api_commerce_listings__listing_id__report_post","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"string","title":"Listing Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReportListingRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/merchant/featured":{"get":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Merchant Get Featured","operationId":"merchant_get_featured_api_commerce_merchant_featured_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Merchant Set Featured","operationId":"merchant_set_featured_api_commerce_merchant_featured_put","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeaturedListingsBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/guidance/checklist":{"get":{"tags":["Commerce","Marketplace","Commerce"],"summary":"Guidance Checklist","operationId":"guidance_checklist_api_commerce_guidance_checklist_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/guidance/catalog-hints":{"get":{"tags":["Commerce","Marketplace","Commerce"],"summary":"Guidance Catalog Hints","operationId":"guidance_catalog_hints_api_commerce_guidance_catalog_hints_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"asset_ids","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Asset Ids"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/guidance/listing-draft":{"get":{"tags":["Commerce","Marketplace","Commerce"],"summary":"Guidance Listing Draft","operationId":"guidance_listing_draft_api_commerce_guidance_listing_draft_get","parameters":[{"name":"asset_id","in":"query","required":true,"schema":{"type":"string","title":"Asset Id"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/participant/holdings":{"get":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Participant Holdings","operationId":"participant_holdings_api_commerce_participant_holdings_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project 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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/participant/wallet-summary":{"get":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Participant Wallet Summary","operationId":"participant_wallet_summary_api_commerce_participant_wallet_summary_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/participant/grant-holding":{"post":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Participant Grant Holding","description":"Operator grant — requires project write.","operationId":"participant_grant_holding_api_commerce_participant_grant_holding_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantHoldingBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/storefront/seed/plan":{"post":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Storefront Seed Plan","operationId":"storefront_seed_plan_api_commerce_storefront_seed_plan_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorefrontSeedPlanRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/storefront/seed/apply":{"post":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Storefront Seed Apply","operationId":"storefront_seed_apply_api_commerce_storefront_seed_apply_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorefrontSeedApplyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/storefront/seed/undo":{"post":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Storefront Seed Undo","operationId":"storefront_seed_undo_api_commerce_storefront_seed_undo_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorefrontSeedUndoRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/storefront/seed/one-click-fill":{"post":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Storefront Seed One Click Fill","description":"Create listings for eligible catalog assets that lack an active listing.","operationId":"storefront_seed_one_click_fill_api_commerce_storefront_seed_one_click_fill_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorefrontOneClickFillRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/ai/generate-products":{"post":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Commerce Ai Generate Products","operationId":"commerce_ai_generate_products_api_commerce_ai_generate_products_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommerceAiGenerateProductsBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/ai/magic-fill":{"post":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Commerce Ai Magic Fill","operationId":"commerce_ai_magic_fill_api_commerce_ai_magic_fill_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommerceAiMagicFillBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/ai/suggest-field":{"post":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Commerce Ai Suggest Field","operationId":"commerce_ai_suggest_field_api_commerce_ai_suggest_field_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommerceAiSuggestFieldBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/storefront/hosted/manifest":{"get":{"tags":["Commerce","Marketplace","Commerce Shop"],"summary":"Storefront Hosted Manifest","operationId":"storefront_hosted_manifest_api_commerce_storefront_hosted_manifest_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/storefront/hosted/publish":{"post":{"tags":["Commerce","Marketplace","Commerce Shop"],"summary":"Storefront Hosted Publish","operationId":"storefront_hosted_publish_api_commerce_storefront_hosted_publish_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/storefront/seed/ingest":{"post":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Storefront Seed Ingest","description":"Parse bulk source (csv/json/ai_batch/magic/clone) into ProductSpec rows.","operationId":"storefront_seed_ingest_api_commerce_storefront_seed_ingest_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StorefrontSeedIngestBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/storefront/studio/draft":{"get":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Storefront Studio Draft Get","operationId":"storefront_studio_draft_get_api_commerce_storefront_studio_draft_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Storefront Studio Draft Put","operationId":"storefront_studio_draft_put_api_commerce_storefront_studio_draft_put","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StudioDraftBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/sell/activation":{"get":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Sell Activation State","description":"Read seller activation state for a project.","operationId":"sell_activation_state_api_commerce_sell_activation_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/sell/activate":{"post":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Sell Activate","description":"One-shot seller activation — wallet, seed, policy, index, optional hosted.","operationId":"sell_activate_api_commerce_sell_activate_post","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SellActivateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/orders/refund-request":{"post":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Commerce Refund Request","operationId":"commerce_refund_request_api_commerce_orders_refund_request_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefundRequestBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/commerce/orders/{order_id}/refund-request":{"get":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Commerce Refund Status","operationId":"commerce_refund_status_api_commerce_orders__order_id__refund_request_get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/entitlements":{"get":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"List Entitlements","operationId":"list_entitlements_api_commerce_entitlements_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/my-purchases":{"get":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"My Purchases","operationId":"my_purchases_api_commerce_my_purchases_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/participant/my-purchases":{"get":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Participant My Purchases","description":"SDK alias for ``GET /my-purchases``.","operationId":"participant_my_purchases_api_commerce_participant_my_purchases_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/events/refund-stream":{"get":{"tags":["Commerce","Marketplace","Commerce Merchant"],"summary":"Commerce Refund Event Stream","description":"SSE push for commerce refund lifecycle (buyer + merchant cache invalidation).","operationId":"commerce_refund_event_stream_api_commerce_events_refund_stream_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/iap/products":{"get":{"tags":["commerce-iap"],"summary":"List Iap Products","operationId":"list_iap_products_api_commerce_iap_products_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"locale","in":"query","required":false,"schema":{"type":"string","default":"en","title":"Locale"}},{"name":"currency","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Iap Products Api Commerce Iap Products Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/iap/checkout":{"post":{"tags":["commerce-iap"],"summary":"Create Iap Checkout","operationId":"create_iap_checkout_api_commerce_iap_checkout_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Create Iap Checkout Api Commerce Iap Checkout Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/commerce/iap/payment-methods":{"get":{"tags":["commerce-iap"],"summary":"List Iap Payment Methods","operationId":"list_iap_payment_methods_api_commerce_iap_payment_methods_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"}},{"name":"currency","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Iap Payment Methods Api Commerce Iap Payment Methods Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/iap/orders/{order_id}":{"get":{"tags":["commerce-iap"],"summary":"Get Iap Order","operationId":"get_iap_order_api_commerce_iap_orders__order_id__get","parameters":[{"name":"order_id","in":"path","required":true,"schema":{"type":"string","title":"Order Id"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Iap Order Api Commerce Iap Orders  Order Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/iap/balances":{"get":{"tags":["commerce-iap"],"summary":"Get Iap Balances","operationId":"get_iap_balances_api_commerce_iap_balances_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"asset_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Asset Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Iap Balances Api Commerce Iap Balances Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/iap/spend":{"post":{"tags":["commerce-iap"],"summary":"Spend Iap At Sink","operationId":"spend_iap_at_sink_api_commerce_iap_spend_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Spend Iap At Sink Api Commerce Iap Spend Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/commerce/iap/owner/products":{"get":{"tags":["commerce-iap"],"summary":"Owner List Iap Products","operationId":"owner_list_iap_products_api_commerce_iap_owner_products_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Owner List Iap Products Api Commerce Iap Owner Products Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["commerce-iap"],"summary":"Owner Upsert Iap Product","operationId":"owner_upsert_iap_product_api_commerce_iap_owner_products_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Owner Upsert Iap Product Api Commerce Iap Owner Products Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/iap/owner/enablement":{"get":{"tags":["commerce-iap"],"summary":"Owner Iap Enablement","operationId":"owner_iap_enablement_api_commerce_iap_owner_enablement_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Owner Iap Enablement Api Commerce Iap Owner Enablement Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/commerce/iap/ledger":{"get":{"tags":["commerce-iap"],"summary":"List Iap Ledger","operationId":"list_iap_ledger_api_commerce_iap_ledger_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"asset_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Asset Id"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Iap Ledger Api Commerce Iap Ledger Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/global-assets":{"get":{"tags":["Global Assets"],"summary":"List Global Assets","description":"List global assets with filtering and pagination\n\nArgs:\n    type: Asset type filter\n    project_id: Project ID filter\n    min_price: Minimum price filter\n    max_price: Maximum price filter\n    cross_project: Cross-project filter\n    sort_by: Sort field\n    page: Page number\n    page_size: Items per page\n    user: Authenticated user\n\nReturns:\n    List of global assets with pagination","operationId":"list_global_assets_api_global_assets_get","parameters":[{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by asset type","title":"Type"},"description":"Filter by asset type"},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by project ID","title":"Project Id"},"description":"Filter by project ID"},{"name":"min_price","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Minimum price in USDT","title":"Min Price"},"description":"Minimum price in USDT"},{"name":"max_price","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Maximum price in USDT","title":"Max Price"},"description":"Maximum price in USDT"},{"name":"cross_project","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter by cross-project availability","title":"Cross Project"},"description":"Filter by cross-project availability"},{"name":"sort_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Sort by: price, popularity, volume, rating","default":"price","title":"Sort By"},"description":"Sort by: price, popularity, volume, rating"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Items per page","default":20,"title":"Page Size"},"description":"Items per page"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/global-assets/{namespace}":{"get":{"tags":["Global Assets"],"summary":"Get Global Asset","description":"Get global asset by namespace\n\nArgs:\n    namespace: Asset namespace \"project_id:asset_id\"\n    user: Authenticated user\n\nReturns:\n    Global asset card","operationId":"get_global_asset_api_global_assets__namespace__get","parameters":[{"name":"namespace","in":"path","required":true,"schema":{"type":"string","description":"Asset namespace: project_id:asset_id","title":"Namespace"},"description":"Asset namespace: project_id:asset_id"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/global-assets/projects/{project_id}/local-assets":{"get":{"tags":["Global Assets"],"summary":"Get Local Assets","description":"Get local assets for a project\n\nArgs:\n    project_id: Project ID\n    user: Authenticated user\n\nReturns:\n    List of local asset cards","operationId":"get_local_assets_api_global_assets_projects__project_id__local_assets_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/global-assets/sync/{project_id}":{"post":{"tags":["Global Assets"],"summary":"Sync Project","description":"Force sync assets from a project\n\nArgs:\n    project_id: Project ID\n    user: Authenticated user\n\nReturns:\n    Sync result","operationId":"sync_project_api_global_assets_sync__project_id__post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/global-assets/sync-all":{"post":{"tags":["Global Assets"],"summary":"Sync All Projects","description":"Force sync all active projects\n\nArgs:\n    user: Authenticated user\n\nReturns:\n    Sync results","operationId":"sync_all_projects_api_global_assets_sync_all_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/projects/{pid}/ecosystem/manifest":{"get":{"tags":["Ecosystem"],"summary":"Get project channel manifest","description":"Returns the published channels manifest for a project.  OPEN channels are visible to anyone.  GRANTED/SYSTEM_ONLY channels are also listed so that other projects can discover and request access.","operationId":"get_manifest_api_projects__pid__ecosystem_manifest_get","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"integer","description":"Project ID whose manifest to fetch","title":"Pid"},"description":"Project ID whose manifest to fetch"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{pid}/ecosystem/channels":{"put":{"tags":["Ecosystem"],"summary":"Update published channels manifest","description":"Replace or merge the project's published_channels declaration.  Requires caller to be the owning project or project_id=1 (ecosystem admin).  Writes data.ecosystem.published_channels and invalidates ChannelRegistry.","operationId":"update_channels_api_projects__pid__ecosystem_channels_put","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"integer","description":"Owning project ID","title":"Pid"},"description":"Owning project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{pid}/ecosystem/channels/{event_type}/grant/{sub_pid}":{"post":{"tags":["Ecosystem"],"summary":"Grant channel access to a subscriber project","description":"Grants project sub_pid permission to subscribe to the given channel.  Updates data.ecosystem.channel_grants and the in-memory PermissionCache.","operationId":"grant_access_api_projects__pid__ecosystem_channels__event_type__grant__sub_pid__post","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"integer","description":"Owning project ID","title":"Pid"},"description":"Owning project ID"},{"name":"event_type","in":"path","required":true,"schema":{"type":"string","description":"Channel event type, e.g. 'order.placed'","title":"Event Type"},"description":"Channel event type, e.g. 'order.placed'"},{"name":"sub_pid","in":"path","required":true,"schema":{"type":"integer","description":"Subscriber project ID","title":"Sub Pid"},"description":"Subscriber project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Ecosystem"],"summary":"Revoke channel access from a subscriber project","operationId":"revoke_access_api_projects__pid__ecosystem_channels__event_type__grant__sub_pid__delete","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"integer","description":"Owning project ID","title":"Pid"},"description":"Owning project ID"},{"name":"event_type","in":"path","required":true,"schema":{"type":"string","description":"Channel event type","title":"Event Type"},"description":"Channel event type"},{"name":"sub_pid","in":"path","required":true,"schema":{"type":"integer","description":"Subscriber project ID","title":"Sub Pid"},"description":"Subscriber project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{pid}/ecosystem/connections":{"get":{"tags":["Ecosystem"],"summary":"View ecosystem connections for a project","description":"Returns both directions: subscribers (who subscribed to this project's channels) and publishing_to (which channels this project receives from others).","operationId":"get_connections_api_projects__pid__ecosystem_connections_get","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Pid"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{pid}/ecosystem/channels/{event_type}/request":{"post":{"tags":["Ecosystem"],"summary":"Request access to a channel","description":"Creates a pending access request in the owner project's data.ecosystem.access_requests.  The owner approves by calling the grant endpoint.","operationId":"request_access_api_projects__pid__ecosystem_channels__event_type__request_post","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"integer","description":"Owner project ID","title":"Pid"},"description":"Owner project ID"},{"name":"event_type","in":"path","required":true,"schema":{"type":"string","description":"Channel event type to request","title":"Event Type"},"description":"Channel event type to request"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"default":{},"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/invoices":{"post":{"tags":["Invoices"],"summary":"Create Invoice","description":"Создание инвойса\n\nBody:\n    - type: payment | transfer | exchange\n    - to_user_id: ID получателя\n    - to_wallet_id: ID кошелька получателя\n    - amount: Сумма (decimal string)\n    - currency: Валюта\n    - description: Описание\n    - expires_days: Количество дней до истечения (по умолчанию 7)\n    - from_wallet_id: ID кошелька отправителя (для transfer)\n    - items: Элементы обмена (для exchange)\n    - exchange_rate: Курс обмена (для exchange, опционально)","operationId":"create_invoice_api_invoices_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInvoiceBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"},"get":{"tags":["Invoices"],"summary":"Get Invoices","description":"Получение списка инвойсов пользователя\n\nQuery params:\n    - status: pending | processing | paid | rejected | expired | cancelled\n    - type: payment | transfer | exchange","operationId":"get_invoices_api_invoices_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status","title":"Status"},"description":"Filter by status"},{"name":"type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by type","title":"Type"},"description":"Filter by type"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/invoices/exchange-rates":{"get":{"tags":["Invoices"],"summary":"Get Exchange Rates","description":"Получение курсов обмена из config по контексту project_id/user_id (одна сущность).","operationId":"get_exchange_rates_api_invoices_exchange_rates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/invoices/{invoice_id}":{"get":{"tags":["Invoices"],"summary":"Get Invoice","description":"Получение деталей инвойса","operationId":"get_invoice_api_invoices__invoice_id__get","parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","description":"Invoice ID","title":"Invoice Id"},"description":"Invoice ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Invoices"],"summary":"Delete Invoice","description":"Удаление отклоненного инвойса. Только to_user или from_user.","operationId":"delete_invoice_api_invoices__invoice_id__delete","parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","description":"Invoice ID","title":"Invoice Id"},"description":"Invoice ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/invoices/{invoice_id}/pay":{"post":{"tags":["Invoices"],"summary":"Pay Invoice","description":"Оплата инвойса. Только payer (to_user или from_user) может оплатить.\n\nBody (опционально):\n    - wallet_id: ID кошелька для оплаты","operationId":"pay_invoice_api_invoices__invoice_id__pay_post","parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","description":"Invoice ID","title":"Invoice Id"},"description":"Invoice ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayInvoiceBody","default":{}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/invoices/{invoice_id}/reject":{"post":{"tags":["Invoices"],"summary":"Reject Invoice","description":"Отклонение инвойса. Только to_user (получатель) может отклонить.","operationId":"reject_invoice_api_invoices__invoice_id__reject_post","parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","description":"Invoice ID","title":"Invoice Id"},"description":"Invoice ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/invoices/{invoice_id}/void":{"post":{"tags":["Invoices"],"summary":"Void Invoice","description":"Void a paid invoice (creator only). Reverses wallet transfer and analytics rc.","operationId":"void_invoice_api_invoices__invoice_id__void_post","parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","description":"Invoice ID","title":"Invoice Id"},"description":"Invoice ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/invoices/{invoice_id}/check":{"get":{"tags":["Invoices"],"summary":"Check Invoice Payment","description":"Проверка оплаты инвойса (для продавца). Только to_user (issuer) может проверить.","operationId":"check_invoice_payment_api_invoices__invoice_id__check_get","parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","description":"Invoice ID","title":"Invoice Id"},"description":"Invoice ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/invoices/exchange":{"post":{"tags":["Invoices"],"summary":"Create Exchange Invoice","description":"Создание инвойса на обмен ресурсов\n\nBody:\n    - items: [{\"resource_type\": \"WOOD\", \"quantity\": \"100\"}]\n    - to_currency: Валюта получения (например, \"GAME_GOLD\")\n    - to_wallet_id: ID кошелька получателя\n    - from_wallet_id: ID кошелька отправителя (опционально)\n    - exchange_rate: Курс обмена (опционально)\n    - description: Описание","operationId":"create_exchange_invoice_api_invoices_exchange_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Exchange Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/invoices/expire":{"post":{"tags":["Invoices"],"summary":"Expire Invoices","description":"Автоматическое истечение инвойсов. Доступно только ecosystem admin или scheduler.\nВызывается по расписанию для истечения просроченных инвойсов.","operationId":"expire_invoices_api_invoices_expire_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/permissions/check/project/{project_id}":{"post":{"tags":["Permissions"],"summary":"Check Project Access","description":"Unified project access check","operationId":"check_project_access_api_permissions_check_project__project_id__post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Permission check data","title":"Request Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/permissions/check/wallet/{wallet_id}":{"post":{"tags":["Permissions"],"summary":"Check Wallet Access","description":"Check wallet operation access","operationId":"check_wallet_access_api_permissions_check_wallet__wallet_id__post","parameters":[{"name":"wallet_id","in":"path","required":true,"schema":{"type":"string","description":"Wallet ID","title":"Wallet Id"},"description":"Wallet ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Permission check data","title":"Request Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/permissions/check/api-key/{project_id}":{"post":{"tags":["Permissions"],"summary":"Check Api Key Access","description":"Check API key operation access","operationId":"check_api_key_access_api_permissions_check_api_key__project_id__post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Permission check data","title":"Request Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/permissions/check/scheduler/{project_id}":{"post":{"tags":["Permissions"],"summary":"Check Scheduler Access","description":"Check scheduler operation access","operationId":"check_scheduler_access_api_permissions_check_scheduler__project_id__post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Permission check data","title":"Request Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/permissions/check/billing/{project_id}":{"post":{"tags":["Permissions"],"summary":"Check Billing Access","description":"Check billing operation access","operationId":"check_billing_access_api_permissions_check_billing__project_id__post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Permission check data","title":"Request Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/permissions/check/notification/{project_id}":{"post":{"tags":["Permissions"],"summary":"Check Notification Access","description":"Check notification operation access","operationId":"check_notification_access_api_permissions_check_notification__project_id__post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Permission check data","title":"Request Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/permissions/check/analytics/{project_id}":{"post":{"tags":["Permissions"],"summary":"Check Analytics Access","description":"Check analytics operation access","operationId":"check_analytics_access_api_permissions_check_analytics__project_id__post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Permission check data","title":"Request Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sandbox/fork":{"post":{"tags":["Sandbox"],"summary":"Fork Project","description":"Fork a production project into a new sandbox generation.","operationId":"fork_project_api_sandbox_fork_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ForkRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sandbox/checkpoint":{"post":{"tags":["Sandbox"],"summary":"Create Checkpoint","description":"Materialise the resolved generation chain as a checkpoint entity.","operationId":"create_checkpoint_api_sandbox_checkpoint_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckpointRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sandbox/promote":{"post":{"tags":["Sandbox"],"summary":"Promote Environment","description":"Promote a sandbox generation to production (creates PromotionRequest).","operationId":"promote_environment_api_sandbox_promote_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoteRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sandbox/promote/{req_id}/approve":{"post":{"tags":["Sandbox"],"summary":"Approve Promotion","description":"Approve a PromotionRequest (enterprise: required approvers).","operationId":"approve_promotion_api_sandbox_promote__req_id__approve_post","parameters":[{"name":"req_id","in":"path","required":true,"schema":{"type":"string","title":"Req Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sandbox/rollout/advance":{"post":{"tags":["Sandbox"],"summary":"Advance Canary","description":"Advance to the next canary rollout step.","operationId":"advance_canary_api_sandbox_rollout_advance_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RolloutAdvanceRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sandbox/rollout/abort":{"post":{"tags":["Sandbox"],"summary":"Abort Canary","description":"Abort canary — set traffic_weight=0, preserve history.","operationId":"abort_canary_api_sandbox_rollout_abort_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RolloutAdvanceRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sandbox/rollback":{"post":{"tags":["Sandbox"],"summary":"Rollback","description":"Create a new diff-child from a checkpoint (rollback point).","operationId":"rollback_api_sandbox_rollback_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RollbackRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sandbox/pin":{"post":{"tags":["Sandbox"],"summary":"Pin Snapshot","description":"Pin an immutable snapshot UUID for sharing review links (HGT/Vercel).","operationId":"pin_snapshot_api_sandbox_pin_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RolloutAdvanceRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sandbox/environment":{"delete":{"tags":["Sandbox"],"summary":"Cleanup Environment","description":"Delete an environment and all its generation entities.","operationId":"cleanup_environment_api_sandbox_environment_delete","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CleanupRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sandbox/limits":{"get":{"tags":["Sandbox"],"summary":"Get Sandbox Limits","description":"Subscription limits + usage counters for sandbox UI.","operationId":"get_sandbox_limits_api_sandbox_limits_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sandbox/hosting/release":{"post":{"tags":["Sandbox"],"summary":"Sandbox Hosting Release","description":"Snapshot live hosting workspace into an immutable release labeled with sandbox gen.\n\nDoes **not** swap canonical ``/s/{pid}/{name}/`` — use ``POST /api/hosting/releases/{uuid}/promote``.\nOptionally refreshes ``{name}-preview`` for safe review.","operationId":"sandbox_hosting_release_api_sandbox_hosting_release_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHostingReleaseRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sandbox/environment/config":{"patch":{"tags":["Sandbox"],"summary":"Patch Environment Config","description":"Patch environment anchor config (shadow_writes, rollout_steps, env_name).","operationId":"patch_environment_config_api_sandbox_environment_config_patch","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnchorConfigPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sandbox/environments":{"get":{"tags":["Sandbox"],"summary":"List Environments","description":"List all environment anchors for a project.","operationId":"list_environments_api_sandbox_environments_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sandbox/diff":{"get":{"tags":["Sandbox"],"summary":"Get Diff","description":"Return JSON diff between two generation entity states.","operationId":"get_diff_api_sandbox_diff_get","parameters":[{"name":"uuid_a","in":"query","required":true,"schema":{"type":"string","title":"Uuid A"}},{"name":"uuid_b","in":"query","required":true,"schema":{"type":"string","title":"Uuid B"}},{"name":"table","in":"query","required":false,"schema":{"type":"string","default":"data_projects_8dna","title":"Table"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sandbox/tree":{"get":{"tags":["Sandbox"],"summary":"Get Generation Tree","description":"Return the full descendant tree for UI Generation Tree component.","operationId":"get_generation_tree_api_sandbox_tree_get","parameters":[{"name":"root_uuid","in":"query","required":true,"schema":{"type":"string","title":"Root Uuid"}},{"name":"table","in":"query","required":false,"schema":{"type":"string","default":"data_projects_8dna","title":"Table"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sandbox/protected-check":{"post":{"tags":["Sandbox"],"summary":"Protected Check","description":"Hash-verify a value against a protected field without exposing the secret.\nReturns {match: bool} only — secret never leaves the server.","operationId":"protected_check_api_sandbox_protected_check_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProtectedCheckRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sandbox/ab-test":{"post":{"tags":["Sandbox"],"summary":"Create Ab Test","description":"Create a new AB test between two environments.","operationId":"create_ab_test_api_sandbox_ab_test_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ABTestRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sandbox/ab-test/{test_id}/metrics":{"get":{"tags":["Sandbox"],"summary":"Get Ab Metrics","description":"Get live AB test metrics (event counts, conversion rates per variant).","operationId":"get_ab_metrics_api_sandbox_ab_test__test_id__metrics_get","parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"string","title":"Test Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sandbox/ab-test/{test_id}/promote":{"post":{"tags":["Sandbox"],"summary":"Promote Ab Winner","description":"Promote the winning AB variant to production.","operationId":"promote_ab_winner_api_sandbox_ab_test__test_id__promote_post","parameters":[{"name":"test_id","in":"path","required":true,"schema":{"type":"string","title":"Test Id"}},{"name":"winner","in":"query","required":true,"schema":{"type":"string","pattern":"^[AB]$","title":"Winner"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/sandbox/segments":{"get":{"tags":["Sandbox"],"summary":"List Segments","description":"List reusable targeting segments for a project.","operationId":"list_segments_api_sandbox_segments_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Sandbox"],"summary":"Create Segment","description":"Create or update a reusable targeting segment.","operationId":"create_segment_api_sandbox_segments_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SegmentRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/generations/{project_id}/status":{"get":{"tags":["AI Builder"],"summary":"Generation Status","description":"Lightweight generation + canary status for UI banners.","operationId":"generation_status_api_generations__project_id__status_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Generation Status Api Generations  Project Id  Status Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/generations/{project_id}":{"get":{"tags":["AI Builder"],"summary":"List Generations State","operationId":"list_generations_state_api_generations__project_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Generations State Api Generations  Project Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/generations/{project_id}/queue":{"get":{"tags":["AI Builder"],"summary":"Promotion Queue","operationId":"promotion_queue_api_generations__project_id__queue_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Promotion Queue Api Generations  Project Id  Queue Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/generations/{project_id}/gates/{env_uuid}":{"get":{"tags":["AI Builder"],"summary":"Get Gates For Environment","description":"Return current gate evaluation for one environment (read-only).","operationId":"get_gates_for_environment_api_generations__project_id__gates__env_uuid__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"env_uuid","in":"path","required":true,"schema":{"type":"string","title":"Env Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Gates For Environment Api Generations  Project Id  Gates  Env Uuid  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/generations/{project_id}/gates/run":{"post":{"tags":["AI Builder"],"summary":"Run Gates Endpoint","operationId":"run_gates_endpoint_api_generations__project_id__gates_run_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatesRunBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Run Gates Endpoint Api Generations  Project Id  Gates Run Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/generations/{project_id}/approve":{"post":{"tags":["AI Builder"],"summary":"Approve Generation Manual","operationId":"approve_generation_manual_api_generations__project_id__approve_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GatesRunBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Approve Generation Manual Api Generations  Project Id  Approve Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/generations/{project_id}/settings":{"patch":{"tags":["AI Builder"],"summary":"Patch Generation Settings","operationId":"patch_generation_settings_api_generations__project_id__settings_patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerationSettingsPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Patch Generation Settings Api Generations  Project Id  Settings Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"get":{"tags":["AI Builder"],"summary":"Get Generation Settings","operationId":"get_generation_settings_api_generations__project_id__settings_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Generation Settings Api Generations  Project Id  Settings Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/generations/{project_id}/timeline":{"get":{"tags":["AI Builder"],"summary":"Generation Timeline","operationId":"generation_timeline_api_generations__project_id__timeline_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Generation Timeline Api Generations  Project Id  Timeline Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/generations/{project_id}/notify":{"post":{"tags":["AI Builder"],"summary":"Notify Stub","description":"Manual notify: webhooks + audit log + optional in-app notification.","operationId":"notify_stub_api_generations__project_id__notify_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotifyBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Notify Stub Api Generations  Project Id  Notify Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/generations/{project_id}/diff-vs-prod":{"get":{"tags":["AI Builder"],"summary":"Generation Diff Vs Prod Endpoint","description":"Production head vs sandbox head diff + agent_context summary.","operationId":"generation_diff_vs_prod_endpoint_api_generations__project_id__diff_vs_prod_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"env_uuid","in":"query","required":true,"schema":{"type":"string","title":"Env Uuid"}},{"name":"path_prefixes","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path Prefixes"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Generation Diff Vs Prod Endpoint Api Generations  Project Id  Diff Vs Prod Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/generations/{project_id}/realign-to-prod":{"post":{"tags":["AI Builder"],"summary":"Generation Realign To Prod Endpoint","description":"Clear sandbox diff fields toward stable production (leaf writes only).","operationId":"generation_realign_to_prod_endpoint_api_generations__project_id__realign_to_prod_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RealignBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Generation Realign To Prod Endpoint Api Generations  Project Id  Realign To Prod Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/generations/{project_id}/checkpoint":{"post":{"tags":["AI Builder"],"summary":"Generation Checkpoint Endpoint","description":"Materialise merged DNA into a checkpoint generation (rollback SoT).","operationId":"generation_checkpoint_endpoint_api_generations__project_id__checkpoint_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckpointBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Generation Checkpoint Endpoint Api Generations  Project Id  Checkpoint Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/generations/{project_id}/rollback":{"post":{"tags":["AI Builder"],"summary":"Generation Rollback Endpoint","description":"Open checkpoint as draft sandbox; promote rollback_uuid to restore production.","operationId":"generation_rollback_endpoint_api_generations__project_id__rollback_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RollbackBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Generation Rollback Endpoint Api Generations  Project Id  Rollback Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/dna/lineage/{table}/{node_uuid}":{"get":{"tags":["8DNA API"],"summary":"Get Lineage","description":"Return ancestor or descendant nodes for an 8DNA row.","operationId":"get_lineage_api_dna_lineage__table___node_uuid__get","parameters":[{"name":"table","in":"path","required":true,"schema":{"type":"string","title":"Table"}},{"name":"node_uuid","in":"path","required":true,"schema":{"type":"string","title":"Node Uuid"}},{"name":"direction","in":"query","required":false,"schema":{"enum":["ancestors","descendants"],"type":"string","default":"ancestors","title":"Direction"}},{"name":"max_depth","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Max Depth"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Lineage Api Dna Lineage  Table   Node Uuid  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/settings/ecosystem-merge":{"get":{"tags":["Projects"],"summary":"Get Ecosystem Merge Settings","operationId":"get_ecosystem_merge_settings_api_projects__project_id__settings_ecosystem_merge_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Ecosystem Merge Settings Api Projects  Project Id  Settings Ecosystem Merge Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"patch":{"tags":["Projects"],"summary":"Patch Ecosystem Merge Settings","operationId":"patch_ecosystem_merge_settings_api_projects__project_id__settings_ecosystem_merge_patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EcosystemMergePatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Patch Ecosystem Merge Settings Api Projects  Project Id  Settings Ecosystem Merge Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/settings/audit-log":{"get":{"tags":["Projects"],"summary":"Get Project Settings Audit Log","description":"Owner/admin settings change history (8DNA ``config.settings_audit``).","operationId":"get_project_settings_audit_log_api_projects__project_id__settings_audit_log_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Project Settings Audit Log Api Projects  Project Id  Settings Audit Log Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/sandbox/{anchor_uuid}/inject-balance":{"post":{"tags":["Payments"],"summary":"Inject Balance","description":"Set a test balance on the sandbox wallet before running scenarios.\nDoes not write a transaction event — it's purely a setup action.","operationId":"inject_balance_api_payments_sandbox__anchor_uuid__inject_balance_post","parameters":[{"name":"anchor_uuid","in":"path","required":true,"schema":{"type":"string","description":"Sandbox environment anchor UUID","title":"Anchor Uuid"},"description":"Sandbox environment anchor UUID"},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InjectBalanceRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/sandbox/{anchor_uuid}/simulate":{"post":{"tags":["Payments"],"summary":"Simulate Scenario","description":"Run a single payment simulation scenario inside the sandbox.\n\nScenario values:\n- **top_up** — money arrives on project wallet\n- **sale** — buyer purchases; project wallet credited\n- **subscription** — subscription activated for user\n- **energy_pack** — energy granted to user\n- **refund** — money returned; wallet debited\n- **failed** — payment rejected (no balance change)","operationId":"simulate_scenario_api_payments_sandbox__anchor_uuid__simulate_post","parameters":[{"name":"anchor_uuid","in":"path","required":true,"schema":{"type":"string","title":"Anchor Uuid"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimulateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/sandbox/{anchor_uuid}/playbook":{"post":{"tags":["Payments"],"summary":"Run Playbook","description":"Run a named multi-step playbook (e.g. happy_path, refund_flow).\nReturns step-by-step event log.","operationId":"run_playbook_api_payments_sandbox__anchor_uuid__playbook_post","parameters":[{"name":"anchor_uuid","in":"path","required":true,"schema":{"type":"string","title":"Anchor Uuid"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaybookRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/sandbox/{anchor_uuid}/webhook-replay":{"post":{"tags":["Payments"],"summary":"Webhook Replay","description":"POST a mock webhook payload to the developer's webhook endpoint.\nLogs the delivery status and response.","operationId":"webhook_replay_api_payments_sandbox__anchor_uuid__webhook_replay_post","parameters":[{"name":"anchor_uuid","in":"path","required":true,"schema":{"type":"string","title":"Anchor Uuid"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookReplayRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/sandbox/{anchor_uuid}/events":{"get":{"tags":["Payments"],"summary":"Get Sandbox Events","description":"List all transaction events in this sandbox (tagged with anchor_uuid).\nSorted newest first.","operationId":"get_sandbox_events_api_payments_sandbox__anchor_uuid__events_get","parameters":[{"name":"anchor_uuid","in":"path","required":true,"schema":{"type":"string","title":"Anchor Uuid"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project 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"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/sandbox/{anchor_uuid}/balance":{"get":{"tags":["Payments"],"summary":"Get Sandbox Balance","description":"Return current sandbox wallet balances compared to production baseline.","operationId":"get_sandbox_balance_api_payments_sandbox__anchor_uuid__balance_get","parameters":[{"name":"anchor_uuid","in":"path","required":true,"schema":{"type":"string","title":"Anchor Uuid"}},{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/payments/sandbox/playbooks":{"get":{"tags":["Payments"],"summary":"List Playbooks","description":"List all available built-in playbooks with step descriptions.","operationId":"list_playbooks_api_payments_sandbox_playbooks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/orchestrator":{"get":{"tags":["project-orchestrator"],"summary":"Get Project Orchestrator","operationId":"get_project_orchestrator_api_projects__project_id__orchestrator_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"include_analytics","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Analytics"}},{"name":"include_execution_eligibility","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Execution Eligibility"}},{"name":"compact","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Compact"}},{"name":"include_counters","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Counters"}},{"name":"node_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Node Id"}},{"name":"max_depth","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":32,"minimum":0},{"type":"null"}],"title":"Max Depth"}},{"name":"hops","in":"query","required":false,"schema":{"type":"integer","maximum":3,"minimum":0,"default":0,"title":"Hops"}},{"name":"view","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"View"}},{"name":"detail","in":"query","required":false,"schema":{"type":"string","maxLength":16,"default":"compact","title":"Detail"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Status"}},{"name":"parent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Parent Id"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Q"}},{"name":"tag","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Tag"}},{"name":"due_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Due Before"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":20,"title":"Limit"}},{"name":"include_edges","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Edges"}},{"name":"include_claimable","in":"query","required":false,"schema":{"type":"boolean","description":"When false, omit fleet-heavy plan_claim preview (structural only).","default":true,"title":"Include Claimable"},"description":"When false, omit fleet-heavy plan_claim preview (structural only)."},{"name":"include_diagnostics","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Diagnostics"}},{"name":"env_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Env Uuid"}},{"name":"home","in":"query","required":false,"schema":{"type":"string","maxLength":32,"default":"project","title":"Home"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrchestratorGetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"agents.plan_get","x-capability-id":"agents.plan_get"},"patch":{"tags":["project-orchestrator"],"summary":"Patch Project Orchestrator","operationId":"patch_project_orchestrator_api_projects__project_id__orchestrator_patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrchestratorPatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/orchestrator/thread":{"get":{"tags":["project-orchestrator"],"summary":"Get Project Orchestrator Thread","description":"Workspace conversation turns — not scoped by plan-graph ``home`` (copilot thread cache).","operationId":"get_project_orchestrator_thread_api_projects__project_id__orchestrator_thread_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":40,"title":"Limit"}},{"name":"conversation_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"}},{"name":"before_index","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Before Index"}},{"name":"env_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Env Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/orchestrator/plan/ops":{"post":{"tags":["project-orchestrator"],"summary":"Post Project Plan Ops","description":"Apply sparse plan ops; returns revision + changed[] (MCP plan_patch parity).","operationId":"post_project_plan_ops_api_projects__project_id__orchestrator_plan_ops_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanOpsBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanOpsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"agents.plan_patch","x-capability-id":"agents.plan_patch"}},"/api/projects/{project_id}/orchestrator/work-next":{"get":{"tags":["project-orchestrator"],"summary":"Get Project Work Next","description":"Read-only work_next packet (MCP ``agents.work_next`` parity, no claim).","operationId":"get_project_work_next_api_projects__project_id__orchestrator_work_next_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"goal_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Goal Id"}},{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Agent Id"}},{"name":"node_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Node Id"}},{"name":"focus_node_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Focus Node Id"}},{"name":"handoff","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Handoff"}},{"name":"detail","in":"query","required":false,"schema":{"type":"string","maxLength":16,"default":"compact","title":"Detail"}},{"name":"expand","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Expand"}},{"name":"home","in":"query","required":false,"schema":{"type":"string","maxLength":32,"default":"project","title":"Home"}},{"name":"env_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Env Uuid"}},{"name":"locale","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Locale"}},{"name":"blocked_cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Blocked Cursor"}},{"name":"blocked_limit","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":50,"minimum":1},{"type":"null"}],"title":"Blocked Limit"}},{"name":"workflow_run_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Workflow Run Id"}},{"name":"include_generation_pending","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Generation Pending"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"agents.work_next","x-capability-id":"agents.work_next"},"post":{"tags":["project-orchestrator"],"summary":"Post Project Work Next","description":"work_next with optional claim (MCP ``agents.work_next`` when claim=true).","operationId":"post_project_work_next_api_projects__project_id__orchestrator_work_next_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkNextPostBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/orchestrator/run":{"post":{"tags":["project-orchestrator"],"summary":"Run Project Orchestrator","operationId":"run_project_orchestrator_api_projects__project_id__orchestrator_run_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrchestratorRunBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/orchestrator/plan/refresh-affinities":{"post":{"tags":["project-orchestrator"],"summary":"Refresh Plan Affinities Endpoint","operationId":"refresh_plan_affinities_endpoint_api_projects__project_id__orchestrator_plan_refresh_affinities_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanRefreshAffinitiesBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/orchestrator/plan/agent/{agent_id}/refresh-affinities":{"post":{"tags":["project-orchestrator"],"summary":"Refresh Agent Plan Affinities Endpoint","operationId":"refresh_agent_plan_affinities_endpoint_api_projects__project_id__orchestrator_plan_agent__agent_id__refresh_affinities_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"Agent Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanRefreshAffinitiesBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/orchestrator/plan/suggest-draft":{"post":{"tags":["project-orchestrator"],"summary":"Suggest Plan Draft Endpoint","operationId":"suggest_plan_draft_endpoint_api_projects__project_id__orchestrator_plan_suggest_draft_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanSuggestDraftBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/orchestrator/plan/suggest-tree-draft":{"post":{"tags":["project-orchestrator"],"summary":"Suggest Plan Tree Draft Endpoint","description":"Read-only nested plan tree draft — no DNA write.","operationId":"suggest_plan_tree_draft_endpoint_api_projects__project_id__orchestrator_plan_suggest_tree_draft_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanSuggestTreeDraftBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/orchestrator/plan/agent/{agent_id}":{"get":{"tags":["project-orchestrator"],"summary":"Get Agent Plan Graph Endpoint","operationId":"get_agent_plan_graph_endpoint_api_projects__project_id__orchestrator_plan_agent__agent_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"Agent Id"}},{"name":"compact","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Compact"}},{"name":"include_execution_eligibility","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Execution Eligibility"}},{"name":"node_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Node Id"}},{"name":"max_depth","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":32,"minimum":0},{"type":"null"}],"title":"Max Depth"}},{"name":"hops","in":"query","required":false,"schema":{"type":"integer","maximum":3,"minimum":0,"default":0,"title":"Hops"}},{"name":"view","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"View"}},{"name":"detail","in":"query","required":false,"schema":{"type":"string","maxLength":16,"default":"compact","title":"Detail"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Status"}},{"name":"parent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Parent Id"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Q"}},{"name":"tag","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Tag"}},{"name":"due_before","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Due Before"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Cursor"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":20,"title":"Limit"}},{"name":"include_edges","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Include Edges"}},{"name":"env_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Env Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"patch":{"tags":["project-orchestrator"],"summary":"Patch Agent Plan Graph Endpoint","operationId":"patch_agent_plan_graph_endpoint_api_projects__project_id__orchestrator_plan_agent__agent_id__patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"Agent Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentPlanPatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/orchestrator/plan/agent/{agent_id}/propose":{"post":{"tags":["project-orchestrator"],"summary":"Plan Agent Propose Endpoint","description":"Build a validated planner proposal for an agent-scoped plan graph.","operationId":"plan_agent_propose_endpoint_api_projects__project_id__orchestrator_plan_agent__agent_id__propose_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"Agent Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanProposeBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanProposeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/orchestrator/plan/agent/{agent_id}/apply-proposal":{"post":{"tags":["project-orchestrator"],"summary":"Plan Agent Apply Proposal Endpoint","description":"Apply planner proposal to an agent-scoped plan graph with CAS.","operationId":"plan_agent_apply_proposal_endpoint_api_projects__project_id__orchestrator_plan_agent__agent_id__apply_proposal_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"title":"Agent Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanApplyProposalBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanApplyProposalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/orchestrator/plan/claim":{"post":{"tags":["project-orchestrator"],"summary":"Claim Plan Nodes Endpoint","operationId":"claim_plan_nodes_endpoint_api_projects__project_id__orchestrator_plan_claim_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanClaimBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanClaimResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"agents.plan_claim","x-capability-id":"agents.plan_claim"}},"/api/projects/{project_id}/orchestrator/plan/release":{"post":{"tags":["project-orchestrator"],"summary":"Release Plan Claim Endpoint","description":"Voluntary release of an in_progress lease (parity with agents.plan_release).","operationId":"release_plan_claim_endpoint_api_projects__project_id__orchestrator_plan_release_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanClaimBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/orchestrator/plan/reclaim-stale":{"post":{"tags":["project-orchestrator"],"summary":"Reclaim Stale Plan Claims Endpoint","description":"Return expired claim leases to ready/pending — mirrors agents.plan_reclaim_stale.","operationId":"reclaim_stale_plan_claims_endpoint_api_projects__project_id__orchestrator_plan_reclaim_stale_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"env_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Env Uuid"}},{"name":"home","in":"query","required":false,"schema":{"type":"string","maxLength":32,"default":"project","title":"Home"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/orchestrator/plan/propose":{"post":{"tags":["project-orchestrator"],"summary":"Plan Propose Endpoint","description":"Build a validated planner proposal — mirrors agents.plan_propose (no mutation).","operationId":"plan_propose_endpoint_api_projects__project_id__orchestrator_plan_propose_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanProposeBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanProposeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/orchestrator/plan/apply-proposal":{"post":{"tags":["project-orchestrator"],"summary":"Plan Apply Proposal Endpoint","description":"Apply planner proposal with CAS — mirrors agents.plan_apply_proposal.","operationId":"plan_apply_proposal_endpoint_api_projects__project_id__orchestrator_plan_apply_proposal_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanApplyProposalBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanApplyProposalResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"agents.plan_apply_proposal","x-capability-id":"agents.plan_apply_proposal"}},"/api/projects/{project_id}/orchestrator/plan/process-backlog":{"post":{"tags":["project-orchestrator"],"summary":"Process Plan Backlog Endpoint","description":"Scan decomposition backlog — mirrors agents.plan_process_backlog.","operationId":"process_plan_backlog_endpoint_api_projects__project_id__orchestrator_plan_process_backlog_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanProcessBacklogBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanProcessBacklogResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/orchestrator/export-pack":{"get":{"tags":["project-orchestrator"],"summary":"Export Orchestrator Pack Endpoint","operationId":"export_orchestrator_pack_endpoint_api_projects__project_id__orchestrator_export_pack_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"env_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Env Uuid"}},{"name":"home","in":"query","required":false,"schema":{"type":"string","maxLength":32,"default":"project","title":"Home"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/orchestrator/import-pack":{"post":{"tags":["project-orchestrator"],"summary":"Import Orchestrator Pack Endpoint","operationId":"import_orchestrator_pack_endpoint_api_projects__project_id__orchestrator_import_pack_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportPackBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rag/health":{"get":{"tags":["RAG"],"summary":"Rag Health","description":"Persistence mode and collection stats for the active RAG project scope.","operationId":"rag_health_api_rag_health_get","parameters":[{"name":"home_project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Override session project scope when permitted (read access).","title":"Home Project Id"},"description":"Override session project scope when permitted (read access)."}],"responses":{"200":{"description":"Persistence mode and collection stats","content":{"application/json":{"schema":{},"example":{"success":true,"persistence_mode":"cell_sqlite","project_id":42,"collections_count":2,"total_chunks":150,"integrity_issues":0}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rag/ingest-jobs/{job_id}":{"get":{"tags":["RAG"],"summary":"Rag Ingest Job Status","description":"Poll async batch ingest job status (work_queue ``rag_ingest``).","operationId":"rag_ingest_job_status_api_rag_ingest_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","description":"Work queue job id from batch ingest response","title":"Job Id"},"description":"Work queue job id from batch ingest response"},{"name":"home_project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Override session project scope when permitted (read access).","title":"Home Project Id"},"description":"Override session project scope when permitted (read access)."}],"responses":{"200":{"description":"Async batch ingest job status","content":{"application/json":{"schema":{},"example":{"success":true,"job_id":"job-abc","status":"done","done":true,"collection_id":"coll-uuid","project_id":42}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["RAG"],"summary":"Rag Ingest Job Cancel","description":"Cancel a queued or in-flight rag_ingest job (MCP parity: rag.ingest_job_cancel).","operationId":"rag_ingest_job_cancel_api_rag_ingest_jobs__job_id__delete","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","description":"Work queue job id from batch ingest response","title":"Job Id"},"description":"Work queue job id from batch ingest response"},{"name":"home_project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Override session project scope when permitted (read access).","title":"Home Project Id"},"description":"Override session project scope when permitted (read access)."},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rag/collections":{"post":{"tags":["RAG"],"summary":"Create Collection","description":"Create a new RAG knowledge base collection.","operationId":"create_collection_api_rag_collections_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CollectionCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat","x-mcp-action":"rag.collection_create","x-capability-id":"rag.collection_create"},"get":{"tags":["RAG"],"summary":"List Collections","description":"List all RAG collections for the project.","operationId":"list_collections_api_rag_collections_get","parameters":[{"name":"home_project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Override session project scope when permitted (read access).","title":"Home Project Id"},"description":"Override session project scope when permitted (read access)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rag/collections/{collection_id}":{"get":{"tags":["RAG"],"summary":"Get Collection","description":"Get one RAG collection (verify-after-write read model; MCP parity).","operationId":"get_collection_api_rag_collections__collection_id__get","parameters":[{"name":"collection_id","in":"path","required":true,"schema":{"type":"string","description":"Collection UUID","title":"Collection Id"},"description":"Collection UUID"},{"name":"home_project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Override session project scope when permitted (read access).","title":"Home Project Id"},"description":"Override session project scope when permitted (read access)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["RAG"],"summary":"Delete Collection","description":"Delete a collection and all its documents.","operationId":"delete_collection_api_rag_collections__collection_id__delete","parameters":[{"name":"collection_id","in":"path","required":true,"schema":{"type":"string","description":"Collection UUID","title":"Collection Id"},"description":"Collection UUID"},{"name":"home_project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Override session project scope when permitted (read access).","title":"Home Project Id"},"description":"Override session project scope when permitted (read access)."},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rag/collections/{collection_id}/documents":{"post":{"tags":["RAG"],"summary":"Add Document","description":"Add a document to a collection (auto-chunked, embedded, TQ-compressed).","operationId":"add_document_api_rag_collections__collection_id__documents_post","parameters":[{"name":"collection_id","in":"path","required":true,"schema":{"type":"string","description":"Collection UUID","title":"Collection Id"},"description":"Collection UUID"},{"name":"home_project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Override session project scope when permitted (read access).","title":"Home Project Id"},"description":"Override session project scope when permitted (read access)."},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentAddRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"rag.document_add","x-capability-id":"rag.document_add"},"get":{"tags":["RAG"],"summary":"List Documents","description":"List document chunks in a collection.","operationId":"list_documents_api_rag_collections__collection_id__documents_get","parameters":[{"name":"collection_id","in":"path","required":true,"schema":{"type":"string","description":"Collection UUID","title":"Collection Id"},"description":"Collection UUID"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"default":50,"title":"Limit"}},{"name":"home_project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Override session project scope when permitted (read access).","title":"Home Project Id"},"description":"Override session project scope when permitted (read access)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rag/collections/{collection_id}/documents/batch":{"post":{"tags":["RAG"],"summary":"Add Documents Batch","description":"Batch ingest documents into a collection.","operationId":"add_documents_batch_api_rag_collections__collection_id__documents_batch_post","parameters":[{"name":"collection_id","in":"path","required":true,"schema":{"type":"string","description":"Collection UUID","title":"Collection Id"},"description":"Collection UUID"},{"name":"home_project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Override session project scope when permitted (read access).","title":"Home Project Id"},"description":"Override session project scope when permitted (read access)."},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DocumentBatchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rag/collections/{collection_id}/ingest-from-storage":{"post":{"tags":["RAG"],"summary":"Ingest From Storage","description":"Ingest text extracted from a Storage file into a collection.","operationId":"ingest_from_storage_api_rag_collections__collection_id__ingest_from_storage_post","parameters":[{"name":"collection_id","in":"path","required":true,"schema":{"type":"string","description":"Collection UUID","title":"Collection Id"},"description":"Collection UUID"},{"name":"home_project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Override session project scope when permitted (read access).","title":"Home Project Id"},"description":"Override session project scope when permitted (read access)."},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestFromStorageRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rag/collections/{collection_id}/export":{"get":{"tags":["RAG"],"summary":"Export Collection","description":"Export collection chunks as JSONL-compatible list (admin guard via project session).","operationId":"export_collection_api_rag_collections__collection_id__export_get","parameters":[{"name":"collection_id","in":"path","required":true,"schema":{"type":"string","description":"Collection UUID","title":"Collection Id"},"description":"Collection UUID"},{"name":"home_project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Override session project scope when permitted (read access).","title":"Home Project Id"},"description":"Override session project scope when permitted (read access)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rag/collections/{collection_id}/warm":{"post":{"tags":["RAG"],"summary":"Warm Collection","description":"Pre-load collection vectors into process L1 (same as first search).","operationId":"warm_collection_api_rag_collections__collection_id__warm_post","parameters":[{"name":"collection_id","in":"path","required":true,"schema":{"type":"string","description":"Collection UUID","title":"Collection Id"},"description":"Collection UUID"},{"name":"home_project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Override session project scope when permitted (read access).","title":"Home Project Id"},"description":"Override session project scope when permitted (read access)."},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rag/collections/{collection_id}/documents/{doc_id}":{"delete":{"tags":["RAG"],"summary":"Delete Document","description":"Remove a document (all chunks) from a collection.","operationId":"delete_document_api_rag_collections__collection_id__documents__doc_id__delete","parameters":[{"name":"collection_id","in":"path","required":true,"schema":{"type":"string","description":"Collection UUID","title":"Collection Id"},"description":"Collection UUID"},{"name":"doc_id","in":"path","required":true,"schema":{"type":"string","description":"Source document ID","title":"Doc Id"},"description":"Source document ID"},{"name":"home_project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Override session project scope when permitted (read access).","title":"Home Project Id"},"description":"Override session project scope when permitted (read access)."},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rag/collections/{collection_id}/search":{"post":{"tags":["RAG"],"summary":"Search Collection","description":"Semantic search over a collection.","operationId":"search_collection_api_rag_collections__collection_id__search_post","parameters":[{"name":"collection_id","in":"path","required":true,"schema":{"type":"string","description":"Collection UUID","title":"Collection Id"},"description":"Collection UUID"},{"name":"home_project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Override session project scope when permitted (read access).","title":"Home Project Id"},"description":"Override session project scope when permitted (read access)."},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"rag.search","x-capability-id":"rag.search"}},"/api/rag/memory/{session_id}/add":{"post":{"tags":["RAG"],"summary":"Memory Add","description":"Store a conversation turn in AI memory.","operationId":"memory_add_api_rag_memory__session_id__add_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session identifier","title":"Session Id"},"description":"Session identifier"},{"name":"home_project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Override session project scope when permitted (read access).","title":"Home Project Id"},"description":"Override session project scope when permitted (read access)."},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemoryAddRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rag/memory/{session_id}":{"get":{"tags":["RAG"],"summary":"Memory Get","description":"Get recent conversation turns.","operationId":"memory_get_api_rag_memory__session_id__get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session identifier","title":"Session Id"},"description":"Session identifier"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":20,"title":"Limit"}},{"name":"home_project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Override session project scope when permitted (read access).","title":"Home Project Id"},"description":"Override session project scope when permitted (read access)."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/rag/memory/{session_id}/search":{"post":{"tags":["RAG"],"summary":"Memory Search","description":"Semantic search over past conversation turns.","operationId":"memory_search_api_rag_memory__session_id__search_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","description":"Session identifier","title":"Session Id"},"description":"Session identifier"},{"name":"home_project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"Override session project scope when permitted (read access).","title":"Home Project Id"},"description":"Override session project scope when permitted (read access)."},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MemorySearchRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/context/task":{"post":{"tags":["Fabric"],"summary":"Post Context Task","description":"Return a merged ContextBundle for the authenticated principal.","operationId":"post_context_task_api_context_task_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContextTaskBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Post Context Task Api Context Task Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/capabilities/marketplace/installed":{"get":{"tags":["Capabilities","Fabric"],"summary":"List Installed Marketplace","description":"List Capability Marketplace packs installed on a project.","operationId":"list_installed_marketplace_api_capabilities_marketplace_installed_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Installed Marketplace Api Capabilities Marketplace Installed Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/capabilities/marketplace":{"get":{"tags":["Capabilities","Fabric"],"summary":"List Capability Marketplace","description":"Platform Capability Marketplace catalog (fixture SoT).","operationId":"list_capability_marketplace_api_capabilities_marketplace_get","parameters":[{"name":"consumer_project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Consumer Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Capability Marketplace Api Capabilities Marketplace Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/capabilities/marketplace/mine":{"get":{"tags":["Capabilities","Fabric"],"summary":"List My Marketplace Listings","description":"List community listings published by this project (B7).","operationId":"list_my_marketplace_listings_api_capabilities_marketplace_mine_get","parameters":[{"name":"publisher_project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Publisher Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List My Marketplace Listings Api Capabilities Marketplace Mine Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/capabilities/marketplace/publish":{"post":{"tags":["Capabilities","Fabric"],"summary":"Publish Capability Marketplace Listing","description":"Publish a community capability pack listing (B7).","operationId":"publish_capability_marketplace_listing_api_capabilities_marketplace_publish_post","parameters":[{"name":"publisher_project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Publisher Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketplacePublishRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Publish Capability Marketplace Listing Api Capabilities Marketplace Publish Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/capabilities/marketplace/{listing_id}":{"get":{"tags":["Capabilities","Fabric"],"summary":"Get Capability Marketplace Listing","operationId":"get_capability_marketplace_listing_api_capabilities_marketplace__listing_id__get","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"string","title":"Listing Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Capability Marketplace Listing Api Capabilities Marketplace  Listing Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/capabilities/marketplace/{listing_id}/install":{"post":{"tags":["Capabilities","Fabric"],"summary":"Install Capability Marketplace Listing","description":"Install a marketplace pack onto a project (idempotent per listing_id).","operationId":"install_capability_marketplace_listing_api_capabilities_marketplace__listing_id__install_post","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"string","title":"Listing Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketplaceInstallRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Install Capability Marketplace Listing Api Capabilities Marketplace  Listing Id  Install Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/capabilities/marketplace/{listing_id}/publish":{"delete":{"tags":["Capabilities","Fabric"],"summary":"Unpublish Capability Marketplace Listing","description":"Archive a community listing published by this project (B7).","operationId":"unpublish_capability_marketplace_listing_api_capabilities_marketplace__listing_id__publish_delete","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"string","title":"Listing Id"}},{"name":"publisher_project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Publisher Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Unpublish Capability Marketplace Listing Api Capabilities Marketplace  Listing Id  Publish Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/capabilities/marketplace/moderation/pending":{"get":{"tags":["Capabilities","Fabric"],"summary":"List Pending Marketplace Moderation","description":"List community listings awaiting moderation (B19, ecosystem admin).","operationId":"list_pending_marketplace_moderation_api_capabilities_marketplace_moderation_pending_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Pending Marketplace Moderation Api Capabilities Marketplace Moderation Pending Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/capabilities/marketplace/{listing_id}/approve":{"post":{"tags":["Capabilities","Fabric"],"summary":"Approve Marketplace Listing","description":"Approve a pending community listing for public catalog (B19).","operationId":"approve_marketplace_listing_api_capabilities_marketplace__listing_id__approve_post","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"string","title":"Listing Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Approve Marketplace Listing Api Capabilities Marketplace  Listing Id  Approve Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/capabilities/marketplace/{listing_id}/reject":{"post":{"tags":["Capabilities","Fabric"],"summary":"Reject Marketplace Listing","description":"Reject a pending community listing (B19).","operationId":"reject_marketplace_listing_api_capabilities_marketplace__listing_id__reject_post","parameters":[{"name":"listing_id","in":"path","required":true,"schema":{"type":"string","title":"Listing Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketplaceRejectRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Reject Marketplace Listing Api Capabilities Marketplace  Listing Id  Reject Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/capabilities/recipes":{"get":{"tags":["Capabilities","Fabric"],"summary":"List Capability Recipes","description":"List curated CapabilityRecipe fixtures projected as descriptors.","operationId":"list_capability_recipes_api_capabilities_recipes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Capability Recipes Api Capabilities Recipes Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/capabilities/recipes/{recipe_id}":{"get":{"tags":["Capabilities","Fabric"],"summary":"Get Capability Recipe","operationId":"get_capability_recipe_api_capabilities_recipes__recipe_id__get","parameters":[{"name":"recipe_id","in":"path","required":true,"schema":{"type":"string","title":"Recipe Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Capability Recipe Api Capabilities Recipes  Recipe Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/capabilities/recipes/{recipe_id}/run":{"post":{"tags":["Capabilities","Fabric"],"summary":"Run Capability Recipe Endpoint","description":"Execute a CapabilityRecipe sequentially through Guard + MCP.","operationId":"run_capability_recipe_endpoint_api_capabilities_recipes__recipe_id__run_post","parameters":[{"name":"recipe_id","in":"path","required":true,"schema":{"type":"string","title":"Recipe Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecipeRunRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Run Capability Recipe Endpoint Api Capabilities Recipes  Recipe Id  Run Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/capabilities":{"get":{"tags":["Capabilities","Fabric"],"summary":"List Capabilities","description":"Return descriptor catalog entries visible to the caller (L1 cap filtered).","operationId":"list_capabilities_api_capabilities_get","parameters":[{"name":"domain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by domain prefix","title":"Domain"},"description":"Filter by domain prefix"},{"name":"surface","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by surface (mcp, ptc, …)","title":"Surface"},"description":"Filter by surface (mcp, ptc, …)"},{"name":"effective","in":"query","required":false,"schema":{"type":"boolean","description":"Merge live @mcp_tool schema + fixture overlay (default)","default":true,"title":"Effective"},"description":"Merge live @mcp_tool schema + fixture overlay (default)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Capabilities Api Capabilities Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/capabilities/{capability_id}":{"get":{"tags":["Capabilities","Fabric"],"summary":"Get Capability","operationId":"get_capability_api_capabilities__capability_id__get","parameters":[{"name":"capability_id","in":"path","required":true,"schema":{"type":"string","title":"Capability Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Capability Api Capabilities  Capability Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/fabric/triggers":{"get":{"tags":["Fabric"],"summary":"List Trigger Bindings","description":"Return active trigger bindings (in-process registry) + vocabulary.","operationId":"list_trigger_bindings_api_fabric_triggers_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"kind","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Trigger Bindings Api Fabric Triggers Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/csp-report":{"post":{"tags":["Observability"],"summary":"Ingest Csp Report","description":"Accept browser CSP reports (`report-uri` / `report-to`).","operationId":"ingest_csp_report_api_csp_report_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Ingest Csp Report Api Csp Report Post"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/contacts":{"get":{"tags":["CRM"],"summary":"List Contacts","operationId":"list_contacts_api_projects__project_id__crm_contacts_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"per_page","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Per Page"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"lifecycle","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lifecycle"}},{"name":"owner_user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Owner User Id"}},{"name":"If-None-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-None-Match"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"crm.list_contacts","x-capability-id":"crm.list_contacts"},"post":{"tags":["CRM"],"summary":"Create Contact","operationId":"create_contact_api_projects__project_id__crm_contacts_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactCreateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Contact Api Projects  Project Id  Crm Contacts Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"crm.upsert_contact","x-capability-id":"crm.upsert_contact"}},"/api/projects/{project_id}/crm/contacts/{contact_id}/360":{"get":{"tags":["CRM"],"summary":"Contact 360","operationId":"contact_360_api_projects__project_id__crm_contacts__contact_id__360_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Contact 360 Api Projects  Project Id  Crm Contacts  Contact Id  360 Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/board":{"get":{"tags":["CRM"],"summary":"List Board","operationId":"list_board_api_projects__project_id__crm_board_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"pipeline_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pipeline Id"}},{"name":"overdue","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Overdue"}},{"name":"due_within_days","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":90,"minimum":0},{"type":"null"}],"title":"Due Within Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Board Api Projects  Project Id  Crm Board Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/hub-snapshot":{"get":{"tags":["CRM"],"summary":"Crm Hub Snapshot","description":"CFD-05d / H-04 — CRM workspace cold-open BFF (one RT).\n\nFLOW-HUB-13: index-only summary (no full contacts/board hydrate).\nFLOW-HUB-22: request-scope memo for shared CRM index reads.\n\nGenetic: ``core.crm.hub.gen1`` · ``repo.platform.perf.batch.gen1``","operationId":"crm_hub_snapshot_api_projects__project_id__crm_hub_snapshot_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Crm Hub Snapshot Api Projects  Project Id  Crm Hub Snapshot Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/deals":{"post":{"tags":["CRM"],"summary":"Create Deal","operationId":"create_deal_api_projects__project_id__crm_deals_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DealCreateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Deal Api Projects  Project Id  Crm Deals Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/deals/{deal_id}":{"patch":{"tags":["CRM"],"summary":"Update Deal","operationId":"update_deal_api_projects__project_id__crm_deals__deal_id__patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"deal_id","in":"path","required":true,"schema":{"type":"string","title":"Deal Id"}},{"name":"If-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DealPatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Deal Api Projects  Project Id  Crm Deals  Deal Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["CRM"],"summary":"Delete Deal","operationId":"delete_deal_api_projects__project_id__crm_deals__deal_id__delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"deal_id","in":"path","required":true,"schema":{"type":"string","title":"Deal Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Deal Api Projects  Project Id  Crm Deals  Deal Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/deals/{deal_id}/stage":{"patch":{"tags":["CRM"],"summary":"Move Deal Stage","operationId":"move_deal_stage_api_projects__project_id__crm_deals__deal_id__stage_patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"deal_id","in":"path","required":true,"schema":{"type":"string","title":"Deal Id"}},{"name":"If-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Match"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MoveStageBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Move Deal Stage Api Projects  Project Id  Crm Deals  Deal Id  Stage Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/deals/{deal_id}/timeline":{"get":{"tags":["CRM"],"summary":"Get Deal Timeline","operationId":"get_deal_timeline_api_projects__project_id__crm_deals__deal_id__timeline_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"deal_id","in":"path","required":true,"schema":{"type":"string","title":"Deal Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Deal Timeline Api Projects  Project Id  Crm Deals  Deal Id  Timeline Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/activities":{"post":{"tags":["CRM"],"summary":"Log Activity","operationId":"log_activity_api_projects__project_id__crm_activities_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityCreateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Log Activity Api Projects  Project Id  Crm Activities Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/quick-create/plan":{"post":{"tags":["CRM"],"summary":"Quick Create Plan","operationId":"quick_create_plan_api_projects__project_id__crm_quick_create_plan_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlanBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Quick Create Plan Api Projects  Project Id  Crm Quick Create Plan Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/quick-create/apply":{"post":{"tags":["CRM"],"summary":"Quick Create Apply","operationId":"quick_create_apply_api_projects__project_id__crm_quick_create_apply_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Quick Create Apply Api Projects  Project Id  Crm Quick Create Apply Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/ai/magic-fill":{"post":{"tags":["CRM"],"summary":"Magic Fill","operationId":"magic_fill_api_projects__project_id__crm_ai_magic_fill_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MagicFillBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Magic Fill Api Projects  Project Id  Crm Ai Magic Fill Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/search":{"get":{"tags":["CRM"],"summary":"Search Crm","operationId":"search_crm_api_projects__project_id__crm_search_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Search Crm Api Projects  Project Id  Crm Search Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/companies":{"get":{"tags":["CRM"],"summary":"List Companies","operationId":"list_companies_api_projects__project_id__crm_companies_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Companies Api Projects  Project Id  Crm Companies Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["CRM"],"summary":"Create Company","operationId":"create_company_api_projects__project_id__crm_companies_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Company Api Projects  Project Id  Crm Companies Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/custom-fields":{"get":{"tags":["CRM"],"summary":"List Custom Fields","operationId":"list_custom_fields_api_projects__project_id__crm_custom_fields_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Custom Fields Api Projects  Project Id  Crm Custom Fields Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["CRM"],"summary":"Put Custom Fields","operationId":"put_custom_fields_api_projects__project_id__crm_custom_fields_put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Put Custom Fields Api Projects  Project Id  Crm Custom Fields Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/custom-fields/schema":{"get":{"tags":["CRM"],"summary":"Custom Fields Schema","operationId":"custom_fields_schema_api_projects__project_id__crm_custom_fields_schema_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"tier","in":"query","required":false,"schema":{"type":"string","default":"advanced","title":"Tier"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Custom Fields Schema Api Projects  Project Id  Crm Custom Fields Schema Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/contacts/merge":{"post":{"tags":["CRM"],"summary":"Merge Contacts","operationId":"merge_contacts_api_projects__project_id__crm_contacts_merge_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Merge Contacts Api Projects  Project Id  Crm Contacts Merge Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/config":{"get":{"tags":["CRM"],"summary":"Get Crm Config","operationId":"get_crm_config_api_projects__project_id__crm_config_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"If-Epoch-Match","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"If-Epoch-Match"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Crm Config Api Projects  Project Id  Crm Config Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"patch":{"tags":["CRM"],"summary":"Patch Crm Config","operationId":"patch_crm_config_api_projects__project_id__crm_config_patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Patch Crm Config Api Projects  Project Id  Crm Config Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/contacts/{contact_id}/next-actions":{"get":{"tags":["CRM"],"summary":"Contact Next Actions","operationId":"contact_next_actions_api_projects__project_id__crm_contacts__contact_id__next_actions_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Contact Next Actions Api Projects  Project Id  Crm Contacts  Contact Id  Next Actions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/contacts/{contact_id}/sdr-run":{"post":{"tags":["CRM"],"summary":"Contact Sdr Run","operationId":"contact_sdr_run_api_projects__project_id__crm_contacts__contact_id__sdr_run_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Contact Sdr Run Api Projects  Project Id  Crm Contacts  Contact Id  Sdr Run Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/ai/suggest-field":{"post":{"tags":["CRM"],"summary":"Suggest Field","operationId":"suggest_field_api_projects__project_id__crm_ai_suggest_field_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Suggest Field Api Projects  Project Id  Crm Ai Suggest Field Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/contacts/{contact_id}/export":{"get":{"tags":["CRM"],"summary":"Export Contact","operationId":"export_contact_api_projects__project_id__crm_contacts__contact_id__export_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Export Contact Api Projects  Project Id  Crm Contacts  Contact Id  Export Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/contacts/{contact_id}/erase":{"post":{"tags":["CRM"],"summary":"Erase Contact","operationId":"erase_contact_api_projects__project_id__crm_contacts__contact_id__erase_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Erase Contact Api Projects  Project Id  Crm Contacts  Contact Id  Erase Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/contacts/import":{"post":{"tags":["CRM"],"summary":"Import Contacts","operationId":"import_contacts_api_projects__project_id__crm_contacts_import_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Import Contacts Api Projects  Project Id  Crm Contacts Import Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/crm/contacts/{contact_id}/rag-ingest":{"post":{"tags":["CRM"],"summary":"Ingest Contact Rag","operationId":"ingest_contact_rag_api_projects__project_id__crm_contacts__contact_id__rag_ingest_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"contact_id","in":"path","required":true,"schema":{"type":"string","title":"Contact Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Ingest Contact Rag Api Projects  Project Id  Crm Contacts  Contact Id  Rag Ingest Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/neural/status":{"get":{"tags":["Neural Architecture"],"summary":"Neural Status","description":"Get Neural Architecture status","operationId":"neural_status_api_neural_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/neural/events":{"get":{"tags":["Neural Architecture"],"summary":"Neural Events Endpoint","description":"Get Neural Events","operationId":"neural_events_endpoint_api_neural_events_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Maximum number of events to return","default":10,"title":"Limit"},"description":"Maximum number of events to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Neural Architecture"],"summary":"Trigger Neural Event","description":"Trigger Neural Event","operationId":"trigger_neural_event_api_neural_events_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Event data","title":"Event Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/neural/events/stats":{"get":{"tags":["Neural Architecture"],"summary":"Neural Events Stats","description":"Get Neural Events Statistics","operationId":"neural_events_stats_api_neural_events_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/neural/cache":{"get":{"tags":["Neural Architecture"],"summary":"Neural Cache Info","description":"Get Neural Cache Engine information","operationId":"neural_cache_info_api_neural_cache_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/neural/cache/clear":{"post":{"tags":["Neural Architecture"],"summary":"Clear Neural Cache","description":"Clear Neural Cache","operationId":"clear_neural_cache_api_neural_cache_clear_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/neural/cache/set":{"post":{"tags":["Neural Architecture"],"summary":"Neural Cache Set","description":"Set value in Neural Cache with optional tags","operationId":"neural_cache_set_api_neural_cache_set_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CacheSetRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/neural/cache/stats":{"get":{"tags":["Neural Architecture"],"summary":"Neural Cache Stats","description":"Get cache statistics. Registered before the cache-by-key route so ``stats`` is not a path param.","operationId":"neural_cache_stats_api_neural_cache_stats_get","parameters":[{"name":"cache_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cache instance name (optional, returns all if not specified)","title":"Cache Name"},"description":"Cache instance name (optional, returns all if not specified)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/neural/cache/{key}":{"get":{"tags":["Neural Architecture"],"summary":"Neural Cache Get","description":"Get value from Neural Cache","operationId":"neural_cache_get_api_neural_cache__key__get","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}},{"name":"cache_name","in":"query","required":false,"schema":{"type":"string","description":"Cache instance name","default":"default","title":"Cache Name"},"description":"Cache instance name"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Neural Architecture"],"summary":"Neural Cache Delete","description":"Delete value from Neural Cache","operationId":"neural_cache_delete_api_neural_cache__key__delete","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}},{"name":"cache_name","in":"query","required":false,"schema":{"type":"string","description":"Cache instance name","default":"default","title":"Cache Name"},"description":"Cache instance name"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/neural/cache/invalidate/tag":{"post":{"tags":["Neural Architecture"],"summary":"Neural Cache Invalidate Tag","description":"Invalidate cache entries by tag","operationId":"neural_cache_invalidate_tag_api_neural_cache_invalidate_tag_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CacheInvalidateTagRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/neural/cache/invalidate/pattern":{"post":{"tags":["Neural Architecture"],"summary":"Neural Cache Invalidate Pattern","description":"Invalidate cache entries by pattern","operationId":"neural_cache_invalidate_pattern_api_neural_cache_invalidate_pattern_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CacheInvalidatePatternRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/neural/router":{"get":{"tags":["Neural Architecture"],"summary":"Neural Router Info","description":"Get Neural Router information","operationId":"neural_router_info_api_neural_router_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/neural/router/route":{"post":{"tags":["Neural Architecture"],"summary":"Neural Route Request","description":"Route request through Neural Router","operationId":"neural_route_request_api_neural_router_route_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Route Data","description":"Route data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/neural/analyzer":{"get":{"tags":["Neural Architecture"],"summary":"Pattern Analyzer Info","description":"Get Pattern Analyzer information","operationId":"pattern_analyzer_info_api_neural_analyzer_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/neural/analyzer/analyze":{"post":{"tags":["Neural Architecture"],"summary":"Analyze Patterns","description":"Analyze patterns using Pattern Analyzer","operationId":"analyze_patterns_api_neural_analyzer_analyze_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Analysis Data","description":"Analysis data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/neural/optimizer":{"get":{"tags":["Neural Architecture"],"summary":"Auto Optimizer Info","description":"Get Auto Optimizer information","operationId":"auto_optimizer_info_api_neural_optimizer_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/neural/optimizer/optimize":{"post":{"tags":["Neural Architecture"],"summary":"Optimize System","description":"Optimize system using Auto Optimizer","operationId":"optimize_system_api_neural_optimizer_optimize_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Optimization Data","description":"Optimization data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/neural/metrics":{"get":{"tags":["Neural Architecture"],"summary":"Neural Metrics","description":"Get Neural Architecture metrics","operationId":"neural_metrics_api_neural_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/neural/reset":{"post":{"tags":["Neural Architecture"],"summary":"Reset Neural Architecture","description":"Reset Neural Architecture components","operationId":"reset_neural_architecture_api_neural_reset_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/dashboard/wallets/":{"get":{"tags":["Dashboard"],"summary":"Get Dashboard Wallets Compat","description":"Redirect to canonical wallets API. Use /api/profile/wallets or /api/user/wallet.","operationId":"get_dashboard_wallets_compat_api_dashboard_wallets__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/dashboard/schedule/":{"get":{"tags":["Dashboard"],"summary":"Get Dashboard Schedule","description":"Get schedule tasks","operationId":"get_dashboard_schedule_api_dashboard_schedule__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Dashboard"],"summary":"Create Schedule Task","description":"Create schedule task","operationId":"create_schedule_task_api_dashboard_schedule__post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Task Data","description":"Task data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/dashboard/schedule/{task_id}/execute":{"put":{"tags":["Dashboard"],"summary":"Execute Schedule Task","description":"Execute schedule task","operationId":"execute_schedule_task_api_dashboard_schedule__task_id__execute_put","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","description":"Task ID","title":"Task Id"},"description":"Task ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/dashboard/stats":{"get":{"tags":["Dashboard"],"summary":"Get Dashboard Stats","description":"Get dashboard statistics","operationId":"get_dashboard_stats_api_dashboard_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/dashboard/overview":{"get":{"tags":["Dashboard"],"summary":"Get Dashboard Overview","description":"Get dashboard overview with admin stats (unified endpoint)","operationId":"get_dashboard_overview_api_dashboard_overview_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/fabric/ops/cost":{"get":{"tags":["Fabric"],"summary":"Cost Snapshot","description":"In-process Cost Plane counters (cache hits, kernel skips, budget denials).","operationId":"cost_snapshot_api_fabric_ops_cost_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Cost Snapshot Api Fabric Ops Cost Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/fabric/ops/metrics":{"get":{"tags":["Fabric"],"summary":"Fabric Metrics Prometheus","description":"Prometheus exposition for Fabric Cost + Worker counters (P9.4).","operationId":"fabric_metrics_prometheus_api_fabric_ops_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/fabric/ops/metrics/scrape":{"get":{"tags":["Fabric"],"summary":"Fabric Metrics Prometheus Scrape","description":"Token-gated Prometheus scrape (B40).\n\nSet ``FABRIC_METRICS_SCRAPE_TOKEN`` and pass header ``X-Metrics-Token``.\nReturns 404 when the token env is unset (endpoint hidden).","operationId":"fabric_metrics_prometheus_scrape_api_fabric_ops_metrics_scrape_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/fabric/ops/metrics/json":{"get":{"tags":["Fabric"],"summary":"Fabric Metrics Json","description":"JSON snapshot of Fabric Cost + Worker counters.","operationId":"fabric_metrics_json_api_fabric_ops_metrics_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Fabric Metrics Json Api Fabric Ops Metrics Json Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/fabric/ops/workers":{"get":{"tags":["Fabric"],"summary":"Worker Snapshot","description":"In-process durable worker counters (P8.3).","operationId":"worker_snapshot_api_fabric_ops_workers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Worker Snapshot Api Fabric Ops Workers Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/fabric/ops/queues/{queue_name}/stats":{"get":{"tags":["Fabric"],"summary":"Queue Stats","description":"Best-effort work queue status counts.","operationId":"queue_stats_api_fabric_ops_queues__queue_name__stats_get","parameters":[{"name":"queue_name","in":"path","required":true,"schema":{"type":"string","title":"Queue Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Queue Stats Api Fabric Ops Queues  Queue Name  Stats Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/fabric/ops/queues":{"get":{"tags":["Fabric"],"summary":"List Queue Stats","description":"Stats for primary fabric queues + worker counters.","operationId":"list_queue_stats_api_fabric_ops_queues_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Queue Stats Api Fabric Ops Queues Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/fabric/ops/dlq":{"get":{"tags":["Fabric"],"summary":"List Dlq","description":"List recent logic durable DLQ entries.","operationId":"list_dlq_api_fabric_ops_dlq_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Dlq Api Fabric Ops Dlq Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/fabric/ops/dlq/replay":{"post":{"tags":["Fabric"],"summary":"Replay Dlq Item","description":"Re-enqueue a DLQ payload onto the primary logic durable queue.","operationId":"replay_dlq_item_api_fabric_ops_dlq_replay_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DlqReplayRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Replay Dlq Item Api Fabric Ops Dlq Replay Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/fabric/ops/dlq/replay/bulk":{"post":{"tags":["Fabric"],"summary":"Replay Dlq Bulk","description":"Re-enqueue multiple DLQ items (best-effort per item).","operationId":"replay_dlq_bulk_api_fabric_ops_dlq_replay_bulk_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DlqBulkReplayRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Replay Dlq Bulk Api Fabric Ops Dlq Replay Bulk Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/fabric/ops/notification-templates":{"get":{"tags":["Fabric"],"summary":"Fabric Notification Templates Fixture","description":"Recommended Fabric notification templates fixture (B48).","operationId":"fabric_notification_templates_fixture_api_fabric_ops_notification_templates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Fabric Notification Templates Fixture Api Fabric Ops Notification Templates Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/fabric/ops/notification-templates/import":{"post":{"tags":["Fabric"],"summary":"Fabric Notification Templates Import","description":"Merge Fabric template fixture into ``projects.config.notifications.templates`` (B48).","operationId":"fabric_notification_templates_import_api_fabric_ops_notification_templates_import_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FabricTemplatesImportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Fabric Notification Templates Import Api Fabric Ops Notification Templates Import Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/fabric/ops/notification-digest/enqueue":{"post":{"tags":["Fabric"],"summary":"Fabric Notification Digest Enqueue","description":"Cron/ops trigger: enqueue digest jobs for recipients with unread Fabric in_app rows (B66c).","operationId":"fabric_notification_digest_enqueue_api_fabric_ops_notification_digest_enqueue_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FabricDigestEnqueueRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Fabric Notification Digest Enqueue Api Fabric Ops Notification Digest Enqueue Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/fabric/ops/notification-digest/preview":{"get":{"tags":["Fabric"],"summary":"Fabric Notification Digest Preview","description":"Dry-run digest scheduling — recipient count before enqueue (B92).","operationId":"fabric_notification_digest_preview_api_fabric_ops_notification_digest_preview_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"description":"Project whose unread Fabric inbox to scan","title":"Project Id"},"description":"Project whose unread Fabric inbox to scan"},{"name":"window_hours","in":"query","required":false,"schema":{"type":"integer","maximum":168,"minimum":1,"description":"Lookback for unread rows","default":24,"title":"Window Hours"},"description":"Lookback for unread rows"},{"name":"recipient_user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"description":"When set, preview digest for this user only","title":"Recipient User Id"},"description":"When set, preview digest for this user only"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Fabric Notification Digest Preview Api Fabric Ops Notification Digest Preview Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/fabric/ops/notifications/smoke":{"post":{"tags":["Fabric"],"summary":"Fabric Notification Smoke","description":"Ops/staging smoke: send one Fabric in_app notification through the full persist + SSE path (B72-full).\n\nRequires ``FABRIC_NOTIFICATIONS_SMOKE_OPS=1`` on the server.","operationId":"fabric_notification_smoke_api_fabric_ops_notifications_smoke_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FabricNotificationSmokeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Fabric Notification Smoke Api Fabric Ops Notifications Smoke Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/fabric/ops/notifications/status":{"get":{"tags":["Fabric"],"summary":"Fabric Notifications Status","description":"Runtime notification flags, digest queue stats, pipeline counters (B86).","operationId":"fabric_notifications_status_api_fabric_ops_notifications_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Fabric Notifications Status Api Fabric Ops Notifications Status Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/cost/explorer/usage-summary":{"get":{"tags":["Analytics"],"summary":"Usage Summary","description":"Usage evidence summary — process-local first, SQL fallback.","operationId":"usage_summary_api_cost_explorer_usage_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Usage Summary Api Cost Explorer Usage Summary Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/cost/explorer/llm-platform-cogs":{"get":{"tags":["Analytics"],"summary":"Llm Platform Cogs","description":"Durable platform LLM COGS rollup (prepaid energy / ecosystem key).","operationId":"llm_platform_cogs_api_cost_explorer_llm_platform_cogs_get","parameters":[{"name":"since_days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"default":7,"title":"Since Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Llm Platform Cogs Api Cost Explorer Llm Platform Cogs Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/cost/explorer/charges":{"get":{"tags":["Analytics"],"summary":"Charges","description":"Rated charges — process-local first, SQL fallback.","operationId":"charges_api_cost_explorer_charges_get","parameters":[{"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":{"type":"object","additionalProperties":true,"title":"Response Charges Api Cost Explorer Charges Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/cost/explorer/allocation-preview":{"get":{"tags":["Analytics"],"summary":"Allocation Preview","description":"Closed-period allocation preview (uses imported FOCUS lines when present).","operationId":"allocation_preview_api_cost_explorer_allocation_preview_get","parameters":[{"name":"shared_cost_minor","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Shared Cost Minor"}},{"name":"period_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Period Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Allocation Preview Api Cost Explorer Allocation Preview Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/cost/explorer/free-path-counters":{"get":{"tags":["Analytics"],"summary":"Free Path Counters","description":"Counterfactual free-path counters (cache hit, 304, singleflight, idempotent skip).","operationId":"free_path_counters_api_cost_explorer_free_path_counters_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Free Path Counters Api Cost Explorer Free Path Counters Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/cost/explorer/focus-import":{"post":{"tags":["Analytics"],"summary":"Focus Import","description":"Import provider invoice lines (FOCUS-normalized) into period store + SQL.","operationId":"focus_import_api_cost_explorer_focus_import_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FocusImportBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Focus Import Api Cost Explorer Focus Import Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/cost/explorer/focus-lines":{"get":{"tags":["Analytics"],"summary":"Focus Lines","description":"List FOCUS lines for a billing period.","operationId":"focus_lines_api_cost_explorer_focus_lines_get","parameters":[{"name":"period_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Period Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":2000,"minimum":1,"default":500,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Focus Lines Api Cost Explorer Focus Lines Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/cost/explorer/price-book":{"get":{"tags":["Analytics"],"summary":"Price Book","description":"List in-process price book revisions (seed and/or SQL-loaded).","operationId":"price_book_api_cost_explorer_price_book_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Price Book Api Cost Explorer Price Book Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/cost/explorer/price-book/revisions":{"post":{"tags":["Analytics"],"summary":"Price Book Upsert","description":"Upsert a customer price book revision (memory + SQL best-effort).","operationId":"price_book_upsert_api_cost_explorer_price_book_revisions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PriceBookRevisionBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Price Book Upsert Api Cost Explorer Price Book Revisions Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/fabric/federation/grants":{"get":{"tags":["Fabric"],"summary":"List Federation Grants","operationId":"list_federation_grants_api_fabric_federation_grants_get","parameters":[{"name":"source_project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Source Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Federation Grants Api Fabric Federation Grants Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Fabric"],"summary":"Create Federation Grant","operationId":"create_federation_grant_api_fabric_federation_grants_post","parameters":[{"name":"source_project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Source Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FederationGrantCreateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Federation Grant Api Fabric Federation Grants Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/fabric/federation/grants/inbound":{"get":{"tags":["Fabric"],"summary":"List Inbound Federation Grants","operationId":"list_inbound_federation_grants_api_fabric_federation_grants_inbound_get","parameters":[{"name":"consumer_project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Consumer Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Inbound Federation Grants Api Fabric Federation Grants Inbound Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/fabric/federation/grants/{grant_id}/accept":{"post":{"tags":["Fabric"],"summary":"Accept Federation Grant","operationId":"accept_federation_grant_api_fabric_federation_grants__grant_id__accept_post","parameters":[{"name":"grant_id","in":"path","required":true,"schema":{"type":"string","title":"Grant Id"}},{"name":"consumer_project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Consumer Project Id"}},{"name":"source_project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Source Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Accept Federation Grant Api Fabric Federation Grants  Grant Id  Accept Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/fabric/federation/grants/{grant_id}/reject":{"post":{"tags":["Fabric"],"summary":"Reject Federation Grant","operationId":"reject_federation_grant_api_fabric_federation_grants__grant_id__reject_post","parameters":[{"name":"grant_id","in":"path","required":true,"schema":{"type":"string","title":"Grant Id"}},{"name":"consumer_project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Consumer Project Id"}},{"name":"source_project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Source Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Reject Federation Grant Api Fabric Federation Grants  Grant Id  Reject Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/fabric/federation/grants/{grant_id}":{"delete":{"tags":["Fabric"],"summary":"Revoke Federation Grant","operationId":"revoke_federation_grant_api_fabric_federation_grants__grant_id__delete","parameters":[{"name":"grant_id","in":"path","required":true,"schema":{"type":"string","title":"Grant Id"}},{"name":"source_project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Source Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Revoke Federation Grant Api Fabric Federation Grants  Grant Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/fabric/federation/webhooks":{"get":{"tags":["Fabric"],"summary":"List Federation Webhooks","operationId":"list_federation_webhooks_api_fabric_federation_webhooks_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Federation Webhooks Api Fabric Federation Webhooks Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Fabric"],"summary":"Register Federation Webhook","operationId":"register_federation_webhook_api_fabric_federation_webhooks_post","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FederationWebhookRegisterRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Register Federation Webhook Api Fabric Federation Webhooks Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/fabric/federation/webhooks/{subscription_id}":{"delete":{"tags":["Fabric"],"summary":"Delete Federation Webhook","operationId":"delete_federation_webhook_api_fabric_federation_webhooks__subscription_id__delete","parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","title":"Subscription Id"}},{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Delete Federation Webhook Api Fabric Federation Webhooks  Subscription Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/templates":{"get":{"tags":["Bots"],"summary":"List Bot Templates","operationId":"list_bot_templates_api_projects__project_id__bots_templates_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Bot Templates Api Projects  Project Id  Bots Templates Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/waba/templates":{"get":{"tags":["Bots"],"summary":"List Waba Templates","description":"WABA template catalog — builtins + optional Graph sync (TTL cache).","operationId":"list_waba_templates_api_projects__project_id__bots_waba_templates_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"connection_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connection Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Waba Templates Api Projects  Project Id  Bots Waba Templates Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots":{"get":{"tags":["Bots"],"summary":"List Project Bots","operationId":"list_project_bots_api_projects__project_id__bots_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"source","in":"query","required":false,"schema":{"type":"string","pattern":"^(ecs|dna)$","default":"ecs","title":"Source"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Project Bots Api Projects  Project Id  Bots Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"bots.list","x-capability-id":"bots.list"},"post":{"tags":["Bots"],"summary":"Create Project Bot","operationId":"create_project_bot_api_projects__project_id__bots_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBotBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Project Bot Api Projects  Project Id  Bots Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat","x-mcp-action":"bots.create","x-capability-id":"bots.create"}},"/api/projects/{project_id}/bots/fleet/diagnostics":{"get":{"tags":["Bots"],"summary":"Project Bots Fleet Diagnostics","description":"Project bots fleet health (RBAC read — mirrors agents fleet diagnostics).","operationId":"project_bots_fleet_diagnostics_api_projects__project_id__bots_fleet_diagnostics_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Project Bots Fleet Diagnostics Api Projects  Project Id  Bots Fleet Diagnostics Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/fleet/dlq":{"get":{"tags":["Bots"],"summary":"Project Bots Fleet Dlq","description":"Project-scoped bots queue DLQ rows (RBAC read).","operationId":"project_bots_fleet_dlq_api_projects__project_id__bots_fleet_dlq_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Project Bots Fleet Dlq Api Projects  Project Id  Bots Fleet Dlq Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/fleet/dlq/{item_id}/replay":{"post":{"tags":["Bots"],"summary":"Project Bots Fleet Dlq Replay","description":"Replay a project-scoped bots DLQ row.","operationId":"project_bots_fleet_dlq_replay_api_projects__project_id__bots_fleet_dlq__item_id__replay_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"item_id","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Item Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Project Bots Fleet Dlq Replay Api Projects  Project Id  Bots Fleet Dlq  Item Id  Replay Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/fleet/rebuild":{"post":{"tags":["Bots"],"summary":"Rebuild Project Bots Fleet Index","description":"Sync ECS fleet index rebuild for this project + invalidate list cache.\n\nManual Studio rebuild must complete before the next list read — enqueue-only\nleft ``bots_initialized=false`` when the worker lagged (J-16 / E-126).","operationId":"rebuild_project_bots_fleet_index_api_projects__project_id__bots_fleet_rebuild_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Rebuild Project Bots Fleet Index Api Projects  Project Id  Bots Fleet Rebuild Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/{bot_uuid}":{"get":{"tags":["Bots"],"summary":"Get Project Bot","operationId":"get_project_bot_api_projects__project_id__bots__bot_uuid__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"bot_uuid","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Bot Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Project Bot Api Projects  Project Id  Bots  Bot Uuid  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["Bots"],"summary":"Update Project Bot","operationId":"update_project_bot_api_projects__project_id__bots__bot_uuid__put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"bot_uuid","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Bot Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Spec"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Update Project Bot Api Projects  Project Id  Bots  Bot Uuid  Put"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/{bot_uuid}/attach_channel":{"post":{"tags":["Bots"],"summary":"Attach Channel","operationId":"attach_channel_api_projects__project_id__bots__bot_uuid__attach_channel_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"bot_uuid","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Bot Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttachChannelBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Attach Channel Api Projects  Project Id  Bots  Bot Uuid  Attach Channel Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/{bot_uuid}/set_brain":{"post":{"tags":["Bots"],"summary":"Set Brain","operationId":"set_brain_api_projects__project_id__bots__bot_uuid__set_brain_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"bot_uuid","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Bot Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetBrainBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Set Brain Api Projects  Project Id  Bots  Bot Uuid  Set Brain Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/{bot_uuid}/go_live":{"post":{"tags":["Bots"],"summary":"Go Live","operationId":"go_live_api_projects__project_id__bots__bot_uuid__go_live_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"bot_uuid","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Bot Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoLiveBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Go Live Api Projects  Project Id  Bots  Bot Uuid  Go Live Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/{bot_uuid}/heal-mentor-commands":{"post":{"tags":["Bots"],"summary":"Heal Mentor Commands Endpoint","description":"Idempotent mentor /menu+/operator DNA patch (E-102).","operationId":"heal_mentor_commands_endpoint_api_projects__project_id__bots__bot_uuid__heal_mentor_commands_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"bot_uuid","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Bot Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Heal Mentor Commands Endpoint Api Projects  Project Id  Bots  Bot Uuid  Heal Mentor Commands Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/{bot_uuid}/pause":{"post":{"tags":["Bots"],"summary":"Pause Bot","operationId":"pause_bot_api_projects__project_id__bots__bot_uuid__pause_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"bot_uuid","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Bot Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PauseBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Pause Bot Api Projects  Project Id  Bots  Bot Uuid  Pause Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/{bot_uuid}/conversations/{conversation_id}/staff_reply":{"post":{"tags":["Bots"],"summary":"Bot Staff Reply","operationId":"bot_staff_reply_api_projects__project_id__bots__bot_uuid__conversations__conversation_id__staff_reply_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"bot_uuid","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Bot Uuid"}},{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","minLength":8,"title":"Conversation Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StaffReplyBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bot Staff Reply Api Projects  Project Id  Bots  Bot Uuid  Conversations  Conversation Id  Staff Reply Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/{bot_uuid}/conversations/{conversation_id}/commerce_offer":{"post":{"tags":["Bots"],"summary":"Bot Send Commerce Offer","operationId":"bot_send_commerce_offer_api_projects__project_id__bots__bot_uuid__conversations__conversation_id__commerce_offer_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"bot_uuid","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Bot Uuid"}},{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","minLength":8,"title":"Conversation Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommerceOfferBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bot Send Commerce Offer Api Projects  Project Id  Bots  Bot Uuid  Conversations  Conversation Id  Commerce Offer Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/{bot_uuid}/conversations/{conversation_id}/handoff":{"post":{"tags":["Bots"],"summary":"Bot Set Handoff","operationId":"bot_set_handoff_api_projects__project_id__bots__bot_uuid__conversations__conversation_id__handoff_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"bot_uuid","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Bot Uuid"}},{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","minLength":8,"title":"Conversation Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HandoffBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bot Set Handoff Api Projects  Project Id  Bots  Bot Uuid  Conversations  Conversation Id  Handoff Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/{bot_uuid}/activate":{"post":{"tags":["Bots"],"summary":"Activate Webhook","operationId":"activate_webhook_api_projects__project_id__bots__bot_uuid__activate_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"bot_uuid","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Bot Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Activate Webhook Api Projects  Project Id  Bots  Bot Uuid  Activate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/{bot_uuid}/health":{"get":{"tags":["Bots"],"summary":"Bot Health","operationId":"bot_health_api_projects__project_id__bots__bot_uuid__health_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"bot_uuid","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Bot Uuid"}},{"name":"include","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Include"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bot Health Api Projects  Project Id  Bots  Bot Uuid  Health Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/{bot_uuid}/dlq/{item_id}/replay":{"post":{"tags":["Bots"],"summary":"Bot Dlq Replay","description":"Replay a bots queue DLQ row onto its original queue (project-scoped).","operationId":"bot_dlq_replay_api_projects__project_id__bots__bot_uuid__dlq__item_id__replay_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"bot_uuid","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Bot Uuid"}},{"name":"item_id","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Item Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Bot Dlq Replay Api Projects  Project Id  Bots  Bot Uuid  Dlq  Item Id  Replay Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/{bot_uuid}/conversations":{"get":{"tags":["Bots"],"summary":"List Conversations","operationId":"list_conversations_api_projects__project_id__bots__bot_uuid__conversations_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"bot_uuid","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Bot Uuid"}},{"name":"filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}},{"name":"include_messages","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Messages"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Conversations Api Projects  Project Id  Bots  Bot Uuid  Conversations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/{bot_uuid}/conversations/{conversation_id}":{"get":{"tags":["Bots"],"summary":"Get Conversation","operationId":"get_conversation_api_projects__project_id__bots__bot_uuid__conversations__conversation_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"bot_uuid","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Bot Uuid"}},{"name":"conversation_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Conversation Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":80,"minimum":1,"default":40,"title":"Limit"}},{"name":"before","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Before"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Conversation Api Projects  Project Id  Bots  Bot Uuid  Conversations  Conversation Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/{bot_uuid}/simulate":{"post":{"tags":["Bots"],"summary":"Simulate Bot","operationId":"simulate_bot_api_projects__project_id__bots__bot_uuid__simulate_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"bot_uuid","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Bot Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimulateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Simulate Bot Api Projects  Project Id  Bots  Bot Uuid  Simulate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/{bot_uuid}/simulate/commerce_offer":{"post":{"tags":["Bots"],"summary":"Simulate Commerce Offer","description":"Send a commerce offer card to the simulator user (Brain tab smoke test).","operationId":"simulate_commerce_offer_api_projects__project_id__bots__bot_uuid__simulate_commerce_offer_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"bot_uuid","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Bot Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SimulateCommerceOfferBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Simulate Commerce Offer Api Projects  Project Id  Bots  Bot Uuid  Simulate Commerce Offer Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/{bot_uuid}/archive":{"post":{"tags":["Bots"],"summary":"Archive Bot","operationId":"archive_bot_api_projects__project_id__bots__bot_uuid__archive_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"bot_uuid","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Bot Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArchiveBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Archive Bot Api Projects  Project Id  Bots  Bot Uuid  Archive Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/bots/{bot_uuid}/broadcast":{"post":{"tags":["Bots"],"summary":"Broadcast Bot","operationId":"broadcast_bot_api_projects__project_id__bots__bot_uuid__broadcast_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"bot_uuid","in":"path","required":true,"schema":{"type":"string","minLength":4,"title":"Bot Uuid"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BroadcastBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Broadcast Bot Api Projects  Project Id  Bots  Bot Uuid  Broadcast Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/bots":{"get":{"tags":["Bots"],"summary":"List Me Bots","operationId":"list_me_bots_api_users_me_bots_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Me Bots Api Users Me Bots Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/config":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Config Get","operationId":"knowledge_config_get_api_projects__project_id__knowledge_config_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Config Get Api Projects  Project Id  Knowledge Config Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"patch":{"tags":["Projects","Knowledge"],"summary":"Knowledge Config Patch","operationId":"knowledge_config_patch_api_projects__project_id__knowledge_config_patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeConfigPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Config Patch Api Projects  Project Id  Knowledge Config Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/policy-templates":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Policy Templates List","operationId":"knowledge_policy_templates_list_api_projects__project_id__knowledge_policy_templates_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Policy Templates List Api Projects  Project Id  Knowledge Policy Templates Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/policy-templates/status":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Policy Templates Status","operationId":"knowledge_policy_templates_status_api_projects__project_id__knowledge_policy_templates_status_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":4,"maxLength":64},{"type":"null"}],"title":"Agent Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Policy Templates Status Api Projects  Project Id  Knowledge Policy Templates Status Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/policy-templates/apply":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Policy Templates Apply","operationId":"knowledge_policy_templates_apply_api_projects__project_id__knowledge_policy_templates_apply_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyTemplateApplyBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Policy Templates Apply Api Projects  Project Id  Knowledge Policy Templates Apply Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/journal":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Journal","operationId":"knowledge_journal_api_projects__project_id__knowledge_journal_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"include_restricted","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Restricted"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Journal Api Projects  Project Id  Knowledge Journal Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/journal/turn":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Journal Turn","operationId":"knowledge_journal_turn_api_projects__project_id__knowledge_journal_turn_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"correlation_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Correlation Id"}},{"name":"turn_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Turn Id"}},{"name":"include_restricted","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Restricted"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Journal Turn Api Projects  Project Id  Knowledge Journal Turn Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/acceptance/list":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Acceptance List Http","operationId":"knowledge_acceptance_list_http_api_projects__project_id__knowledge_acceptance_list_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Acceptance List Http Api Projects  Project Id  Knowledge Acceptance List Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/doctor/run":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Doctor Run Http","operationId":"knowledge_doctor_run_http_api_projects__project_id__knowledge_doctor_run_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DoctorRunBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Doctor Run Http Api Projects  Project Id  Knowledge Doctor Run Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/phenotype/upsert":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Phenotype Upsert Http","operationId":"knowledge_phenotype_upsert_http_api_projects__project_id__knowledge_phenotype_upsert_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhenotypeUpsertBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Phenotype Upsert Http Api Projects  Project Id  Knowledge Phenotype Upsert Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/gene-pack/pinned-shape/upsert":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Pinned Shape Upsert Http","operationId":"knowledge_pinned_shape_upsert_http_api_projects__project_id__knowledge_gene_pack_pinned_shape_upsert_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PinnedShapeUpsertBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Pinned Shape Upsert Http Api Projects  Project Id  Knowledge Gene Pack Pinned Shape Upsert Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/acceptance/run":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Acceptance Run Http","operationId":"knowledge_acceptance_run_http_api_projects__project_id__knowledge_acceptance_run_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptanceRunBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Acceptance Run Http Api Projects  Project Id  Knowledge Acceptance Run Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/journal/purge":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Journal Purge","operationId":"knowledge_journal_purge_api_projects__project_id__knowledge_journal_purge_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Journal Purge Api Projects  Project Id  Knowledge Journal Purge Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/access/grants":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Access Grants List","operationId":"knowledge_access_grants_list_api_projects__project_id__knowledge_access_grants_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"principal_user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Principal User Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Access Grants List Api Projects  Project Id  Knowledge Access Grants Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Access Grant Upsert","operationId":"knowledge_access_grant_upsert_api_projects__project_id__knowledge_access_grants_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessGrantBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Access Grant Upsert Api Projects  Project Id  Knowledge Access Grants Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Projects","Knowledge"],"summary":"Knowledge Access Grant Revoke","operationId":"knowledge_access_grant_revoke_api_projects__project_id__knowledge_access_grants_delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"principal_user_id","in":"query","required":true,"schema":{"type":"integer","minimum":1,"title":"Principal User Id"}},{"name":"product_id","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Product Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Access Grant Revoke Api Projects  Project Id  Knowledge Access Grants Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/access/links":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Channel Links","operationId":"knowledge_channel_links_api_projects__project_id__knowledge_access_links_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project 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":{"type":"object","additionalProperties":true,"title":"Response Knowledge Channel Links Api Projects  Project Id  Knowledge Access Links Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Channel Link Upsert","operationId":"knowledge_channel_link_upsert_api_projects__project_id__knowledge_access_links_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelLinkBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Channel Link Upsert Api Projects  Project Id  Knowledge Access Links Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/access/bind-code":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Bind Code","operationId":"knowledge_bind_code_api_projects__project_id__knowledge_access_bind_code_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"channel","in":"query","required":false,"schema":{"type":"string","default":"telegram","title":"Channel"}},{"name":"bot_username","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bot Username"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Bind Code Api Projects  Project Id  Knowledge Access Bind Code Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/kb/chunks":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Kb Chunks","description":"List KB chunks for the operator content index (same visibility as GET /content).","operationId":"knowledge_kb_chunks_api_projects__project_id__knowledge_kb_chunks_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"collection_id","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Collection Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":50,"title":"Limit"}},{"name":"source_doc_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Doc Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Kb Chunks Api Projects  Project Id  Knowledge Kb Chunks Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/kb/chunks/{doc_id}":{"patch":{"tags":["Projects","Knowledge"],"summary":"Knowledge Kb Chunk Patch","operationId":"knowledge_kb_chunk_patch_api_projects__project_id__knowledge_kb_chunks__doc_id__patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"doc_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Doc Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KbChunkTextPatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Kb Chunk Patch Api Projects  Project Id  Knowledge Kb Chunks  Doc Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/kb/ingest":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Kb Ingest","operationId":"knowledge_kb_ingest_api_projects__project_id__knowledge_kb_ingest_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KbIngestBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Kb Ingest Api Projects  Project Id  Knowledge Kb Ingest Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/content":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Content List","operationId":"knowledge_content_list_api_projects__project_id__knowledge_content_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"collection_id","in":"query","required":false,"schema":{"type":"string","default":"knowledge_kb","title":"Collection Id"}},{"name":"access_tier","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Tier"}},{"name":"content_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Content List Api Projects  Project Id  Knowledge Content Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/content/{source_doc_id}":{"patch":{"tags":["Projects","Knowledge"],"summary":"Knowledge Content Patch","operationId":"knowledge_content_patch_api_projects__project_id__knowledge_content__source_doc_id__patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"source_doc_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Source Doc Id"}},{"name":"collection_id","in":"query","required":false,"schema":{"type":"string","default":"knowledge_kb","title":"Collection Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentMetadataPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Content Patch Api Projects  Project Id  Knowledge Content  Source Doc Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Projects","Knowledge"],"summary":"Knowledge Content Delete","operationId":"knowledge_content_delete_api_projects__project_id__knowledge_content__source_doc_id__delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"source_doc_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Source Doc Id"}},{"name":"collection_id","in":"query","required":false,"schema":{"type":"string","default":"knowledge_kb","title":"Collection Id"}},{"name":"hard_delete","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Hard Delete"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Content Delete Api Projects  Project Id  Knowledge Content  Source Doc Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/portal-catalog":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Portal Catalog","description":"Tier-gated materials for hosted auth portal (guest=public; authed=entitlements).","operationId":"knowledge_portal_catalog_api_projects__project_id__knowledge_portal_catalog_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":80,"minimum":1,"default":40,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Portal Catalog Api Projects  Project Id  Knowledge Portal Catalog Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/registry":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Registry List","operationId":"knowledge_registry_list_api_projects__project_id__knowledge_registry_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":200,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Registry List Api Projects  Project Id  Knowledge Registry Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Registry Upsert","operationId":"knowledge_registry_upsert_api_projects__project_id__knowledge_registry_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Registry Upsert Api Projects  Project Id  Knowledge Registry Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/registry/{entry_id}":{"patch":{"tags":["Projects","Knowledge"],"summary":"Knowledge Registry Patch","operationId":"knowledge_registry_patch_api_projects__project_id__knowledge_registry__entry_id__patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Entry Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Registry Patch Api Projects  Project Id  Knowledge Registry  Entry Id  Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Projects","Knowledge"],"summary":"Knowledge Registry Delete","operationId":"knowledge_registry_delete_api_projects__project_id__knowledge_registry__entry_id__delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"entry_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Entry Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Registry Delete Api Projects  Project Id  Knowledge Registry  Entry Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/registry/import":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Registry Import","operationId":"knowledge_registry_import_api_projects__project_id__knowledge_registry_import_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegistryImportBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Registry Import Api Projects  Project Id  Knowledge Registry Import Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/prompt":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Prompt Get","operationId":"knowledge_prompt_get_api_projects__project_id__knowledge_prompt_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"agent_uuid","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Prompt Get Api Projects  Project Id  Knowledge Prompt Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"patch":{"tags":["Projects","Knowledge"],"summary":"Knowledge Prompt Patch","operationId":"knowledge_prompt_patch_api_projects__project_id__knowledge_prompt_patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromptPatchBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Prompt Patch Api Projects  Project Id  Knowledge Prompt Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/retrieve/probe":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Retrieve Probe Http","operationId":"knowledge_retrieve_probe_http_api_projects__project_id__knowledge_retrieve_probe_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrieveProbeBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Retrieve Probe Http Api Projects  Project Id  Knowledge Retrieve Probe Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/correction/propose":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Correction Propose Http","operationId":"knowledge_correction_propose_http_api_projects__project_id__knowledge_correction_propose_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CorrectionProposeBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Correction Propose Http Api Projects  Project Id  Knowledge Correction Propose Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/playground":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Playground","operationId":"knowledge_playground_api_projects__project_id__knowledge_playground_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaygroundBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Playground Api Projects  Project Id  Knowledge Playground Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/access/simulate":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Access Simulate","operationId":"knowledge_access_simulate_api_projects__project_id__knowledge_access_simulate_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessSimulateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Access Simulate Api Projects  Project Id  Knowledge Access Simulate Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/access/getcourse-status":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Getcourse Status","operationId":"knowledge_getcourse_status_api_projects__project_id__knowledge_access_getcourse_status_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Getcourse Status Api Projects  Project Id  Knowledge Access Getcourse Status Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/access/entitlement-pending":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Entitlement Pending List","operationId":"knowledge_entitlement_pending_list_api_projects__project_id__knowledge_access_entitlement_pending_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Entitlement Pending List Api Projects  Project Id  Knowledge Access Entitlement Pending Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/access/getcourse-reconcile":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Getcourse Reconcile","operationId":"knowledge_getcourse_reconcile_api_projects__project_id__knowledge_access_getcourse_reconcile_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"principal_user_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Principal User Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Getcourse Reconcile Api Projects  Project Id  Knowledge Access Getcourse Reconcile Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/content/relations":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Content Relations","description":"Collection read — GET (SDK listContentRelations). Upsert stays POST.","operationId":"knowledge_content_relations_api_projects__project_id__knowledge_content_relations_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Content Relations Api Projects  Project Id  Knowledge Content Relations Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Content Relation Upsert","operationId":"knowledge_content_relation_upsert_api_projects__project_id__knowledge_content_relations_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContentRelationBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Content Relation Upsert Api Projects  Project Id  Knowledge Content Relations Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/context-map/export":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Context Map Export","operationId":"knowledge_context_map_export_api_projects__project_id__knowledge_context_map_export_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Context Map Export Api Projects  Project Id  Knowledge Context Map Export Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/eval/run":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Eval Run","operationId":"knowledge_eval_run_api_projects__project_id__knowledge_eval_run_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Eval Run Api Projects  Project Id  Knowledge Eval Run Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/eval/retrieval":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Retrieval Eval","operationId":"knowledge_retrieval_eval_api_projects__project_id__knowledge_eval_retrieval_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrievalEvalBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Retrieval Eval Api Projects  Project Id  Knowledge Eval Retrieval Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/eval/run-all":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Eval Run All","operationId":"knowledge_eval_run_all_api_projects__project_id__knowledge_eval_run_all_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FullEvalBody","default":{"min_hit_rate":0.8,"principal_user_id":0}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Eval Run All Api Projects  Project Id  Knowledge Eval Run All Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/eval/baseline":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Eval Baseline","operationId":"knowledge_eval_baseline_api_projects__project_id__knowledge_eval_baseline_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Eval Baseline Api Projects  Project Id  Knowledge Eval Baseline Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/health":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Health","operationId":"knowledge_health_api_projects__project_id__knowledge_health_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Health Api Projects  Project Id  Knowledge Health Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/access/principal-links/{channel}/bind-code":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Channel Bind Code","operationId":"knowledge_channel_bind_code_api_projects__project_id__knowledge_access_principal_links__channel__bind_code_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"channel","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Channel"}},{"name":"bot_username","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bot Username"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Channel Bind Code Api Projects  Project Id  Knowledge Access Principal Links  Channel  Bind Code Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/channel-links/{channel}/bind-code":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Channel Bind Code Alias","operationId":"knowledge_channel_bind_code_alias_api_projects__project_id__knowledge_channel_links__channel__bind_code_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"channel","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Channel"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Channel Bind Code Alias Api Projects  Project Id  Knowledge Channel Links  Channel  Bind Code Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/import":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Import","operationId":"knowledge_import_api_projects__project_id__knowledge_import_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Import Api Projects  Project Id  Knowledge Import Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/ingest/jobs/{job_id}":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Ingest Job Status","operationId":"knowledge_ingest_job_status_api_projects__project_id__knowledge_ingest_jobs__job_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Ingest Job Status Api Projects  Project Id  Knowledge Ingest Jobs  Job Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/webhooks/entitlement":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Entitlement Webhook","operationId":"knowledge_entitlement_webhook_api_projects__project_id__knowledge_webhooks_entitlement_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Entitlement Webhook Api Projects  Project Id  Knowledge Webhooks Entitlement Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/review-queue":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Review Queue","operationId":"knowledge_review_queue_api_projects__project_id__knowledge_review_queue_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Review Queue Api Projects  Project Id  Knowledge Review Queue Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/review-queue/{turn_id}/resolve":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Review Resolve","operationId":"knowledge_review_resolve_api_projects__project_id__knowledge_review_queue__turn_id__resolve_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"turn_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"title":"Turn Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewResolveBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Review Resolve Api Projects  Project Id  Knowledge Review Queue  Turn Id  Resolve Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/journal/user/{principal_user_id}":{"delete":{"tags":["Projects","Knowledge"],"summary":"Knowledge Journal Delete User","operationId":"knowledge_journal_delete_user_api_projects__project_id__knowledge_journal_user__principal_user_id__delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"principal_user_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Principal User Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Journal Delete User Api Projects  Project Id  Knowledge Journal User  Principal User Id  Delete"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/export":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Export","operationId":"knowledge_export_api_projects__project_id__knowledge_export_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Export Api Projects  Project Id  Knowledge Export Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/export.zip":{"get":{"tags":["Projects","Knowledge"],"summary":"Knowledge Export Zip","operationId":"knowledge_export_zip_api_projects__project_id__knowledge_export_zip_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/knowledge/import.zip":{"post":{"tags":["Projects","Knowledge"],"summary":"Knowledge Import Zip","operationId":"knowledge_import_zip_api_projects__project_id__knowledge_import_zip_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Knowledge Import Zip Api Projects  Project Id  Knowledge Import Zip Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"Uploaded file"}},"required":["file"]}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/mentor/config":{"get":{"tags":["Projects"],"summary":"Mentor Config","operationId":"mentor_config_api_projects__project_id__mentor_config_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mentor Config Api Projects  Project Id  Mentor Config Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"patch":{"tags":["Projects"],"summary":"Mentor Config Patch","operationId":"mentor_config_patch_api_projects__project_id__mentor_config_patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KnowledgeConfigPatch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mentor Config Patch Api Projects  Project Id  Mentor Config Patch"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/mentor/journal":{"get":{"tags":["Projects"],"summary":"Mentor Journal","operationId":"mentor_journal_api_projects__project_id__mentor_journal_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"include_restricted","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Include Restricted"}},{"name":"cursor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cursor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mentor Journal Api Projects  Project Id  Mentor Journal Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/mentor/journal/purge":{"post":{"tags":["Projects"],"summary":"Mentor Journal Purge","operationId":"mentor_journal_purge_api_projects__project_id__mentor_journal_purge_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mentor Journal Purge Api Projects  Project Id  Mentor Journal Purge Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/mentor/principal-links":{"get":{"tags":["Projects"],"summary":"Mentor Principal Links","operationId":"mentor_principal_links_api_projects__project_id__mentor_principal_links_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mentor Principal Links Api Projects  Project Id  Mentor Principal Links Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["Projects"],"summary":"Mentor Principal Link Upsert","operationId":"mentor_principal_link_upsert_api_projects__project_id__mentor_principal_links_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrincipalLinkBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mentor Principal Link Upsert Api Projects  Project Id  Mentor Principal Links Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/mentor/principal-links/telegram-bind-code":{"post":{"tags":["Projects"],"summary":"Mentor Telegram Bind Code","operationId":"mentor_telegram_bind_code_api_projects__project_id__mentor_principal_links_telegram_bind_code_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"name":"bot_username","in":"query","required":false,"schema":{"type":"string","default":"","title":"Bot Username"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mentor Telegram Bind Code Api Projects  Project Id  Mentor Principal Links Telegram Bind Code Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/mentor/kb/ingest":{"post":{"tags":["Projects"],"summary":"Mentor Kb Ingest","operationId":"mentor_kb_ingest_api_projects__project_id__mentor_kb_ingest_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KbIngestBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mentor Kb Ingest Api Projects  Project Id  Mentor Kb Ingest Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/mentor/eval/run":{"post":{"tags":["Projects"],"summary":"Mentor Eval Run","operationId":"mentor_eval_run_api_projects__project_id__mentor_eval_run_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mentor Eval Run Api Projects  Project Id  Mentor Eval Run Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/mentor/eval/retrieval":{"post":{"tags":["Projects"],"summary":"Mentor Retrieval Eval","operationId":"mentor_retrieval_eval_api_projects__project_id__mentor_eval_retrieval_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RetrievalEvalBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mentor Retrieval Eval Api Projects  Project Id  Mentor Eval Retrieval Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/mentor/eval/run-all":{"post":{"tags":["Projects"],"summary":"Mentor Eval Run All","operationId":"mentor_eval_run_all_api_projects__project_id__mentor_eval_run_all_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FullEvalBody","default":{"min_hit_rate":0.8,"principal_user_id":0}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mentor Eval Run All Api Projects  Project Id  Mentor Eval Run All Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/mentor/export":{"get":{"tags":["Projects"],"summary":"Mentor Export","operationId":"mentor_export_api_projects__project_id__mentor_export_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Mentor Export Api Projects  Project Id  Mentor Export Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/mentor/export.zip":{"get":{"tags":["Projects"],"summary":"Mentor Export Zip","operationId":"mentor_export_zip_api_projects__project_id__mentor_export_zip_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/plan/{project_id}":{"get":{"tags":["AI Builder"],"summary":"Get Builder Plan","description":"Получение плана реализации проекта","operationId":"get_builder_plan_api_ai_builder_plan__project_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["AI Builder"],"summary":"Update Builder Plan","description":"Обновление структурированного плана реализации","operationId":"update_builder_plan_api_ai_builder_plan__project_id__put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Updated plan structure","title":"Plan"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/plan/{project_id}/approve":{"post":{"tags":["AI Builder"],"summary":"Approve Builder Plan","description":"Утвердить план и переходить к ready_to_build","operationId":"approve_builder_plan_api_ai_builder_plan__project_id__approve_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/plan/draft":{"post":{"tags":["AI Builder"],"summary":"Create Plan Draft","description":"Создание черновика плана","operationId":"create_plan_draft_api_ai_builder_projects__project_id__plan_draft_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Plan content","title":"Plan"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/plan/draft/{plan_id}":{"put":{"tags":["AI Builder"],"summary":"Update Plan Draft","description":"Обновление черновика плана","operationId":"update_plan_draft_api_ai_builder_projects__project_id__plan_draft__plan_id__put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"plan_id","in":"path","required":true,"schema":{"type":"string","description":"Plan ID","title":"Plan Id"},"description":"Plan ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Updated plan content","title":"Plan"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/plan/approve":{"post":{"tags":["AI Builder"],"summary":"Approve Plan","description":"Утвердить черновик плана","operationId":"approve_plan_api_ai_builder_projects__project_id__plan_approve_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"string","description":"Plan ID to approve","title":"Plan Id"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/plan/regenerate":{"post":{"tags":["AI Builder"],"summary":"Regenerate Plan","description":"Перегенерировать план","operationId":"regenerate_plan_api_ai_builder_projects__project_id__plan_regenerate_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/edit-plan":{"post":{"tags":["AI Builder"],"summary":"Create Edit Plan","description":"Создать план правок - AI задает вопросы пользователю о том, что нужно изменить","operationId":"create_edit_plan_api_ai_builder_projects__project_id__edit_plan_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"description":"Request body with optional user_message","title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/app-studio/compose":{"post":{"tags":["AI Builder"],"summary":"App Studio Compose","operationId":"app_studio_compose_api_ai_builder_projects__project_id__app_studio_compose_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/app-studio/source":{"get":{"tags":["AI Builder"],"summary":"App Studio List Source","operationId":"app_studio_list_source_api_ai_builder_projects__project_id__app_studio_source_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"branch","in":"query","required":false,"schema":{"type":"string","default":"dev","title":"Branch"}},{"name":"path","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path"}},{"name":"view","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"View"}},{"name":"symbol","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"}},{"name":"offset","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Offset"}},{"name":"max_chars","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Chars"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"post":{"tags":["AI Builder"],"summary":"App Studio Patch Source","operationId":"app_studio_patch_source_api_ai_builder_projects__project_id__app_studio_source_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/app-studio/build":{"post":{"tags":["AI Builder"],"summary":"App Studio Build","operationId":"app_studio_build_api_ai_builder_projects__project_id__app_studio_build_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/app-studio/builds/latest":{"get":{"tags":["AI Builder"],"summary":"App Studio Build Status Latest","operationId":"app_studio_build_status_latest_api_ai_builder_projects__project_id__app_studio_builds_latest_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/app-studio/builds/{build_uuid}":{"get":{"tags":["AI Builder"],"summary":"App Studio Build Status","operationId":"app_studio_build_status_api_ai_builder_projects__project_id__app_studio_builds__build_uuid__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"name":"build_uuid","in":"path","required":true,"schema":{"type":"string","title":"Build Uuid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/app-studio/publish":{"post":{"tags":["AI Builder"],"summary":"App Studio Publish","operationId":"app_studio_publish_api_ai_builder_projects__project_id__app_studio_publish_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/build":{"post":{"tags":["AI Builder"],"summary":"Build Project","description":"Собрать и задеплоить проект","operationId":"build_project_api_ai_builder_projects__project_id__build_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/rebuild":{"post":{"tags":["AI Builder"],"summary":"Rebuild Project","description":"Пересобрать проект из существующих исходников (без создания плана)","operationId":"rebuild_project_api_ai_builder_projects__project_id__rebuild_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"type":"string","description":"Branch to rebuild (dev/prod)","default":"dev","title":"Branch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/components/generate":{"post":{"tags":["AI Builder"],"summary":"Generate Component","description":"Генерировать компонент","operationId":"generate_component_api_ai_builder_projects__project_id__components_generate_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_generate_component_api_ai_builder_projects__project_id__components_generate_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/components/{file_path}/edit":{"post":{"tags":["AI Builder"],"summary":"Edit Component","description":"Редактировать компонент","operationId":"edit_component_api_ai_builder_projects__project_id__components__file_path__edit_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"file_path","in":"path","required":true,"schema":{"type":"string","description":"File path","title":"File Path"},"description":"File path"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_edit_component_api_ai_builder_projects__project_id__components__file_path__edit_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/design/update":{"post":{"tags":["AI Builder"],"summary":"Update Design","description":"Обновить дизайн","operationId":"update_design_api_ai_builder_projects__project_id__design_update_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_update_design_api_ai_builder_projects__project_id__design_update_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/version-control/initialize":{"post":{"tags":["AI Builder"],"summary":"Initialize Version Control","description":"Инициализация версий","operationId":"initialize_version_control_api_ai_builder_projects__project_id__version_control_initialize_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/publish":{"post":{"tags":["AI Builder"],"summary":"Publish To Prod","description":"Публикация в прод","operationId":"publish_to_prod_api_ai_builder_projects__project_id__publish_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"type":"boolean","default":true,"title":"Create Snapshot"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/rollback":{"post":{"tags":["AI Builder"],"summary":"Rollback To Snapshot","description":"Откат к снимку","operationId":"rollback_to_snapshot_api_ai_builder_projects__project_id__rollback_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"string","title":"Snapshot Id"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/create-snapshot":{"post":{"tags":["AI Builder"],"summary":"Create Snapshot","description":"Создать снимок","operationId":"create_snapshot_api_ai_builder_projects__project_id__create_snapshot_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_create_snapshot_api_ai_builder_projects__project_id__create_snapshot_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/versions":{"get":{"tags":["AI Builder"],"summary":"Get Versions","description":"Информация о версиях","operationId":"get_versions_api_ai_builder_projects__project_id__versions_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/switch-branch":{"post":{"tags":["AI Builder"],"summary":"Switch Branch","description":"Переключить ветку","operationId":"switch_branch_api_ai_builder_projects__project_id__switch_branch_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"string","title":"Branch"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/snapshots/{snapshot_id}":{"delete":{"tags":["AI Builder"],"summary":"Delete Snapshot","description":"Удалить снимок","operationId":"delete_snapshot_api_ai_builder_projects__project_id__snapshots__snapshot_id__delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"snapshot_id","in":"path","required":true,"schema":{"type":"string","title":"Snapshot Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/chat":{"post":{"tags":["AI Builder"],"summary":"Ai Builder Chat","description":"Отправка сообщения в AI Builder чат","operationId":"ai_builder_chat_api_ai_builder_chat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_ai_builder_chat_api_ai_builder_chat_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/ai-builder/chat/stream":{"post":{"tags":["AI Builder"],"summary":"Ai Builder Chat Stream","description":"Стриминг ответа чата (SSE).","operationId":"ai_builder_chat_stream_api_ai_builder_chat_stream_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_ai_builder_chat_stream_api_ai_builder_chat_stream_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/manifest":{"get":{"tags":["AI Builder"],"summary":"Get Manifest","operationId":"get_manifest_api_ai_builder_projects__project_id__manifest_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["AI Builder"],"summary":"Put Manifest","operationId":"put_manifest_api_ai_builder_projects__project_id__manifest_put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/manifest/validate":{"post":{"tags":["AI Builder"],"summary":"Validate Manifest","operationId":"validate_manifest_api_ai_builder_projects__project_id__manifest_validate_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","minimum":1,"title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/blueprints":{"get":{"tags":["AI Builder"],"summary":"List Blueprints","operationId":"list_blueprints_api_ai_builder_blueprints_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Response List Blueprints Api Ai Builder Blueprints Get"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/blueprints/{blueprint_id}/instantiate":{"post":{"tags":["AI Builder"],"summary":"Instantiate Blueprint","operationId":"instantiate_blueprint_api_ai_builder_blueprints__blueprint_id__instantiate_post","parameters":[{"name":"blueprint_id","in":"path","required":true,"schema":{"type":"string","title":"Blueprint Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Customization"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/catalog/modules-json":{"get":{"tags":["AI Builder"],"summary":"Get Module Catalog Json","description":"Machine-readable module catalog (Modular Renaissance).","operationId":"get_module_catalog_json_api_ai_builder_catalog_modules_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/compose":{"post":{"tags":["AI Builder"],"summary":"Compose Preview","description":"Dry-run deterministic compose (returns file list + hashes, not written to disk).","operationId":"compose_preview_api_ai_builder_compose_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/ai-builder/systems":{"get":{"tags":["AI Builder"],"summary":"Get Available Systems","description":"Получение списка доступных систем","operationId":"get_available_systems_api_ai_builder_systems_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/catalog":{"get":{"tags":["AI Builder"],"summary":"Get Builder Catalog","description":"Catalog of optional components/hooks/modules for builder and AI. Filters: category, system.","operationId":"get_builder_catalog_api_ai_builder_catalog_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category","title":"Category"},"description":"Filter by category"},{"name":"system","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by system tag","title":"System"},"description":"Filter by system tag"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/create-project":{"post":{"tags":["AI Builder"],"summary":"Create Project Via Builder","description":"Создание проекта","operationId":"create_project_via_builder_api_ai_builder_create_project_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Project Config"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/ai-builder/history":{"get":{"tags":["AI Builder"],"summary":"Get Chat History","description":"Получение истории чата","operationId":"get_chat_history_api_ai_builder_history_get","parameters":[{"name":"project_id","in":"query","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","description":"Limit","default":50,"title":"Limit"},"description":"Limit"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/documentation/{project_id}":{"get":{"tags":["AI Builder"],"summary":"Get Project Documentation","description":"Получение документации проекта. Возвращает {} если документации нет.","operationId":"get_project_documentation_api_ai_builder_documentation__project_id__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["AI Builder"],"summary":"Update Project Documentation","description":"Обновление документации проекта (просмотр и редактирование в UI билдера).","operationId":"update_project_documentation_api_ai_builder_documentation__project_id__put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","title":"Project Id"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Documentation structure","title":"Documentation"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/keys/status":{"get":{"tags":["AI Builder"],"summary":"Get Builder Keys Status","description":"Статус API ключей экосистемы (наличие без возврата значений). Для админки AI Builder.","operationId":"get_builder_keys_status_api_ai_builder_keys_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/test":{"post":{"tags":["AI Builder"],"summary":"Test Ai Provider","description":"Test AI provider and key with a short completion. For admin UI to verify key and model work.","operationId":"test_ai_provider_api_ai_builder_test_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body","description":"provider (required), model (optional), prompt (optional)"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/ai-builder/models/{provider_name}":{"get":{"tags":["AI Builder"],"summary":"Get Provider Models","description":"Универсальный эндпоинт: список моделей провайдера (openai, anthropic, gemini). Ключ и base_url из экосистемы, кэш 5 мин.","operationId":"get_provider_models_api_ai_builder_models__provider_name__get","parameters":[{"name":"provider_name","in":"path","required":true,"schema":{"type":"string","description":"Provider: openai, anthropic, gemini","title":"Provider Name"},"description":"Provider: openai, anthropic, gemini"},{"name":"use_cache","in":"query","required":false,"schema":{"type":"boolean","description":"Use cached list if available","default":true,"title":"Use Cache"},"description":"Use cached list if available"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/config/stages-prompts":{"get":{"tags":["AI Builder"],"summary":"Get Stages Prompts Registry","description":"Registry of stages and prompts for admin UI. Single source of truth; no duplicated lists on frontend.","operationId":"get_stages_prompts_registry_api_ai_builder_config_stages_prompts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/usage":{"get":{"tags":["AI Builder"],"summary":"Get Builder Usage","description":"Получение статистики использования","operationId":"get_builder_usage_api_ai_builder_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/energy/balance":{"get":{"tags":["AI Builder"],"summary":"Get Energy Balance","description":"Получение баланса энергии\n\n✅ ОПТИМИЗАЦИЯ: Этот эндпоинт также служит индикатором heartbeat\n- Клиент запрашивает баланс каждые 30 секунд\n- Мы отмечаем время последней активности пользователя\n- Используется вместо отдельного WebSocket heartbeat","operationId":"get_energy_balance_api_ai_builder_energy_balance_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Refresh"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/energy":{"get":{"tags":["AI Builder"],"summary":"Get Energy Balance","description":"Получение баланса энергии\n\n✅ ОПТИМИЗАЦИЯ: Этот эндпоинт также служит индикатором heartbeat\n- Клиент запрашивает баланс каждые 30 секунд\n- Мы отмечаем время последней активности пользователя\n- Используется вместо отдельного WebSocket heartbeat","operationId":"get_energy_balance_api_ai_builder_energy_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Refresh"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/energy/packs":{"get":{"tags":["AI Builder"],"summary":"Get Energy Packs","description":"Список пакетов энергии с ценами для модалки покупки.","operationId":"get_energy_packs_api_ai_builder_energy_packs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/energy/purchase-pack":{"post":{"tags":["AI Builder"],"summary":"Purchase Energy Pack","description":"Покупка энергии","operationId":"purchase_energy_pack_api_ai_builder_energy_purchase_pack_post","parameters":[{"name":"pack_size","in":"query","required":true,"schema":{"type":"string","title":"Pack Size"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/analytics":{"get":{"tags":["AI Builder"],"summary":"Get Analytics","description":"Аналитика (админ)","operationId":"get_analytics_api_ai_builder_analytics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/run-quality-check":{"post":{"tags":["AI Builder"],"summary":"Run Quality Check","description":"Run only the quality check stage (lint + ESLint --fix + AI fix) for the project. No code generation.","operationId":"run_quality_check_api_ai_builder_projects__project_id__run_quality_check_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"object","additionalProperties":true},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Run Quality Check Api Ai Builder Projects  Project Id  Run Quality Check Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/build-progress":{"get":{"tags":["AI Builder"],"summary":"Get Build Progress","description":"Получение прогресса сборки проекта\n\n✅ ОПТИМИЗАЦИЯ: Также служит индикатором heartbeat\n- Клиент запрашивает прогресс каждые 5 секунд во время билда\n- Отмечаем активность пользователя для отслеживания","operationId":"get_build_progress_api_ai_builder_projects__project_id__build_progress_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/pipeline":{"get":{"tags":["AI Builder"],"summary":"Get Project Pipeline","description":"Get agent pipeline config for a project (project.data.agent_pipeline).","operationId":"get_project_pipeline_api_ai_builder_projects__project_id__pipeline_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"patch":{"tags":["AI Builder"],"summary":"Update Project Pipeline","description":"Update agent pipeline config for a project (project.data.agent_pipeline).","operationId":"update_project_pipeline_api_ai_builder_projects__project_id__pipeline_patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"agent_pipeline object (flow_order, stage_enabled, stage_steps)","title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/build-pipeline":{"get":{"tags":["AI Builder"],"summary":"Get Project Build Pipeline","description":"Get build pipeline config (builder_config.build_pipeline: run_code_quality_check, run_lint_only).","operationId":"get_project_build_pipeline_api_ai_builder_projects__project_id__build_pipeline_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"patch":{"tags":["AI Builder"],"summary":"Update Project Build Pipeline","description":"Update build pipeline config (project.data.builder_config.build_pipeline).","operationId":"update_project_build_pipeline_api_ai_builder_projects__project_id__build_pipeline_patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"build_pipeline object (run_code_quality_check, run_lint_only)","title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/edit-config":{"get":{"tags":["AI Builder"],"summary":"Get Project Edit Config","description":"Get edit stage config (builder_config.edit: multi_file, max_files, apply_array, collect_errors, retry_failed).","operationId":"get_project_edit_config_api_ai_builder_projects__project_id__edit_config_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID (e.g. 1 for ecosystem)","title":"Project Id"},"description":"Project ID (e.g. 1 for ecosystem)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"patch":{"tags":["AI Builder"],"summary":"Update Project Edit Config","description":"Update edit config (project.data.builder_config.edit).","operationId":"update_project_edit_config_api_ai_builder_projects__project_id__edit_config_patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"edit config object","title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/ai-builder/projects/{project_id}/reasoning-config":{"get":{"tags":["AI Builder"],"summary":"Get Project Reasoning Config","description":"Get reasoning (thinking) step config (builder_config.reasoning: enabled, model, prompt, variant, run_at, inject_into_stages).","operationId":"get_project_reasoning_config_api_ai_builder_projects__project_id__reasoning_config_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID (e.g. 1 for ecosystem)","title":"Project Id"},"description":"Project ID (e.g. 1 for ecosystem)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"patch":{"tags":["AI Builder"],"summary":"Update Project Reasoning Config","description":"Update reasoning config (project.data.builder_config.reasoning).","operationId":"update_project_reasoning_config_api_ai_builder_projects__project_id__reasoning_config_patch","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"reasoning config (enabled, model, prompt, variant, run_at, inject_into_stages)","title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/files":{"post":{"tags":["Project Files"],"summary":"Create File","description":"Создать файл в проекте","operationId":"create_file_api_projects__project_id__files_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Body_create_file_api_projects__project_id__files_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"get":{"tags":["Project Files"],"summary":"List Files","description":"Получить список файлов проекта","operationId":"list_files_api_projects__project_id__files_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"file_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by file type","title":"File Type"},"description":"Filter by file type"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/files/structure":{"get":{"tags":["Project Files"],"summary":"Get Project Structure","description":"Получить структуру проекта.\n\n🧬 Генетический код: ai_builder.endpoints.files.structure.with_index.gen2\n\nПараметры:\n- include_index=true: добавит code index data\n- index_level: skeleton | signatures | examples","operationId":"get_project_structure_api_projects__project_id__files_structure_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"include_index","in":"query","required":false,"schema":{"type":"boolean","description":"Include code index data","default":false,"title":"Include Index"},"description":"Include code index data"},{"name":"index_level","in":"query","required":false,"schema":{"type":"string","description":"Index detail level: skeleton, signatures, examples","default":"skeleton","title":"Index Level"},"description":"Index detail level: skeleton, signatures, examples"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/files/export":{"get":{"tags":["Project Files"],"summary":"Export Project Zip","description":"Экспортировать проект в ZIP архив","operationId":"export_project_zip_api_projects__project_id__files_export_get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/files/index":{"post":{"tags":["Project Files"],"summary":"Index Project Files","description":"Индексация файлов проекта.\n\n🧬 Генетический код: ai_builder.endpoints.files.index.multi_level.gen2\n\nPhilosophy v0.1.24: Простой URL, параметры в query!\n\nReturns:\n{\n    'success': true,\n    'indexed_files': 45,\n    'levels': ['skeleton', 'signatures', 'examples'],\n    'duration_ms': 1234,\n    'generation': 'gen2.2026-01-29T10:30:00Z'\n}","operationId":"index_project_files_api_projects__project_id__files_index_post","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"levels","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"description":"Index levels","default":["skeleton","signatures","examples"],"title":"Levels"},"description":"Index levels"},{"name":"force","in":"query","required":false,"schema":{"type":"boolean","description":"Force reindex","default":false,"title":"Force"},"description":"Force reindex"},{"name":"incremental","in":"query","required":false,"schema":{"type":"boolean","description":"Only index changed files","default":true,"title":"Incremental"},"description":"Only index changed files"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/projects/{project_id}/files/{file_path}":{"put":{"tags":["Project Files"],"summary":"Update File","description":"Обновить файл в проекте","operationId":"update_file_api_projects__project_id__files__file_path__put","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"file_path","in":"path","required":true,"schema":{"type":"string","description":"File path","title":"File Path"},"description":"File path"},{"$ref":"#/components/parameters/IdempotencyKey"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"string","description":"File content","title":"Content"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"get":{"tags":["Project Files"],"summary":"Get File","description":"Получить файл из проекта с опциональным контекстом.\n\n🧬 Генетический код: ai_builder.endpoints.files.get.with_context.gen2\n\nПараметры:\n- with_context=true: добавит контекст связанных систем\n- context_level: skeleton | signatures | full","operationId":"get_file_api_projects__project_id__files__file_path__get","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"file_path","in":"path","required":true,"schema":{"type":"string","description":"File path","title":"File Path"},"description":"File path"},{"name":"with_context","in":"query","required":false,"schema":{"type":"boolean","description":"Include related code context","default":false,"title":"With Context"},"description":"Include related code context"},{"name":"context_level","in":"query","required":false,"schema":{"type":"string","description":"Context detail level: skeleton | signatures | full","default":"signatures","title":"Context Level"},"description":"Context detail level: skeleton | signatures | full"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"delete":{"tags":["Project Files"],"summary":"Delete File","description":"Удалить файл из проекта","operationId":"delete_file_api_projects__project_id__files__file_path__delete","parameters":[{"name":"project_id","in":"path","required":true,"schema":{"type":"integer","description":"Project ID","title":"Project Id"},"description":"Project ID"},{"name":"file_path","in":"path","required":true,"schema":{"type":"string","description":"File path","title":"File Path"},"description":"File path"},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/energy/balance":{"get":{"tags":["Energy"],"summary":"Get Energy Balance","description":"Получение баланса энергии\n\n✅ ОПТИМИЗАЦИЯ: Этот эндпоинт также служит индикатором heartbeat\n- Клиент запрашивает баланс каждые 30 секунд\n- Мы отмечаем время последней активности пользователя\n- Используется вместо отдельного WebSocket heartbeat","operationId":"get_energy_balance_api_energy_balance_get","parameters":[{"name":"project_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},{"name":"refresh","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Refresh"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/energy/packs":{"get":{"tags":["Energy"],"summary":"Get Energy Packs","description":"Список пакетов энергии с ценами для модалки покупки.","operationId":"get_energy_packs_api_energy_packs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/energy/purchase-pack":{"post":{"tags":["Energy"],"summary":"Purchase Energy Pack","description":"Покупка энергии","operationId":"purchase_energy_pack_api_energy_purchase_pack_post","parameters":[{"name":"pack_size","in":"query","required":true,"schema":{"type":"string","title":"Pack Size"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/ai-keys":{"put":{"tags":["User AI Settings"],"summary":"Update User Ai Keys","description":"Обновить AI API ключи пользователя\n\nPhilosophy v0.2.55: User control over API keys\n\nBody:\n{\n    \"openai\": \"sk-...\",\n    \"anthropic\": \"sk-ant-...\",\n    \"gemini\": \"...\"\n}\n\nKeys are stored in user.protected.keys.api.service_keys\nEmpty string removes the key\n\nReturns:\n    {\n        \"success\": true,\n        \"message\": \"AI keys updated\",\n        \"updated_providers\": [\"openai\", \"gemini\"]\n    }","operationId":"update_user_ai_keys_api_users_me_ai_keys_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Api Keys","description":"AI provider API keys"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/users/me/ai-settings":{"get":{"tags":["User AI Settings"],"summary":"Get User Ai Settings","description":"Получить AI настройки пользователя\n\nReturns:\n{\n    \"settings\": {\n        \"use_own_keys\": false,\n        \"default_key_source\": \"ecosystem\"\n    },\n    \"keys_status\": {\n        \"openai\": false,\n        \"anthropic\": false,\n        \"gemini\": false\n    },\n    \"keys_probe\": {\n        \"ok\": true,\n        \"error_code\": null\n    }\n}\n\nNote: Keys themselves are NOT returned (only status)","operationId":"get_user_ai_settings_api_users_me_ai_settings_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"},"put":{"tags":["User AI Settings"],"summary":"Update User Ai Settings","description":"Обновить AI настройки пользователя\n\nBody:\n{\n    \"use_own_keys\": true,\n    \"default_key_source\": \"user\"\n}\n\nStored in user.data.ai_settings\n\nReturns:\n    {\n        \"success\": true,\n        \"settings\": {...}\n    }","operationId":"update_user_ai_settings_api_users_me_ai_settings_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Settings","description":"AI settings"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"parameters":[{"$ref":"#/components/parameters/IdempotencyKey"}],"x-channel":"rest_compat"}},"/api/users/me/ai-runtime":{"get":{"tags":["User AI Settings"],"summary":"Get User Ai Runtime","description":"User LLM runtime BFF — ai-settings + energy balance in one response.\n\nReplaces parallel GET /ai-settings + GET /energy/balance for profile AI keys UI.","operationId":"get_user_ai_runtime_api_users_me_ai_runtime_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"422":{"description":"Unprocessable Entity","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}},"/api/users/me/ai-keys/{provider}":{"delete":{"tags":["User AI Settings"],"summary":"Delete User Ai Key","description":"Удалить API ключ пользователя для конкретного провайдера\n\nArgs:\n    provider: openai | anthropic | gemini\n\nReturns:\n    {\n        \"success\": true,\n        \"message\": \"API key removed for {provider}\"\n    }","operationId":"delete_user_ai_key_api_users_me_ai_keys__provider__delete","parameters":[{"name":"provider","in":"path","required":true,"schema":{"type":"string","title":"Provider"}},{"$ref":"#/components/parameters/IdempotencyKey"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"400":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"401":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"403":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"404":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"409":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"429":{"description":"Too Many Requests","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}},"500":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemDetails"}}}}},"x-channel":"rest_compat"}}},"components":{"schemas":{"ABTestRequest":{"properties":{"env_a_uuid":{"type":"string","title":"Env A Uuid"},"env_b_uuid":{"type":"string","title":"Env B Uuid"},"split_ratio":{"type":"integer","maximum":99.0,"minimum":1.0,"title":"Split Ratio","default":50},"segment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Segment Id"},"name":{"type":"string","title":"Name","default":""},"primary_metric":{"type":"string","title":"Primary Metric","default":"conversion"}},"type":"object","required":["env_a_uuid","env_b_uuid"],"title":"ABTestRequest"},"AcceptListingRequest":{"properties":{"buyer_offer":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Buyer Offer"}},"type":"object","required":["buyer_offer"],"title":"AcceptListingRequest"},"AcceptanceRunBody":{"properties":{"suite_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suite Id","default":"fadeev_m85"},"group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group"},"case_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Case Id"},"eval_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Eval Mode"},"bot_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bot Uuid"},"principal_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Principal User Id"},"env_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Env Uuid"}},"type":"object","title":"AcceptanceRunBody"},"AccessGrantBody":{"properties":{"principal_user_id":{"type":"integer","minimum":1.0,"title":"Principal User Id"},"product_id":{"type":"string","maxLength":128,"minLength":1,"title":"Product Id"},"tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tier"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["principal_user_id","product_id"],"title":"AccessGrantBody"},"AccessSimulateBody":{"properties":{"principal_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Principal User Id"},"product_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Id"},"channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel"},"external_user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External User Id"}},"type":"object","title":"AccessSimulateBody"},"ActivateBody":{"properties":{"hook_base":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hook Base"}},"type":"object","title":"ActivateBody","description":"Omit ``hook_base`` so Core uses ``AGENTSTACK_PUBLIC_URL`` / ``default_hook_base``."},"ActivityCreateBody":{"properties":{"kind":{"type":"string","title":"Kind","default":"note"},"body":{"type":"string","title":"Body","default":""},"status":{"type":"string","title":"Status","default":"logged"},"contact_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Id"},"deal_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deal Id"},"due_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Due At"}},"type":"object","title":"ActivityCreateBody"},"AddRatingRequest":{"properties":{"rating":{"type":"integer","title":"Rating"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"}},"type":"object","required":["rating"],"title":"AddRatingRequest"},"AdminDataDnaListResponse":{"properties":{"table":{"type":"string","title":"Table"},"entities":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Entities"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["table","total","limit","offset"],"title":"AdminDataDnaListResponse"},"AdminDataDnaListSample":{"properties":{"total":{"type":"integer","title":"Total"},"returned":{"type":"integer","title":"Returned"}},"type":"object","required":["total","returned"],"title":"AdminDataDnaListSample"},"AdminDataHealthResponse":{"properties":{"ok":{"type":"boolean","title":"Ok","default":true},"projects_count":{"type":"integer","title":"Projects Count"},"users_count":{"type":"integer","title":"Users Count"},"sample_projects_returned":{"type":"integer","title":"Sample Projects Returned","default":0},"ecosystem_project_id":{"type":"integer","title":"Ecosystem Project Id","default":1},"dna_list_counts":{"anyOf":[{"additionalProperties":{"type":"integer"},"type":"object"},{"type":"null"}],"title":"Dna List Counts"},"projects_count_excl_showcase":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Projects Count Excl Showcase"},"showcase_projects_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Showcase Projects Count"}},"type":"object","required":["projects_count","users_count"],"title":"AdminDataHealthResponse"},"AdminDataPeopleMeta":{"properties":{"project_id":{"type":"integer","title":"Project Id"},"project_count":{"type":"integer","title":"Project Count"},"user_count":{"type":"integer","title":"User Count"},"page":{"type":"integer","title":"Page"},"per_page":{"type":"integer","title":"Per Page"},"projects_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Projects Source"},"users_source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Users Source"}},"type":"object","required":["project_id","project_count","user_count","page","per_page"],"title":"AdminDataPeopleMeta"},"AdminDataPeopleResponse":{"properties":{"projects":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Projects"},"users":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Users"},"meta":{"$ref":"#/components/schemas/AdminDataPeopleMeta"}},"type":"object","required":["meta"],"title":"AdminDataPeopleResponse"},"AdminDataPeopleSummary":{"properties":{"project_count":{"type":"integer","title":"Project Count"},"user_count":{"type":"integer","title":"User Count"},"users_returned":{"type":"integer","title":"Users Returned"}},"type":"object","required":["project_count","user_count","users_returned"],"title":"AdminDataPeopleSummary"},"AdminDataSnapshotResponse":{"properties":{"health":{"$ref":"#/components/schemas/AdminDataHealthResponse"},"people_summary":{"$ref":"#/components/schemas/AdminDataPeopleSummary"},"people":{"anyOf":[{"$ref":"#/components/schemas/AdminDataPeopleResponse"},{"type":"null"}]},"dna_list_samples":{"additionalProperties":{"$ref":"#/components/schemas/AdminDataDnaListSample"},"type":"object","title":"Dna List Samples"}},"type":"object","required":["health","people_summary","dna_list_samples"],"title":"AdminDataSnapshotResponse"},"AdminFolderBody":{"properties":{"segments":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Segments"}},"type":"object","required":["segments"],"title":"AdminFolderBody"},"AdminMoveBody":{"properties":{"new_folder":{"type":"string","title":"New Folder","description":"Target folder key or _ for root"}},"type":"object","required":["new_folder"],"title":"AdminMoveBody"},"AdminRagTierOverrideBody":{"properties":{"tier":{"type":"string","title":"Tier","description":"free | starter | pro | enterprise"}},"type":"object","required":["tier"],"title":"AdminRagTierOverrideBody"},"AdminReconcileBody":{"properties":{"delete_disk_orphans":{"type":"boolean","title":"Delete Disk Orphans","default":false},"purge_dna_ghosts":{"type":"boolean","title":"Purge Dna Ghosts","default":false},"index_disk_orphans":{"type":"boolean","title":"Index Disk Orphans","default":false},"recalculate_quota":{"type":"boolean","title":"Recalculate Quota","default":true},"dry_run":{"type":"boolean","title":"Dry Run","default":true}},"type":"object","title":"AdminReconcileBody"},"AgentCreateBody":{"properties":{"name":{"type":"string","title":"Name","default":"Agent"},"description":{"type":"string","title":"Description","default":""}},"type":"object","title":"AgentCreateBody"},"AgentImportFromAssetBody":{"properties":{"asset":{"additionalProperties":true,"type":"object","title":"Asset"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"env_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Env Uuid"}},"type":"object","title":"AgentImportFromAssetBody"},"AgentImportPackBody":{"properties":{"agent_spec":{"additionalProperties":true,"type":"object","title":"Agent Spec"},"template_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"fork_on_collision":{"type":"boolean","title":"Fork On Collision","default":true},"env_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Env Uuid"}},"type":"object","title":"AgentImportPackBody"},"AgentPatchBody":{"properties":{"path_updates":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Path Updates","description":"Dotted paths; string leaves accept {replacements|unified_diff}"},"section":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Section"},"section_value":{"anyOf":[{},{"type":"null"}],"title":"Section Value"},"write_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Write Mode","default":"merge"}},"type":"object","title":"AgentPatchBody","description":"Leaf edits on agent_spec (MCP parity: agents.update path_updates / section)."},"AgentPlanPatchBody":{"properties":{"patch":{"additionalProperties":true,"type":"object","title":"Patch"},"ops":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Ops"},"replace":{"type":"boolean","title":"Replace","default":false},"replace_confirmed":{"type":"boolean","title":"Replace Confirmed","default":false},"if_match_revision":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"If Match Revision"},"env_uuid":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Env Uuid"},"archive_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Archive Ids"}},"type":"object","title":"AgentPlanPatchBody"},"AgentRunDetailDTO":{"properties":{"run_id":{"type":"string","title":"Run Id"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"stage":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"error_detail":{"anyOf":[{"$ref":"#/components/schemas/RunErrorDetailV1"},{"type":"null"}]},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"finished_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Finished At"},"summary":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Summary"}},"additionalProperties":true,"type":"object","required":["run_id"],"title":"AgentRunDetailDTO","description":"Additive run cockpit shape from ``build_agent_run_detail``."},"AgentTaskList":{"properties":{"version":{"type":"integer","minimum":1.0,"title":"Version","default":3},"revision":{"type":"integer","minimum":0.0,"title":"Revision","default":0},"root_prompt":{"type":"string","maxLength":4000,"title":"Root Prompt","default":""},"tasks":{"items":{"$ref":"#/components/schemas/PlanNode-Output"},"type":"array","title":"Tasks"},"active_goal_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Active Goal Id"},"archived_completed_count":{"type":"integer","minimum":0.0,"title":"Archived Completed Count","default":0},"archived_ids_tail":{"items":{"type":"string"},"type":"array","title":"Archived Ids Tail"}},"type":"object","title":"AgentTaskList","description":"Plan / Work Graph container. version 3 = Work Graph fields present."},"AgentUpdateBody":{"properties":{"agent_spec":{"additionalProperties":true,"type":"object","title":"Agent Spec"}},"type":"object","required":["agent_spec"],"title":"AgentUpdateBody"},"AgentsAdminExecuteBody":{"properties":{"action":{"type":"string","minLength":8,"title":"Action","description":"e.g. agents.admin.set_global_killswitch"},"params":{"additionalProperties":true,"type":"object","title":"Params"}},"type":"object","required":["action"],"title":"AgentsAdminExecuteBody"},"AgentsOpBeaconsBody":{"properties":{"events":{"items":{"$ref":"#/components/schemas/MessengerOpBeaconEvent"},"type":"array","maxItems":256,"title":"Events"},"rollup":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rollup"},"rollout":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rollout"}},"type":"object","title":"AgentsOpBeaconsBody"},"AgusdMintBody":{"properties":{"user_id":{"type":"integer","minimum":1.0,"title":"User Id"},"amount_atomic":{"type":"integer","exclusiveMinimum":0.0,"title":"Amount Atomic"},"idempotency_key":{"type":"string","maxLength":128,"minLength":8,"title":"Idempotency Key"}},"type":"object","required":["user_id","amount_atomic","idempotency_key"],"title":"AgusdMintBody","description":"Admin mint agUSD to a user (L0 reserve → user)."},"AnchorBody":{"properties":{"problem":{"type":"string","title":"Problem","default":""},"innovation":{"type":"string","title":"Innovation","default":""},"team":{"type":"string","title":"Team","default":""},"commercial_path":{"type":"string","title":"Commercial Path","default":""},"technical_approach":{"type":"string","title":"Technical Approach","default":""},"sdg_tags":{"items":{"type":"integer"},"type":"array","title":"Sdg Tags"},"demo_url":{"type":"string","title":"Demo Url","default":"https://agentstack.tech/grants/demo"}},"type":"object","title":"AnchorBody"},"AnchorConfigPatch":{"properties":{"env_uuid":{"type":"string","title":"Env Uuid"},"shadow_writes":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Shadow Writes"},"rollout_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Rollout Steps"},"env_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Env Name"}},"type":"object","required":["env_uuid"],"title":"AnchorConfigPatch"},"ApplicationPatchBody":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"payout_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payout Label"},"apply_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apply Url"},"deadline_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deadline At"},"primary_metric":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Metric"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"video_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video Url"},"farcaster_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Farcaster Url"},"follow_up_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Follow Up At"}},"type":"object","title":"ApplicationPatchBody"},"ApplyBuffRequest":{"properties":{"entity_id":{"type":"integer","title":"Entity Id"},"entity_kind":{"type":"string","title":"Entity Kind"},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},"type":"object","required":["entity_id","entity_kind"],"title":"ApplyBuffRequest","description":"Request model for applying a buff"},"ApplyCouponRequest":{"properties":{"coupon":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Coupon"},"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"}},"type":"object","title":"ApplyCouponRequest"},"ApproveRunBody":{"properties":{"reviewed_params":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Reviewed Params"},"reviewer_note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Reviewer Note"},"approval_artifact_hash":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Approval Artifact Hash"}},"type":"object","title":"ApproveRunBody"},"ArchiveBody":{"properties":{"deactivate_webhook":{"type":"boolean","title":"Deactivate Webhook","default":true}},"type":"object","title":"ArchiveBody"},"AttachChannelBody":{"properties":{"connection_uuid":{"type":"string","title":"Connection Uuid"},"kind":{"type":"string","title":"Kind"},"external_bot_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Bot Id"}},"type":"object","required":["connection_uuid","kind"],"title":"AttachChannelBody"},"BackupCreateRequest":{"properties":{"backup_name":{"type":"string","title":"Backup Name"},"backup_type":{"type":"string","title":"Backup Type","default":"manual"},"entities":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Entities"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"include_protected":{"type":"boolean","title":"Include Protected","default":true},"include_inactive":{"type":"boolean","title":"Include Inactive","default":false}},"type":"object","required":["backup_name","entities"],"title":"BackupCreateRequest"},"BackupRestoreRequest":{"properties":{"entity_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Entity Types"},"target_project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Target Project Id"},"overwrite_existing":{"type":"boolean","title":"Overwrite Existing","default":false}},"type":"object","title":"BackupRestoreRequest"},"BackupScheduleRequest":{"properties":{"name":{"type":"string","title":"Name"},"frequency":{"type":"string","title":"Frequency"},"time":{"type":"string","title":"Time"},"entities":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Entities"},"enabled":{"type":"boolean","title":"Enabled","default":true}},"type":"object","required":["name","frequency","time","entities"],"title":"BackupScheduleRequest"},"BalanceResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"balance":{"type":"number","title":"Balance"},"currency":{"type":"string","title":"Currency"},"available":{"type":"number","title":"Available"},"locked":{"type":"number","title":"Locked"}},"type":"object","required":["success","balance","currency","available","locked"],"title":"BalanceResponse","description":"Response for balance operations"},"BatchCommandRequest":{"properties":{"commands":{"items":{"$ref":"#/components/schemas/protein_commands__router__CommandRequest"},"type":"array","title":"Commands"},"execute_parallel":{"type":"boolean","title":"Execute Parallel","default":true},"fail_fast":{"type":"boolean","title":"Fail Fast","default":false}},"type":"object","required":["commands"],"title":"BatchCommandRequest","description":"Request model for batch commands"},"BatchCommandResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"total_commands":{"type":"integer","title":"Total Commands"},"successful_commands":{"type":"integer","title":"Successful Commands"},"failed_commands":{"type":"integer","title":"Failed Commands"},"results":{"items":{"$ref":"#/components/schemas/protein_commands__router__CommandResponse"},"type":"array","title":"Results"},"total_execution_time_ms":{"type":"number","title":"Total Execution Time Ms"}},"type":"object","required":["success","total_commands","successful_commands","failed_commands","results","total_execution_time_ms"],"title":"BatchCommandResponse","description":"Response model for batch commands (Philosophy v0.1.2)"},"BatchFileEntry":{"properties":{"path":{"type":"string","maxLength":256,"minLength":1,"title":"Path"},"content":{"anyOf":[{"type":"string","maxLength":2000000},{"type":"null"}],"title":"Content"},"content_base64":{"anyOf":[{"type":"string","maxLength":3000000},{"type":"null"}],"title":"Content Base64"}},"type":"object","required":["path"],"title":"BatchFileEntry"},"BatchFilesBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"files":{"items":{"$ref":"#/components/schemas/BatchFileEntry"},"type":"array","maxItems":50,"minItems":1,"title":"Files"},"replace_site":{"type":"boolean","title":"Replace Site","default":false},"confirm_site_replace":{"type":"boolean","title":"Confirm Site Replace","default":false}},"type":"object","required":["project_id","files"],"title":"BatchFilesBody"},"BatchRequest":{"properties":{"requests":{"items":{"$ref":"#/components/schemas/BatchRequestItem"},"type":"array","title":"Requests"},"execute_parallel":{"type":"boolean","title":"Execute Parallel","default":true}},"type":"object","required":["requests"],"title":"BatchRequest","description":"Батч запросов"},"BatchRequestItem":{"properties":{"id":{"type":"string","title":"Id"},"method":{"type":"string","title":"Method"},"url":{"type":"string","title":"Url"},"headers":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Headers"},"body":{"anyOf":[{},{"type":"null"}],"title":"Body"},"params":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Params"}},"type":"object","required":["id","method","url"],"title":"BatchRequestItem","description":"Один запрос в батче"},"BatchResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"results":{"items":{"$ref":"#/components/schemas/BatchResponseItem"},"type":"array","title":"Results"},"total":{"type":"integer","title":"Total"},"successful":{"type":"integer","title":"Successful"},"failed":{"type":"integer","title":"Failed"},"diagnostics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Diagnostics","description":"Aggregate timing / dedup hints (optional)"}},"type":"object","required":["success","results","total","successful","failed"],"title":"BatchResponse","description":"Ответ батча"},"BatchResponseItem":{"properties":{"id":{"type":"string","title":"Id"},"status":{"type":"integer","title":"Status"},"data":{"title":"Data"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"error_details":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Error Details"},"latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latency Ms","description":"Sub-request latency (ms)"}},"type":"object","required":["id","status","data"],"title":"BatchResponseItem","description":"Результат одного запроса"},"BindTestVaultWalletBody":{"properties":{"user_id":{"type":"integer","minimum":1.0,"title":"User Id"},"wallet_address":{"type":"string","maxLength":42,"minLength":42,"title":"Wallet Address"},"chain_id":{"type":"integer","minimum":1.0,"title":"Chain Id","default":84532}},"type":"object","required":["user_id","wallet_address"],"title":"BindTestVaultWalletBody"},"BnbRegisterBody":{"properties":{"agent_uuid":{"type":"string","minLength":4,"title":"Agent Uuid"},"name":{"type":"string","maxLength":128,"title":"Name","default":"AgentStack Agent"},"description":{"type":"string","maxLength":2000,"title":"Description","default":""},"a2a_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"A2A Url"}},"type":"object","required":["agent_uuid"],"title":"BnbRegisterBody"},"Body_admin_create_oauth_client_api_admin_oauth2_clients_post":{"properties":{"client_name":{"type":"string","title":"Client Name","description":"Client name"},"redirect_uris":{"items":{"type":"string"},"type":"array","title":"Redirect Uris","description":"Redirect URIs"},"grant_types":{"items":{"type":"string"},"type":"array","title":"Grant Types","description":"Grant types"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes","description":"Scopes"},"client_type":{"type":"string","title":"Client Type","description":"Client type (confidential or public)","default":"confidential"},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id","description":"Owner user_id (default: current user)"}},"type":"object","required":["client_name","redirect_uris","grant_types","scopes"],"title":"Body_admin_create_oauth_client_api_admin_oauth2_clients_post"},"Body_admin_update_oauth_client_api_admin_oauth2_clients__client_id__put":{"properties":{"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"grant_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Grant Types"},"redirect_uris":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Redirect Uris"},"scopes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes"},"client_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Name"}},"type":"object","title":"Body_admin_update_oauth_client_api_admin_oauth2_clients__client_id__put"},"Body_admin_update_provider_api_admin_oauth2_providers__provider_id__put":{"properties":{"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Id"},"client_secret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Secret"},"scopes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"icon":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Icon"}},"type":"object","title":"Body_admin_update_provider_api_admin_oauth2_providers__provider_id__put"},"Body_ai_builder_chat_api_ai_builder_chat_post":{"properties":{"message":{"type":"string","title":"Message","description":"User message"},"conversation_history":{"anyOf":[{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"},{"type":"null"}],"title":"Conversation History","description":"Conversation history"},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"action":{"type":"string","title":"Action","default":"chat"}},"type":"object","required":["message"],"title":"Body_ai_builder_chat_api_ai_builder_chat_post"},"Body_ai_builder_chat_stream_api_ai_builder_chat_stream_post":{"properties":{"message":{"type":"string","title":"Message","description":"User message"},"conversation_history":{"anyOf":[{"items":{"additionalProperties":{"type":"string"},"type":"object"},"type":"array"},{"type":"null"}],"title":"Conversation History","description":"Conversation history"},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"action":{"type":"string","title":"Action","default":"chat"}},"type":"object","required":["message"],"title":"Body_ai_builder_chat_stream_api_ai_builder_chat_stream_post"},"Body_confirm_deal_api_marketplace_listings__listing_id__confirm_post":{"properties":{"side":{"type":"string","title":"Side","description":"Side: 'seller' or 'buyer'"}},"type":"object","required":["side"],"title":"Body_confirm_deal_api_marketplace_listings__listing_id__confirm_post"},"Body_connect_oauth_provider_api_oauth2_connect__provider__post":{"properties":{"access_token":{"type":"string","title":"Access Token","description":"Access token from provider"},"refresh_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refresh Token","description":"Refresh token from provider"},"expires_in":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires In","description":"Token expiration in seconds"},"provider_user_id":{"type":"string","title":"Provider User Id","description":"User ID from provider"},"provider_email":{"type":"string","title":"Provider Email","description":"Email from provider"},"provider_username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Username","description":"Username from provider"},"scopes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes","description":"Granted scopes"},"provider_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Provider Data","description":"Additional provider data"}},"type":"object","required":["access_token","provider_user_id","provider_email"],"title":"Body_connect_oauth_provider_api_oauth2_connect__provider__post"},"Body_create_file_api_projects__project_id__files_post":{"properties":{"file_path":{"type":"string","title":"File Path","description":"File path (e.g., src/components/Navbar.jsx)"},"content":{"type":"string","title":"Content","description":"File content"},"file_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Type","description":"File type: component, util, hook, service, main"}},"type":"object","required":["file_path","content"],"title":"Body_create_file_api_projects__project_id__files_post"},"Body_create_oauth_client_api_oauth2_clients_post":{"properties":{"client_name":{"type":"string","title":"Client Name","description":"Client name"},"redirect_uris":{"items":{"type":"string"},"type":"array","title":"Redirect Uris","description":"Redirect URIs"},"grant_types":{"items":{"type":"string"},"type":"array","title":"Grant Types","description":"Grant types"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes","description":"Scopes"},"client_type":{"type":"string","title":"Client Type","description":"Client type (confidential or public)","default":"confidential"}},"type":"object","required":["client_name","redirect_uris","grant_types","scopes"],"title":"Body_create_oauth_client_api_oauth2_clients_post"},"Body_create_snapshot_api_ai_builder_projects__project_id__create_snapshot_post":{"properties":{"branch":{"type":"string","title":"Branch","default":"dev"},"description":{"type":"string","title":"Description"}},"type":"object","title":"Body_create_snapshot_api_ai_builder_projects__project_id__create_snapshot_post"},"Body_deposit_to_personal_wallet_api_profile_wallets__wallet_id__deposit_post":{"properties":{"amount":{"anyOf":[{"type":"number"},{"type":"string"}],"title":"Amount","description":"Deposit amount"},"currency":{"type":"string","title":"Currency","description":"Currency","default":"USD"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Transaction description"}},"type":"object","required":["amount"],"title":"Body_deposit_to_personal_wallet_api_profile_wallets__wallet_id__deposit_post"},"Body_deposit_to_project_wallet_api_projects__project_id__wallets__wallet_id__deposit_post":{"properties":{"amount":{"anyOf":[{"type":"number"},{"type":"string"}],"title":"Amount","description":"Deposit amount"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Transaction description"}},"type":"object","required":["amount"],"title":"Body_deposit_to_project_wallet_api_projects__project_id__wallets__wallet_id__deposit_post"},"Body_device_code_approve_api_oauth2_device_approve_post":{"properties":{"user_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Code","description":"User code shown in the device UI"},"link_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link Id","description":"Bot link ticket id"},"link_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link Code","description":"Bot link ticket secret"},"scopes_approved":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes Approved","description":"Subset of requested scopes to actually grant"},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id","description":"Project to bind the issued token to"}},"type":"object","title":"Body_device_code_approve_api_oauth2_device_approve_post"},"Body_device_code_deny_api_oauth2_device_deny_post":{"properties":{"user_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Code"},"link_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link Id"},"link_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Link Code"}},"type":"object","title":"Body_device_code_deny_api_oauth2_device_deny_post"},"Body_edit_component_api_ai_builder_projects__project_id__components__file_path__edit_post":{"properties":{"edit_request":{"type":"string","title":"Edit Request","description":"Edit request"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"}},"type":"object","required":["edit_request"],"title":"Body_edit_component_api_ai_builder_projects__project_id__components__file_path__edit_post"},"Body_generate_component_api_ai_builder_projects__project_id__components_generate_post":{"properties":{"component_name":{"type":"string","title":"Component Name","description":"Component name"},"component_type":{"type":"string","title":"Component Type","description":"Component type"},"purpose":{"type":"string","title":"Purpose","description":"Component purpose"},"props":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Props"},"dependencies":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Dependencies"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"}},"type":"object","required":["component_name","component_type","purpose"],"title":"Body_generate_component_api_ai_builder_projects__project_id__components_generate_post"},"Body_lock_deal_assets_api_marketplace_listings__listing_id__lock_post":{"properties":{"side":{"type":"string","title":"Side","description":"Side: 'seller' or 'buyer'"}},"type":"object","required":["side"],"title":"Body_lock_deal_assets_api_marketplace_listings__listing_id__lock_post"},"Body_purchase_subscription_api_profile_subscriptions_purchase_post":{"properties":{"tier":{"type":"string","title":"Tier","description":"Subscription tier (free, starter, pro, premium, enterprise)"},"billing_cycle":{"type":"string","title":"Billing Cycle","description":"Billing cycle (monthly, yearly)","default":"monthly"},"wallet_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wallet Id","description":"Wallet ID to use for payment (required)"},"currency":{"type":"string","title":"Currency","description":"Currency for payment","default":"USD"},"idempotency_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency Key","description":"Idempotency key for finance.pay execute"}},"type":"object","required":["tier"],"title":"Body_purchase_subscription_api_profile_subscriptions_purchase_post"},"Body_receive_payment_to_project_wallet_api_projects__project_id__wallets__wallet_id__receive_payment_post":{"properties":{"amount":{"anyOf":[{"type":"number"},{"type":"string"}],"title":"Amount","description":"Payment amount"},"customer_email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Customer Email","description":"Customer email"},"payment_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Method","description":"Payment method"}},"type":"object","required":["amount"],"title":"Body_receive_payment_to_project_wallet_api_projects__project_id__wallets__wallet_id__receive_payment_post"},"Body_renew_subscription_api_profile_subscriptions__subscription_id__renew_post":{"properties":{"wallet_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wallet Id","description":"Wallet ID to use for payment (optional)"},"currency":{"type":"string","title":"Currency","description":"Currency for payment","default":"USD"}},"type":"object","title":"Body_renew_subscription_api_profile_subscriptions__subscription_id__renew_post"},"Body_revoke_my_channel_identity_api_auth_me_channel_identities__identity_id__delete":{"properties":{"current_password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Password"}},"type":"object","title":"Body_revoke_my_channel_identity_api_auth_me_channel_identities__identity_id__delete"},"Body_set_user_settings_set_api_auth_settings_set_post":{"properties":{"path":{"type":"string","title":"Path","description":"Settings path to set specific value"},"value":{"title":"Value","description":"Value to set"}},"type":"object","required":["path","value"],"title":"Body_set_user_settings_set_api_auth_settings_set_post"},"Body_test_logic_api_logic_test_post":{"properties":{"json_logic":{"additionalProperties":true,"type":"object","title":"Json Logic","description":"JSON logic to test"},"event_data":{"additionalProperties":true,"type":"object","title":"Event Data","description":"Event data for testing"}},"type":"object","required":["json_logic","event_data"],"title":"Body_test_logic_api_logic_test_post"},"Body_update_design_api_ai_builder_projects__project_id__design_update_post":{"properties":{"design_request":{"type":"string","title":"Design Request","description":"Design request"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"}},"type":"object","required":["design_request"],"title":"Body_update_design_api_ai_builder_projects__project_id__design_update_post"},"Body_update_oauth_client_api_oauth2_clients__client_id__put":{"properties":{"client_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Name"},"redirect_uris":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Redirect Uris"},"grant_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Grant Types"},"scopes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Scopes"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"Body_update_oauth_client_api_oauth2_clients__client_id__put"},"Body_withdraw_from_project_wallet_api_projects__project_id__wallets__wallet_id__withdraw_post":{"properties":{"amount":{"anyOf":[{"type":"number"},{"type":"string"}],"title":"Amount","description":"Withdraw amount"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Transaction description"}},"type":"object","required":["amount"],"title":"Body_withdraw_from_project_wallet_api_projects__project_id__wallets__wallet_id__withdraw_post"},"BridgeFinalizeInBody":{"properties":{"intent_id":{"type":"integer","minimum":1.0,"title":"Intent Id"},"user_id":{"type":"integer","minimum":1.0,"title":"User Id"},"tx_hash":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Tx Hash"}},"type":"object","required":["intent_id","user_id"],"title":"BridgeFinalizeInBody"},"BridgeFinalizeOutBody":{"properties":{"intent_id":{"type":"integer","minimum":1.0,"title":"Intent Id"},"user_id":{"type":"integer","minimum":1.0,"title":"User Id"},"merkle_root":{"type":"string","minLength":16,"title":"Merkle Root"},"epoch":{"type":"integer","minimum":0.0,"title":"Epoch"}},"type":"object","required":["intent_id","user_id","merkle_root","epoch"],"title":"BridgeFinalizeOutBody"},"BridgeIntentCreateBody":{"properties":{"direction":{"type":"string","pattern":"^(in|out)$","title":"Direction"},"chain_id":{"type":"integer","minimum":1.0,"title":"Chain Id"},"amount_atomic":{"type":"integer","exclusiveMinimum":0.0,"title":"Amount Atomic"},"asset_code":{"type":"string","maxLength":16,"title":"Asset Code","default":"AGNT"},"dest_address":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Dest Address"},"user_id":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"User Id"}},"type":"object","required":["direction","chain_id","amount_atomic"],"title":"BridgeIntentCreateBody"},"BroadcastBody":{"properties":{"text":{"type":"string","maxLength":4000,"minLength":1,"title":"Text"},"external_user_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"External User Ids"},"dry_run":{"type":"boolean","title":"Dry Run","default":false},"template_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Name"},"template_language":{"type":"string","title":"Template Language","default":"en"}},"type":"object","required":["text"],"title":"BroadcastBody"},"BucketCreateBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"bucket_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bucket Name"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"visibility":{"$ref":"#/components/schemas/HostingVisibility","default":"public"},"routing_mode":{"$ref":"#/components/schemas/HostingRoutingMode","default":"static_pages"}},"type":"object","required":["project_id"],"title":"BucketCreateBody"},"BucketPatchBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"bucket_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bucket Name"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"status":{"anyOf":[{"$ref":"#/components/schemas/HostingSiteStatus"},{"type":"null"}]},"visibility":{"anyOf":[{"$ref":"#/components/schemas/HostingVisibility"},{"type":"null"}]},"routing_mode":{"anyOf":[{"$ref":"#/components/schemas/HostingRoutingMode"},{"type":"null"}]},"seo_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Title"},"seo_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Description"},"seo_robots":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Robots"},"seo_banner_asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Banner Asset Id"}},"type":"object","required":["project_id"],"title":"BucketPatchBody"},"BuildRequest":{"properties":{"project_id":{"type":"integer","title":"Project Id"},"branch":{"type":"string","title":"Branch","default":"dev"},"priority":{"type":"integer","title":"Priority","default":5}},"type":"object","required":["project_id"],"title":"BuildRequest"},"BulkCreateListingsRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/BulkListingItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"BulkCreateListingsRequest"},"BulkDeactivateBody":{"properties":{"listing_uuids":{"items":{"type":"string"},"type":"array","title":"Listing Uuids"}},"type":"object","title":"BulkDeactivateBody"},"BulkDeleteAssetsRequest":{"properties":{"asset_ids":{"items":{"type":"string"},"type":"array","title":"Asset Ids"}},"type":"object","required":["asset_ids"],"title":"BulkDeleteAssetsRequest"},"BulkDeleteBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"paths":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Paths"},"prefix":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prefix"}},"type":"object","required":["project_id"],"title":"BulkDeleteBody"},"BulkListingItem":{"properties":{"type":{"type":"string","title":"Type","default":"sell"},"asset":{"additionalProperties":true,"type":"object","title":"Asset"},"whitelist":{"additionalProperties":true,"type":"object","title":"Whitelist"},"auto_accept":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Auto Accept"}},"type":"object","required":["asset"],"title":"BulkListingItem"},"BulkUpdateAssetsRequest":{"properties":{"updates":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Updates"}},"type":"object","required":["updates"],"title":"BulkUpdateAssetsRequest"},"CacheInvalidatePatternRequest":{"properties":{"pattern":{"type":"string","title":"Pattern"},"cache_name":{"type":"string","title":"Cache Name","default":"default"}},"type":"object","required":["pattern"],"title":"CacheInvalidatePatternRequest"},"CacheInvalidateTagRequest":{"properties":{"tag":{"type":"string","title":"Tag"},"cache_name":{"type":"string","title":"Cache Name","default":"default"}},"type":"object","required":["tag"],"title":"CacheInvalidateTagRequest"},"CacheSetRequest":{"properties":{"key":{"type":"string","title":"Key"},"value":{"title":"Value"},"ttl":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ttl"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"cache_name":{"type":"string","title":"Cache Name","default":"default"}},"type":"object","required":["key","value"],"title":"CacheSetRequest"},"CardgameBeaconEvent":{"properties":{"name":{"type":"string","maxLength":128,"title":"Name"},"ts":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ts"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"}},"type":"object","required":["name"],"title":"CardgameBeaconEvent"},"CardgameIngestBody":{"properties":{"events":{"items":{"$ref":"#/components/schemas/CardgameBeaconEvent"},"type":"array","maxItems":256,"title":"Events"}},"type":"object","title":"CardgameIngestBody"},"CartCheckoutRequest":{"properties":{"crm_deal_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Crm Deal Id"},"crm_project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Crm Project Id"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"payment_source":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payment Source","description":"When set with wallet_internal, server settles via finance.pay in one call"}},"type":"object","title":"CartCheckoutRequest","description":"Optional CRM link + metadata for cart→checkout (FA-P2 cart body)."},"CartLineQuantityRequest":{"properties":{"quantity":{"type":"integer","maximum":999.0,"minimum":1.0,"title":"Quantity"}},"type":"object","required":["quantity"],"title":"CartLineQuantityRequest"},"CartLineRequest":{"properties":{"listing_uuid":{"type":"string","title":"Listing Uuid"},"quantity":{"type":"integer","minimum":1.0,"title":"Quantity","default":1},"variant":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Variant"}},"type":"object","required":["listing_uuid"],"title":"CartLineRequest"},"CatalogUpsertBody":{"properties":{"kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"payout_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payout Label"},"apply_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apply Url"},"deadline_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deadline At"},"primary_metric":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Metric"},"packet_program":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Packet Program"},"genetic_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Genetic Tag"},"talent_is_not_grant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Talent Is Not Grant"},"wave":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wave"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"scoring_hints":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Scoring Hints"}},"type":"object","title":"CatalogUpsertBody"},"ChannelDeleteBody":{"properties":{"home_project_id":{"type":"integer","title":"Home Project Id"},"channel_id":{"type":"string","maxLength":512,"minLength":1,"title":"Channel Id"}},"type":"object","required":["home_project_id","channel_id"],"title":"ChannelDeleteBody"},"ChannelInviteDirectBody":{"properties":{"home_project_id":{"type":"integer","minimum":1.0,"title":"Home Project Id"},"channel_id":{"type":"string","maxLength":512,"minLength":1,"title":"Channel Id"},"to_user_id":{"type":"integer","minimum":1.0,"title":"To User Id"}},"type":"object","required":["home_project_id","channel_id","to_user_id"],"title":"ChannelInviteDirectBody"},"ChannelInviteIdBody":{"properties":{"invite_id":{"type":"string","maxLength":128,"minLength":1,"title":"Invite Id"}},"type":"object","required":["invite_id"],"title":"ChannelInviteIdBody"},"ChannelInviteLinkBody":{"properties":{"home_project_id":{"type":"integer","minimum":1.0,"title":"Home Project Id"},"channel_id":{"type":"string","maxLength":512,"minLength":1,"title":"Channel Id"}},"type":"object","required":["home_project_id","channel_id"],"title":"ChannelInviteLinkBody"},"ChannelInviteRedeemBody":{"properties":{"token":{"type":"string","maxLength":4096,"minLength":1,"title":"Token"}},"type":"object","required":["token"],"title":"ChannelInviteRedeemBody"},"ChannelLinkBody":{"properties":{"channel":{"type":"string","maxLength":32,"minLength":1,"title":"Channel"},"external_user_id":{"type":"string","maxLength":128,"minLength":1,"title":"External User Id"},"platform_user_id":{"type":"integer","minimum":1.0,"title":"Platform User Id"}},"type":"object","required":["channel","external_user_id","platform_user_id"],"title":"ChannelLinkBody"},"ChannelRegisterBody":{"properties":{"home_project_id":{"type":"integer","title":"Home Project Id"},"title":{"type":"string","title":"Title"},"visibility":{"type":"string","title":"Visibility","default":"open"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"},"room_kind":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Room Kind","default":"open_chat"},"post_policy":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Post Policy","default":"open"},"owner_scope":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Owner Scope"},"channel_id":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Channel Id","description":"Optional; server allocates surrogate id when omitted."}},"type":"object","required":["home_project_id","title"],"title":"ChannelRegisterBody"},"ChannelUpdateBody":{"properties":{"home_project_id":{"type":"integer","title":"Home Project Id"},"channel_id":{"type":"string","maxLength":256,"minLength":1,"title":"Channel Id"},"title":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Title"},"visibility":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Visibility"},"description":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Description"},"room_kind":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Room Kind"},"post_policy":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Post Policy"},"owner_scope":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Owner Scope"}},"type":"object","required":["home_project_id","channel_id"],"title":"ChannelUpdateBody"},"ChatIndexBody":{"properties":{"entries":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Entries"}},"type":"object","required":["entries"],"title":"ChatIndexBody"},"ChatIndexRemoveBody":{"properties":{"home_project_id":{"type":"integer","minimum":1.0,"title":"Home Project Id"},"channel_id":{"type":"string","maxLength":512,"minLength":1,"title":"Channel Id"}},"type":"object","required":["home_project_id","channel_id"],"title":"ChatIndexRemoveBody"},"ChatMessageCommentBody":{"properties":{"home_project_id":{"type":"integer","minimum":1.0,"title":"Home Project Id","default":1},"channel_id":{"type":"string","title":"Channel Id","default":""},"message_id":{"type":"string","title":"Message Id","default":""},"text":{"type":"string","maxLength":2000,"minLength":1,"title":"Text"}},"type":"object","required":["text"],"title":"ChatMessageCommentBody","description":"Server-authoritative per-user comment cell (ADR MESSENGER_MESSAGE_COMMENTS_SERVER_SOT)."},"ChatMessageEditBody":{"properties":{"home_project_id":{"type":"integer","title":"Home Project Id","default":1},"channel_id":{"type":"string","title":"Channel Id"},"message_id":{"type":"string","maxLength":512,"minLength":1,"title":"Message Id"},"body":{"type":"string","maxLength":16000,"title":"Body"}},"type":"object","required":["channel_id","message_id","body"],"title":"ChatMessageEditBody"},"ChatMessageIdBody":{"properties":{"home_project_id":{"type":"integer","title":"Home Project Id","default":1},"channel_id":{"type":"string","title":"Channel Id"},"message_id":{"type":"string","maxLength":512,"minLength":1,"title":"Message Id"}},"type":"object","required":["channel_id","message_id"],"title":"ChatMessageIdBody"},"ChatMessageReactionBody":{"properties":{"home_project_id":{"type":"integer","minimum":1.0,"title":"Home Project Id","default":1},"channel_id":{"type":"string","title":"Channel Id","default":""},"message_id":{"type":"string","title":"Message Id","default":""},"emoji":{"type":"string","maxLength":32,"minLength":1,"title":"Emoji"}},"type":"object","required":["emoji"],"title":"ChatMessageReactionBody","description":"Server-authoritative immutable reaction cell (ADR MESSENGER_REACTIONS_SERVER_SOT)."},"ChatPinBody":{"properties":{"home_project_id":{"type":"integer","title":"Home Project Id","default":1},"channel_id":{"type":"string","title":"Channel Id"},"message_id":{"type":"string","title":"Message Id"}},"type":"object","required":["channel_id","message_id"],"title":"ChatPinBody"},"ChatPostBody":{"properties":{"home_project_id":{"type":"integer","title":"Home Project Id","default":1},"channel_id":{"type":"string","title":"Channel Id"},"body":{"type":"string","maxLength":16000,"title":"Body"},"meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta"},"attachments":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array","maxItems":12},{"type":"null"}],"title":"Attachments"},"client_message_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Client Message Id","description":"Optional client idempotency key (8–128 URL-safe chars); replays return the same row."}},"type":"object","required":["channel_id","body"],"title":"ChatPostBody"},"ChatReadBody":{"properties":{"home_project_id":{"type":"integer","title":"Home Project Id"},"channel_id":{"type":"string","maxLength":512,"minLength":1,"title":"Channel Id"},"last_message_id":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Last Message Id"},"last_seq":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Last Seq"}},"type":"object","required":["home_project_id","channel_id"],"title":"ChatReadBody"},"CheckFieldBody":{"properties":{"field_path":{"type":"string","title":"Field Path","description":"Dot path: 'resource.field' (e.g., 'orders.profit_margin')"},"user_role":{"type":"string","title":"User Role","description":"Role to test"},"permission":{"type":"string","title":"Permission","description":"'read' or 'write'","default":"read"},"permissions_bitmap":{"type":"integer","title":"Permissions Bitmap","description":"Bitmap from session/JWT","default":0},"user_id":{"type":"integer","title":"User Id","description":"User ID (0 = anonymous)","default":0},"resource_owner_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resource Owner Id","description":"Owner ID for 'owner' descriptor evaluation"}},"type":"object","required":["field_path","user_role"],"title":"CheckFieldBody","description":"Body for POST /check"},"CheckpointBody":{"properties":{"env_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Env Uuid","description":"Anchor or production project-slice uuid (default: canonical row)"},"label":{"type":"string","maxLength":120,"title":"Label","default":"api-checkpoint"}},"type":"object","title":"CheckpointBody"},"CheckpointRequest":{"properties":{"env_uuid":{"type":"string","title":"Env Uuid"},"label":{"type":"string","title":"Label","default":""},"table":{"type":"string","title":"Table","default":"data_projects_8dna"}},"type":"object","required":["env_uuid"],"title":"CheckpointRequest"},"CleanupRequest":{"properties":{"env_uuid":{"type":"string","title":"Env Uuid"},"cascade":{"type":"boolean","title":"Cascade","default":true}},"type":"object","required":["env_uuid"],"title":"CleanupRequest"},"ClientOpBeaconEvent":{"properties":{"event":{"type":"string","maxLength":96,"title":"Event"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"},"tag":{"anyOf":[{"type":"string","maxLength":96},{"type":"null"}],"title":"Tag"},"ts_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ts Ms"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload"}},"type":"object","required":["event"],"title":"ClientOpBeaconEvent"},"ClientOpBeaconsBody":{"properties":{"events":{"items":{"$ref":"#/components/schemas/ClientOpBeaconEvent"},"type":"array","maxItems":256,"title":"Events"},"rollup":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rollup"}},"type":"object","title":"ClientOpBeaconsBody","description":"Unified client beacon batch from ``recordClientBeacon.ts``."},"CloneSiteFromReleaseBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"bucket_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bucket Name"},"visibility":{"$ref":"#/components/schemas/HostingVisibility","default":"public"}},"type":"object","required":["project_id"],"title":"CloneSiteFromReleaseBody"},"CollectionCreateRequest":{"properties":{"name":{"type":"string","title":"Name","description":"Collection name"},"description":{"type":"string","title":"Description","description":"Optional description","default":""},"embedding_provider":{"type":"string","title":"Embedding Provider","description":"openai | gemini","default":"openai"},"scope":{"type":"string","title":"Scope","description":"project = shared project KB; user = personal KB on ecosystem cell","default":"project"},"home_project_id":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Home Project Id","description":"When session project_id is ecosystem (1), set this to the tenant project that should own RAG rows (requires read access)."}},"type":"object","required":["name"],"title":"CollectionCreateRequest","example":{"description":"Mentor transcripts","embedding_provider":"openai","home_project_id":1445,"name":"mentor-kb","scope":"project"}},"CommerceAiGenerateProductsBody":{"properties":{"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"prompt":{"type":"string","title":"Prompt","default":""},"count":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Count","default":3},"preset_id":{"type":"string","title":"Preset Id","default":"marketplace_product"},"context":{"additionalProperties":true,"type":"object","title":"Context"}},"type":"object","title":"CommerceAiGenerateProductsBody"},"CommerceAiMagicFillBody":{"properties":{"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"preset_id":{"type":"string","title":"Preset Id","default":"marketplace_product"},"source_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Text"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"partial_answers":{"additionalProperties":true,"type":"object","title":"Partial Answers"}},"type":"object","title":"CommerceAiMagicFillBody"},"CommerceAiSuggestFieldBody":{"properties":{"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"preset_id":{"type":"string","title":"Preset Id","default":"marketplace_product"},"field":{"type":"string","title":"Field"},"partial_answers":{"additionalProperties":true,"type":"object","title":"Partial Answers"},"context":{"additionalProperties":true,"type":"object","title":"Context"}},"type":"object","required":["field"],"title":"CommerceAiSuggestFieldBody"},"CommerceCrmSnapshotDTO":{"properties":{"project_id":{"type":"integer","title":"Project Id"},"contacts_count":{"type":"integer","title":"Contacts Count","default":0},"open_deals":{"type":"integer","title":"Open Deals","default":0},"stale_deals":{"type":"integer","title":"Stale Deals","default":0},"pipeline":{"items":{"$ref":"#/components/schemas/CrmPipelineStageDTO"},"type":"array","title":"Pipeline"}},"type":"object","required":["project_id"],"title":"CommerceCrmSnapshotDTO"},"CommerceOfferBody":{"properties":{"listing_uuid":{"type":"string","minLength":4,"title":"Listing Uuid"},"cta_label":{"type":"string","maxLength":64,"title":"Cta Label","default":"View offer"},"intro_text":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Intro Text"},"mirror_to_chat":{"type":"boolean","title":"Mirror To Chat","default":true}},"type":"object","required":["listing_uuid"],"title":"CommerceOfferBody"},"CommerceOverviewDTO":{"properties":{"storefront_ready":{"type":"boolean","title":"Storefront Ready","default":false},"index_listing_count":{"type":"integer","title":"Index Listing Count","default":0},"stuck_escrow_count":{"type":"integer","title":"Stuck Escrow Count","default":0},"checkout_failed_24h":{"type":"integer","title":"Checkout Failed 24H","default":0},"assets_preset_count":{"type":"integer","title":"Assets Preset Count","default":0},"crm_contacts_count":{"type":"integer","title":"Crm Contacts Count","default":0},"crm_open_deals":{"type":"integer","title":"Crm Open Deals","default":0},"evaluated_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evaluated At"}},"type":"object","title":"CommerceOverviewDTO"},"ComputeCreditsPurchaseBody":{"properties":{"buyer_user_id":{"type":"integer","minimum":1.0,"title":"Buyer User Id"},"credits_atomic":{"type":"integer","maximum":1000000000.0,"exclusiveMinimum":0.0,"title":"Credits Atomic"},"idempotency_key":{"type":"string","maxLength":256,"minLength":8,"title":"Idempotency Key"},"quote_id":{"type":"string","maxLength":64,"minLength":8,"title":"Quote Id"},"quote_hash":{"anyOf":[{"type":"string","maxLength":128,"minLength":16},{"type":"null"}],"title":"Quote Hash"},"max_agnt_atomic":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Agnt Atomic"},"trace_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Trace Id"},"demo_intent_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Demo Intent Id"},"include_proof":{"type":"boolean","title":"Include Proof","default":false}},"type":"object","required":["buyer_user_id","credits_atomic","idempotency_key","quote_id"],"title":"ComputeCreditsPurchaseBody"},"ComputeCreditsQuoteBody":{"properties":{"buyer_user_id":{"type":"integer","minimum":1.0,"title":"Buyer User Id"},"credits_atomic":{"type":"integer","maximum":1000000000.0,"exclusiveMinimum":0.0,"title":"Credits Atomic"},"demo_intent_id":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Demo Intent Id"}},"type":"object","required":["buyer_user_id","credits_atomic"],"title":"ComputeCreditsQuoteBody"},"ConflictStrategy":{"type":"string","enum":["ecosystem_wins","tenant_wins","deep_merge"],"title":"ConflictStrategy"},"ContactCreateBody":{"properties":{"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"emails":{"items":{"type":"string"},"type":"array","title":"Emails"},"phones":{"items":{"type":"string"},"type":"array","title":"Phones"},"company_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Id"},"source":{"type":"string","title":"Source","default":"manual"},"custom":{"additionalProperties":true,"type":"object","title":"Custom"}},"type":"object","title":"ContactCreateBody"},"ContentMetadataPatch":{"properties":{"access_tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Tier"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"content_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Type"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"product_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Product Ids"},"audience":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Audience"},"contraindications":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contraindications"},"text":{"anyOf":[{"type":"string","maxLength":200000,"minLength":1},{"type":"null"}],"title":"Text"},"gene_stems":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Gene Stems"},"write_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Write Mode","description":"search_replace|unified_diff preferred for a known phrase; append|prepend add; replace|write is the full body; patch/merge is metadata-only"},"replacements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Replacements","description":"search_replace pairs [{\"find\",\"replace\"}]. No prior GET."},"unified_diff":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unified Diff","description":"Unified diff against the stored body. Fuzzy unless strict_diff."},"strict_diff":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Strict Diff"},"allow_shrink":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Allow Shrink","description":"Required when replacing a long document with a much shorter body"},"dry_run":{"type":"boolean","title":"Dry Run","description":"Preview body edit without re-embed; returns previous_sha256 + leaf_sha256.","default":false},"expected_sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Sha256","description":"CAS on joined document body; use previous_sha256 from dry_run on commit."}},"type":"object","title":"ContentMetadataPatch"},"ContentPatchBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"patch_plane":{"type":"string","title":"Patch Plane","description":"live|workspace","default":"live"},"write_mode":{"type":"string","minLength":1,"title":"Write Mode"},"content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content"},"unified_diff":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unified Diff"},"replacements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Replacements"},"expected_sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Sha256"},"dry_run":{"type":"boolean","title":"Dry Run","default":false},"allow_shrink":{"type":"boolean","title":"Allow Shrink","default":false},"strict_diff":{"type":"boolean","title":"Strict Diff","default":false}},"type":"object","required":["project_id","write_mode"],"title":"ContentPatchBody"},"ContentRelationBody":{"properties":{"source_doc_id":{"type":"string","minLength":1,"title":"Source Doc Id"},"target_doc_id":{"type":"string","minLength":1,"title":"Target Doc Id"},"relation_type":{"type":"string","maxLength":64,"title":"Relation Type","default":"related"}},"type":"object","required":["source_doc_id","target_doc_id"],"title":"ContentRelationBody"},"ContextLane":{"properties":{"id":{"type":"string","enum":["faq","consult","coding","design","architecture"],"title":"Id"},"collection_ids":{"items":{"type":"string"},"type":"array","maxItems":32,"title":"Collection Ids"},"preamble":{"type":"string","maxLength":4000,"title":"Preamble","default":""}},"type":"object","required":["id"],"title":"ContextLane","description":"One retrieval band. Empty collection_ids keep the lane default collection."},"ContextLimits":{"properties":{"prompt_tail_chars":{"type":"integer","maximum":8000.0,"minimum":200.0,"title":"Prompt Tail Chars","default":2000},"lane_preamble_chars":{"type":"integer","maximum":4000.0,"minimum":40.0,"title":"Lane Preamble Chars","default":800},"builder_snippet_chars":{"type":"integer","maximum":12000.0,"minimum":200.0,"title":"Builder Snippet Chars","default":2000},"description_chars":{"type":"integer","maximum":32000.0,"minimum":200.0,"title":"Description Chars","default":8000},"resource_text_chars":{"type":"integer","maximum":48000.0,"minimum":500.0,"title":"Resource Text Chars","default":12000},"evidence_snippet_chars":{"type":"integer","maximum":8000.0,"minimum":200.0,"title":"Evidence Snippet Chars","default":1200},"lane_collection_cap":{"type":"integer","maximum":32.0,"minimum":1.0,"title":"Lane Collection Cap","default":8}},"type":"object","title":"ContextLimits","description":"Operating caps on ``config.knowledge``. Agents patch this; hot paths do not hardcode sizes."},"ContextSource":{"type":"string","enum":["rag","memory","dna_snapshot","crm"],"title":"ContextSource"},"ContextTaskBody":{"properties":{"task":{"type":"string","minLength":1,"title":"Task"},"project_id":{"type":"integer","title":"Project Id"},"token_budget":{"type":"integer","maximum":32000.0,"minimum":200.0,"title":"Token Budget","default":2000},"sources":{"items":{"$ref":"#/components/schemas/ContextSource"},"type":"array","title":"Sources"},"collection_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Collection Id"},"resources":{"items":{"type":"string"},"type":"array","title":"Resources"},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"},"memory_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Memory Session Id"}},"type":"object","required":["task","project_id"],"title":"ContextTaskBody"},"ContributeProjectBody":{"properties":{"from_wallet_id":{"type":"string","title":"From Wallet Id"},"amount":{"type":"number","exclusiveMinimum":0.0,"title":"Amount"},"currency":{"type":"string","title":"Currency","default":"USD"},"idempotency_key":{"type":"string","maxLength":256,"minLength":8,"title":"Idempotency Key"},"message":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Message"},"anonymous":{"type":"boolean","title":"Anonymous","default":false},"display_name":{"anyOf":[{"type":"string","maxLength":120},{"type":"null"}],"title":"Display Name"}},"type":"object","required":["from_wallet_id","amount","idempotency_key"],"title":"ContributeProjectBody"},"CopyBody":{"properties":{"source":{"$ref":"#/components/schemas/CopySourceBody"},"target_folder":{"type":"string","title":"Target Folder","description":"Target folder key in the caller's permanent storage","default":"_"}},"type":"object","required":["source"],"title":"CopyBody"},"CopyFileBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"src_path":{"type":"string","minLength":1,"title":"Src Path"},"dest_path":{"type":"string","minLength":1,"title":"Dest Path"}},"type":"object","required":["project_id","src_path","dest_path"],"title":"CopyFileBody"},"CopySourceBody":{"properties":{"owner_id":{"type":"integer","minimum":1.0,"title":"Owner Id","description":"DNA user id of the source file owner"},"file_id":{"type":"string","maxLength":64,"minLength":1,"title":"File Id"},"is_temp":{"type":"boolean","title":"Is Temp","description":"True for temp storage, false for permanent","default":true},"folder_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Key","description":"Permanent source folder key (required when is_temp=false)"}},"type":"object","required":["owner_id","file_id"],"title":"CopySourceBody"},"CorrectionProposeBody":{"properties":{"correlation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Correlation Id"},"turn_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Turn Id"}},"type":"object","title":"CorrectionProposeBody"},"CouponPreviewRequest":{"properties":{"code":{"type":"string","maxLength":64,"minLength":1,"title":"Code"},"subtotal_minor":{"type":"integer","minimum":0.0,"title":"Subtotal Minor"},"seller_project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seller Project Id"},"listing_uuids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Listing Uuids"}},"type":"object","required":["code","subtotal_minor"],"title":"CouponPreviewRequest"},"CrdtUpdatePostBody":{"properties":{"home_project_id":{"type":"integer","minimum":1.0,"title":"Home Project Id","default":1},"channel_id":{"type":"string","title":"Channel Id","default":""},"update_b64":{"type":"string","title":"Update B64","description":"base64-encoded Y.js binary update"}},"type":"object","required":["update_b64"],"title":"CrdtUpdatePostBody","description":"One Y.js update from a client; server is a dumb relay (Phase B3)."},"CreateAssetRequest":{"properties":{"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"},"price_usdt":{"type":"string","title":"Price Usdt"},"components":{"additionalProperties":true,"type":"object","title":"Components"}},"type":"object","required":["name","type","price_usdt","components"],"title":"CreateAssetRequest"},"CreateBotBody":{"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name","default":"Bot"},"brain_mode":{"type":"string","title":"Brain Mode","default":"echo"},"template_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Id"},"template_variables":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Template Variables"}},"type":"object","title":"CreateBotBody"},"CreateBuffRequest":{"properties":{"entity_id":{"type":"integer","title":"Entity Id"},"entity_kind":{"type":"string","title":"Entity Kind"},"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"},"category":{"type":"string","title":"Category"},"duration_days":{"type":"integer","title":"Duration Days","default":30},"priority":{"type":"integer","title":"Priority","default":100},"effects":{"additionalProperties":true,"type":"object","title":"Effects","default":{}},"on_apply":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"On Apply"},"on_expire":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"On Expire"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},"type":"object","required":["entity_id","entity_kind","name","type","category"],"title":"CreateBuffRequest","description":"Request model for creating a buff"},"CreateCheckoutSessionRequest":{"properties":{"listing_uuid":{"type":"string","title":"Listing Uuid"},"rail":{"type":"string","title":"Rail","default":"wallet_internal"},"lines":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Lines"},"buyer_project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Buyer Project Id"},"crm_deal_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Crm Deal Id"},"crm_project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Crm Project Id"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["listing_uuid"],"title":"CreateCheckoutSessionRequest"},"CreateCommerceIntentRequest":{"properties":{"kind":{"type":"string","enum":["checkout","pay","topup","receipt"],"title":"Kind","default":"checkout"},"listing_uuids":{"items":{"type":"string"},"type":"array","title":"Listing Uuids"},"return_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Return Url"},"cancel_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancel Url"},"source":{"type":"string","title":"Source","default":"api"},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"amount_minor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount Minor"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"locale":{"type":"string","title":"Locale","default":"en"},"theme":{"type":"string","enum":["light","dark","auto"],"title":"Theme","default":"auto"},"expires_in_seconds":{"type":"integer","title":"Expires In Seconds","default":3600}},"type":"object","title":"CreateCommerceIntentRequest"},"CreateCommerceSurfaceSessionRequest":{"properties":{"surface":{"type":"string","enum":["checkout","pay","topup","receipt"],"title":"Surface","default":"checkout"},"listing_uuids":{"items":{"type":"string"},"type":"array","title":"Listing Uuids"},"return_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Return Url"},"cancel_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancel Url"},"theme":{"type":"string","enum":["light","dark","auto"],"title":"Theme","default":"auto"},"locale":{"type":"string","title":"Locale","default":"en"},"amount_minor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount Minor"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"commerce_checkout_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Commerce Checkout Id"},"payment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payment Id"},"expires_in_seconds":{"type":"integer","title":"Expires In Seconds","default":3600}},"type":"object","title":"CreateCommerceSurfaceSessionRequest"},"CreateConnectionBody":{"properties":{"provider":{"type":"string","title":"Provider"},"label":{"type":"string","title":"Label"},"slug":{"type":"string","title":"Slug"},"owner_kind":{"$ref":"#/components/schemas/IntegrationOwnerKind","default":"project"},"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"},"direction":{"type":"string","title":"Direction","default":"bidirectional"},"generation":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Generation"},"secrets":{"additionalProperties":true,"type":"object","title":"Secrets"},"config":{"additionalProperties":true,"type":"object","title":"Config"}},"type":"object","required":["provider","label","slug","project_id"],"title":"CreateConnectionBody"},"CreateInvoiceBody":{"properties":{"type":{"type":"string","title":"Type","description":"payment | transfer | exchange"},"to_user_id":{"type":"integer","title":"To User Id","description":"Recipient user ID"},"to_wallet_id":{"type":"string","title":"To Wallet Id","description":"Recipient wallet ID"},"amount":{"type":"string","title":"Amount","description":"Amount as decimal string"},"currency":{"type":"string","title":"Currency","description":"Currency code","default":"USD"},"description":{"type":"string","title":"Description","description":"Description","default":""},"expires_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires Days","description":"Days until expiry","default":7},"from_wallet_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"From Wallet Id","description":"Sender wallet (transfer)"},"from_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"From User Id","description":"Sender user (transfer/exchange)"},"items":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Items","description":"Exchange items"},"exchange_rate":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Exchange Rate","description":"Exchange rate"}},"type":"object","required":["type","to_user_id","to_wallet_id","amount"],"title":"CreateInvoiceBody","description":"Request body for creating an invoice."},"CreateListingRequest":{"properties":{"type":{"type":"string","title":"Type"},"asset":{"additionalProperties":true,"type":"object","title":"Asset"},"whitelist":{"additionalProperties":true,"type":"object","title":"Whitelist"},"auto_accept":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Auto Accept"},"auction":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Auction"}},"type":"object","required":["type","asset","whitelist"],"title":"CreateListingRequest"},"CreateLogicRequest":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description","default":""},"triggers":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Triggers","default":[]},"schedulers":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Schedulers","default":[]},"space":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Space","default":[]},"editor_metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Editor Metadata","default":{}},"enabled":{"type":"boolean","title":"Enabled","default":true},"priority":{"type":"integer","title":"Priority","default":5}},"type":"object","required":["name"],"title":"CreateLogicRequest","description":"Request model for creating logic"},"CreatePaymentRequest":{"properties":{"amount":{"type":"number","exclusiveMinimum":0.0,"title":"Amount","description":"Payment amount"},"currency":{"type":"string","title":"Currency","description":"Currency code","default":"USD"},"description":{"type":"string","title":"Description","description":"Description","default":""},"intent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Intent","description":"sale | top_up | subscription | energy_pack | currency_pack | soft_currency_pack | studio_diagnostic","default":"sale"},"destination_wallet":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Destination Wallet","description":"Target wallet for top_up"},"preferred_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preferred Method","description":"card | stripe | tochka | wallet"},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method","description":"Alias for preferred_method"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","description":"ISO country for provider matrix"},"scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Scope","description":"user | project","default":"user"},"idempotency_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency Key","description":"Idempotency key"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Metadata"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","description":"Payment type","default":"payment"},"recipient_project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Recipient Project Id","description":"Recipient project for sale"},"use_project_keys":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Project Keys","description":"Use project BYOK","default":false},"success_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Success Url","description":"Redirect URL on payment success (Tochka/redirect providers)"},"fail_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fail Url","description":"Redirect URL on payment failure (Tochka/redirect providers)"},"notification_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notification Url","description":"Server callback URL for provider webhooks (overrides auto-derived URL)"},"base_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Url","description":"Base URL of this deployment, used to derive notification_url when notification_url is not provided"},"checkout_session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checkout Session Id","description":"Commerce checkout session copied onto the provider"},"seller_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seller User Id","description":"Seller credited on the personal wallet"},"buyer_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Buyer User Id","description":"Buyer on the checkout session"},"buyer_project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Buyer Project Id","description":"Buyer project on the checkout session"},"funding_lane":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Funding Lane","description":"personal | treasury"}},"type":"object","required":["amount"],"title":"CreatePaymentRequest"},"CreateScenarioBody":{"properties":{"owner_kind":{"$ref":"#/components/schemas/IntegrationOwnerKind","default":"project"},"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"user_id":{"type":"integer","minimum":1.0,"title":"User Id"},"name":{"type":"string","minLength":1,"title":"Name"},"recipe_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recipe Id"},"connection_ids":{"items":{"type":"string"},"type":"array","title":"Connection Ids"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["project_id","user_id","name"],"title":"CreateScenarioBody"},"CreateUserAPIKeyRequest":{"properties":{"name":{"type":"string","title":"Name","description":"Name for the API key"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At","description":"Expiration date (ISO 8601 format)"},"actor_kind":{"type":"string","enum":["user","agent"],"title":"Actor Kind","description":"user = acts as you; agent = scoped agent","default":"user"},"preset":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preset","description":"agent_runner | readonly_data | commerce_bot | full_project | user_full"},"service_caps":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Service Caps","description":"Explicit cap allowlist; overrides preset"},"resource_scope":{"anyOf":[{"$ref":"#/components/schemas/ResourceScopeModel"},{"type":"null"}],"description":"Default from actor_kind"},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id","description":"Pin for agent keys when resource_scope omitted"},"confirm_agent_all_accessible":{"type":"boolean","title":"Confirm Agent All Accessible","description":"Required when actor_kind=agent and resource_scope is all_accessible","default":false}},"type":"object","required":["name"],"title":"CreateUserAPIKeyRequest"},"CreateUserAPIKeyResponse":{"properties":{"key_id":{"type":"string","title":"Key Id"},"api_key":{"type":"string","title":"Api Key"},"name":{"type":"string","title":"Name"},"created_at":{"type":"string","title":"Created At"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"status":{"type":"string","title":"Status"},"actor_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor Kind"},"resource_scope":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resource Scope"},"service_caps":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Service Caps"},"preset":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preset"}},"type":"object","required":["key_id","api_key","name","created_at","expires_at","status"],"title":"CreateUserAPIKeyResponse"},"CrmPipelineStageDTO":{"properties":{"stage_id":{"type":"string","title":"Stage Id"},"label":{"type":"string","title":"Label","default":""},"count":{"type":"integer","title":"Count","default":0}},"type":"object","required":["stage_id"],"title":"CrmPipelineStageDTO"},"CrossChainExecuteBody":{"properties":{"flow":{"type":"string","title":"Flow","description":"onchain_same_chain | l0_to_chain | chain_to_l0 | chain_via_l0"},"project_id":{"type":"integer","minimum":1.0,"title":"Project Id","default":1},"user_id":{"type":"integer","minimum":1.0,"title":"User Id"},"amount_atomic":{"type":"integer","minimum":1.0,"title":"Amount Atomic"},"from_chain_id":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"From Chain Id"},"to_chain_id":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"To Chain Id"},"idempotency_key":{"type":"string","maxLength":128,"minLength":8,"title":"Idempotency Key"},"leg":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Leg","description":"For chain_via_l0: run leg a (chain→L0) or b (L0→chain)"}},"type":"object","required":["flow","user_id","amount_atomic","idempotency_key"],"title":"CrossChainExecuteBody"},"CrossChainPlanBody":{"properties":{"flow":{"type":"string","title":"Flow","description":"onchain_same_chain | l0_to_chain | chain_to_l0 | chain_via_l0"},"project_id":{"type":"integer","minimum":1.0,"title":"Project Id","default":1},"user_id":{"type":"integer","minimum":1.0,"title":"User Id"},"amount_atomic":{"type":"integer","minimum":1.0,"title":"Amount Atomic"},"from_chain_id":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"From Chain Id"},"to_chain_id":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"To Chain Id"}},"type":"object","required":["flow","user_id","amount_atomic"],"title":"CrossChainPlanBody"},"CustomCurrencyBody":{"properties":{"code":{"type":"string","maxLength":32,"minLength":1,"title":"Code"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"type":{"type":"string","title":"Type","default":"virtual"},"decimals":{"type":"integer","maximum":18.0,"minimum":0.0,"title":"Decimals","default":0},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id","description":"Logical project id for tenant custom currency"}},"type":"object","required":["code"],"title":"CustomCurrencyBody"},"DMDefaultMode":{"type":"string","enum":["everyone","friends_only","whitelist","nobody"],"title":"DMDefaultMode"},"DMPolicy":{"properties":{"default_mode":{"$ref":"#/components/schemas/DMDefaultMode","default":"everyone"},"whitelist_user_ids":{"items":{"type":"integer"},"type":"array","maxItems":500,"title":"Whitelist User Ids"}},"type":"object","title":"DMPolicy"},"DataStoreValueBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"value":{"title":"Value"}},"type":"object","required":["project_id"],"title":"DataStoreValueBody"},"DealCreateBody":{"properties":{"title":{"type":"string","title":"Title","default":"New deal"},"stage_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage Id"},"contact_ids":{"items":{"type":"string"},"type":"array","title":"Contact Ids"},"contact_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Id"},"amount":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Amount"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"due_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Due At"},"company_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Id"},"custom":{"additionalProperties":true,"type":"object","title":"Custom"}},"type":"object","title":"DealCreateBody"},"DealPatchBody":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"stage_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stage Id"},"contact_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Contact Ids"},"contact_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contact Id"},"amount":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Amount"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency"},"due_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Due At"},"company_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company Id"},"custom":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Custom"},"expected_rev":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expected Rev"}},"type":"object","title":"DealPatchBody"},"DefaultsTemplateBody":{"properties":{"default_access":{"type":"string","title":"Default Access","description":"Suggested `default_access` when a project has no globals yet (apply only).","default":"deny"},"globals":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Globals","description":"Suggested FAP globals: `nested_path_mode` (flat|dotted), `max_mask_depth`."},"resources":{"additionalProperties":true,"type":"object","title":"Resources","description":"Map of resource name → same object shape as `PUT /policy/{resource}` body.resource_policy (incl. path_rules)."},"field_triggers":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Field Triggers","description":"Optional global template for FAP v1.2 `field_triggers` (same shape as policy.field_triggers). Omit to leave unchanged on save."}},"type":"object","title":"DefaultsTemplateBody","description":"Global FAP template stored on ecosystem project (`project_id=1`) at\n`data.config.field_access_defaults`.\n\n**Apply** (`POST /defaults-template/apply`) copies only **missing** keys from\n`resources` into a user project — existing resource policies are never overwritten.","example":{"default_access":"deny","globals":{"max_mask_depth":128,"nested_path_mode":"dotted"},"resources":{"orders":{"__default__":"deny","id":"public","total":"user"},"project_payload":{"__default__":"user","config":"admin"}}}},"DelegationBody":{"properties":{"delegation_caps":{"$ref":"#/components/schemas/DelegationCaps"}},"type":"object","required":["delegation_caps"],"title":"DelegationBody"},"DelegationCaps":{"properties":{"allowed_mcp_domains":{"items":{"type":"string"},"type":"array","title":"Allowed Mcp Domains"},"allowed_actions":{"items":{"type":"string"},"type":"array","title":"Allowed Actions"},"max_spend_atomic_per_day":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Spend Atomic Per Day"},"evidence_tier_default":{"$ref":"#/components/schemas/EvidenceTier","default":"none"}},"type":"object","title":"DelegationCaps","description":"On-chain or synced delegation limits — intersected with agent policy + key caps."},"DeletionCancelRequest":{"properties":{"execution_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Execution Token"}},"type":"object","title":"DeletionCancelRequest","description":"Cancel scheduled deletion."},"DeletionExecuteRequest":{"properties":{"execution_token":{"type":"string","title":"Execution Token"}},"type":"object","required":["execution_token"],"title":"DeletionExecuteRequest","description":"Execute purge now."},"DeletionScheduleRequest":{"properties":{"confirm_name":{"type":"string","title":"Confirm Name"},"execution_token":{"type":"string","title":"Execution Token"},"grace_days":{"type":"integer","title":"Grace Days","default":0},"export_pack_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Export Pack Id"},"auto_resolve":{"items":{"type":"string"},"type":"array","title":"Auto Resolve"}},"type":"object","required":["confirm_name","execution_token"],"title":"DeletionScheduleRequest","description":"Schedule or immediate delete request."},"DeliveryRefreshRequest":{"properties":{"order_id":{"type":"string","minLength":1,"title":"Order Id"},"listing_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Listing Uuid"}},"type":"object","required":["order_id"],"title":"DeliveryRefreshRequest"},"DemoPublishBody":{"properties":{"html":{"type":"string","maxLength":512000,"minLength":1,"title":"Html"}},"type":"object","required":["html"],"title":"DemoPublishBody"},"DemoSessionBody":{"properties":{"template_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Template Id"}},"type":"object","title":"DemoSessionBody"},"DiffVersionsRequest":{"properties":{"a":{"type":"string","title":"A","description":"Left version id"},"b":{"type":"string","title":"B","description":"Right version id"}},"type":"object","required":["a","b"],"title":"DiffVersionsRequest"},"DlqBulkReplayRequest":{"properties":{"items":{"items":{"$ref":"#/components/schemas/DlqReplayItemRef"},"type":"array","maxItems":50,"minItems":1,"title":"Items"}},"type":"object","required":["items"],"title":"DlqBulkReplayRequest"},"DlqReplayItemRef":{"properties":{"dlq_source_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dlq Source Id"},"dna_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dna Uuid"}},"type":"object","title":"DlqReplayItemRef"},"DlqReplayRequest":{"properties":{"dlq_source_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dlq Source Id","description":"Original work item id"},"dna_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dna Uuid","description":"DLQ DNA row uuid"},"payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Payload","description":"Explicit payload override"}},"type":"object","title":"DlqReplayRequest"},"DmEnsureBody":{"properties":{"peer_user_id":{"type":"integer","minimum":1.0,"title":"Peer User Id"},"home_project_id":{"type":"integer","minimum":1.0,"title":"Home Project Id","default":1}},"type":"object","required":["peer_user_id"],"title":"DmEnsureBody","description":"Open or create a 1:1 DM channel (subject to recipient ``dm_policy``)."},"DmMessagePostBody":{"properties":{"home_project_id":{"type":"integer","minimum":1.0,"title":"Home Project Id","default":1},"channel_id":{"type":"string","title":"Channel Id","default":""},"body":{"type":"string","maxLength":16000,"title":"Body","default":""},"meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta"},"attachments":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array","maxItems":12},{"type":"null"}],"title":"Attachments"},"client_message_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Client Message Id","description":"Optional client idempotency key (8–128 URL-safe chars); replays return the same row."}},"type":"object","title":"DmMessagePostBody","description":"Append a DM row to the author's user-scoped outbox (deterministic DM channel id)."},"DnaKvSetBody":{"properties":{"key":{"type":"string","title":"Key","description":"project.data.* or user.data.* dotted suffix","default":""},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"commit_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Commit Mode","description":"Compatibility hint only; KV writes stay immediate leaf SoT"},"value":{"title":"Value"},"write_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Write Mode"},"allow_shrink":{"type":"boolean","title":"Allow Shrink","default":false},"replacements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Replacements"},"unified_diff":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unified Diff"},"strict_diff":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Strict Diff"},"ops":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Ops"},"dry_run":{"type":"boolean","title":"Dry Run","default":false},"expected_sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Sha256"},"missing":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Missing","default":"error"}},"type":"object","title":"DnaKvSetBody","description":"KV write for POST /dna/data — leaf grammar parity with ``ProjectDataPatchBody``."},"DoctorRunBody":{"properties":{"skip_gene_pack":{"type":"boolean","title":"Skip Gene Pack","default":false},"skip_retrieval":{"type":"boolean","title":"Skip Retrieval","default":false},"fadeev":{"type":"boolean","title":"Fadeev","default":true},"canonical":{"type":"boolean","title":"Canonical","default":false},"min_map_keys":{"type":"integer","title":"Min Map Keys","default":100}},"type":"object","title":"DoctorRunBody"},"DocumentAddRequest":{"properties":{"content":{"type":"string","maxLength":524288,"title":"Content","description":"Text to add (auto-chunked), max 512 KiB"},"source_doc_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Doc Id","description":"Source document identifier"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Metadata tags"}},"type":"object","required":["content"],"title":"DocumentAddRequest"},"DocumentBatchRequest":{"properties":{"documents":{"items":{"$ref":"#/components/schemas/DocumentAddRequest"},"type":"array","maxItems":100,"minItems":1,"title":"Documents"}},"type":"object","required":["documents"],"title":"DocumentBatchRequest","example":{"documents":[{"content":"First document text.","metadata":{"access_tier":"public","content_type":"faq"},"source_doc_id":"doc-1"},{"content":"Second document text.","source_doc_id":"doc-2"}]}},"DryRunRequest":{"properties":{"command_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Command Data"},"trigger_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trigger Id"},"mocks":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Mocks"},"pin_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Pin Data"}},"additionalProperties":true,"type":"object","title":"DryRunRequest","description":"Payload for F2.5 dry-run endpoint."},"EarningPlaybookPatchBody":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"genetic_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Genetic Tag"},"revenue_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revenue Model"},"grant_synergy":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Grant Synergy"},"hot_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hot Path"},"mcp_actions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Mcp Actions"},"evidence_metric":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Metric"},"public_demo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Demo"}},"type":"object","title":"EarningPlaybookPatchBody"},"EcosystemMergePatch":{"properties":{"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"components":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Components"},"on_conflict":{"anyOf":[{"$ref":"#/components/schemas/ConflictStrategy"},{"type":"null"}]}},"type":"object","title":"EcosystemMergePatch"},"EmitDataEventBody":{"properties":{"resource":{"type":"string","title":"Resource","description":"Resource name (e.g., 'orders')"},"action":{"type":"string","title":"Action","description":"'created' | 'updated' | 'deleted' | 'read'"},"event_data":{"additionalProperties":true,"type":"object","title":"Event Data","description":"Payload to pass to triggered rules"}},"type":"object","required":["resource","action"],"title":"EmitDataEventBody","description":"Body for POST /emit"},"EnsureMcpRegistryAuthKeyBody":{"properties":{"body":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Body"}},"type":"object","title":"EnsureMcpRegistryAuthKeyBody"},"EvidenceBody":{"properties":{"video_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video Url"},"farcaster_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Farcaster Url"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","title":"EvidenceBody"},"EvidenceTier":{"type":"string","enum":["none","l0_batch","chain_anchor"],"title":"EvidenceTier","description":"Optional evidence plane activation for a Fleet run."},"ExecuteLogicRequest":{"properties":{"event_data":{"additionalProperties":true,"type":"object","title":"Event Data"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"json_logic":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Json Logic"}},"additionalProperties":true,"type":"object","required":["event_data"],"title":"ExecuteLogicRequest","description":"Request model for executing logic"},"ExtendBuffRequest":{"properties":{"entity_id":{"type":"integer","title":"Entity Id"},"entity_kind":{"type":"string","title":"Entity Kind"},"additional_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Additional Days"},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},"type":"object","required":["entity_id","entity_kind"],"title":"ExtendBuffRequest","description":"Request model for extending a buff"},"FabricDigestEnqueueRequest":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id","description":"Project whose unread Fabric inbox to scan"},"window_hours":{"type":"integer","maximum":168.0,"minimum":1.0,"title":"Window Hours","description":"Lookback for unread rows","default":24},"recipient_user_id":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Recipient User Id","description":"When set, enqueue digest for this user only"}},"type":"object","required":["project_id"],"title":"FabricDigestEnqueueRequest"},"FabricNotificationSmokeRequest":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id","description":"Project scope for in_app row + SSE"},"recipient_user_id":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Recipient User Id","description":"Defaults to authenticated user"},"title":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Title"},"message":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Message"}},"type":"object","required":["project_id"],"title":"FabricNotificationSmokeRequest"},"FabricTemplatesImportRequest":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id","description":"Target project for template merge"}},"type":"object","required":["project_id"],"title":"FabricTemplatesImportRequest"},"FaqPhenotype":{"properties":{"name":{"type":"string","maxLength":64,"minLength":1,"title":"Name"},"all_of":{"items":{"type":"string"},"type":"array","title":"All Of"},"any_of":{"items":{"type":"string"},"type":"array","title":"Any Of"},"none_of":{"items":{"type":"string"},"type":"array","title":"None Of"},"retrieve":{"type":"string","maxLength":512,"title":"Retrieve","default":""},"boost_idents":{"items":{"type":"string"},"type":"array","title":"Boost Idents"},"penalize_idents":{"items":{"type":"string"},"type":"array","title":"Penalize Idents"},"skip_without_lock":{"type":"boolean","title":"Skip Without Lock","default":true},"penalize_bg_vs":{"type":"boolean","title":"Penalize Bg Vs","default":false},"penalize_noise":{"type":"boolean","title":"Penalize Noise","default":true},"noise_unless_asked":{"type":"boolean","title":"Noise Unless Asked","default":false},"covers_all":{"items":{"type":"string"},"type":"array","title":"Covers All"},"covers_any":{"items":{"type":"string"},"type":"array","title":"Covers Any"},"heading_needles":{"items":{"type":"string"},"type":"array","title":"Heading Needles"},"penalize_heading_needles":{"items":{"type":"string"},"type":"array","title":"Penalize Heading Needles"},"drop_sentence_stems":{"items":{"type":"string"},"type":"array","title":"Drop Sentence Stems"},"retrieve_expand":{"type":"string","maxLength":16,"title":"Retrieve Expand","default":""}},"type":"object","required":["name"],"title":"FaqPhenotype","description":"One FAQ routing row: match needles, retrieve lexicon, card identity, skip-Plan covers."},"FaucetMintBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"user_id":{"type":"integer","minimum":1.0,"title":"User Id"},"amount_atomic":{"type":"integer","minimum":1.0,"title":"Amount Atomic","default":1000000},"idempotency_key":{"type":"string","maxLength":128,"minLength":8,"title":"Idempotency Key"}},"type":"object","required":["project_id","user_id","idempotency_key"],"title":"FaucetMintBody"},"FeaturedListingsBody":{"properties":{"listing_uuids":{"items":{"type":"string"},"type":"array","title":"Listing Uuids"}},"type":"object","title":"FeaturedListingsBody"},"FederationBody":{"properties":{"consumer_project_id":{"type":"integer","title":"Consumer Project Id"},"source_project_id":{"type":"integer","title":"Source Project Id"},"channel_id":{"type":"string","title":"Channel Id"},"alias":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias"}},"type":"object","required":["consumer_project_id","source_project_id","channel_id"],"title":"FederationBody"},"FederationGrantCreateRequest":{"properties":{"target_project_id":{"type":"integer","minimum":1.0,"title":"Target Project Id"},"scopes":{"items":{"$ref":"#/components/schemas/FederationScope"},"type":"array","title":"Scopes"},"allowed_capability_ids":{"items":{"type":"string"},"type":"array","title":"Allowed Capability Ids"},"expires_at":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Expires At"},"audit_note":{"type":"string","title":"Audit Note","default":""}},"type":"object","required":["target_project_id"],"title":"FederationGrantCreateRequest"},"FederationScope":{"type":"string","enum":["context_read","capability_invoke"],"title":"FederationScope"},"FederationWebhookRegisterRequest":{"properties":{"url":{"type":"string","minLength":8,"title":"Url"},"secret":{"type":"string","title":"Secret","default":""},"events":{"items":{"type":"string"},"type":"array","title":"Events"},"subscription_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Id"}},"type":"object","required":["url"],"title":"FederationWebhookRegisterRequest"},"FiatPspRefundBody":{"properties":{"buyer_project_id":{"type":"integer","minimum":1.0,"title":"Buyer Project Id"},"buyer_user_id":{"type":"integer","minimum":1.0,"title":"Buyer User Id"},"order_id":{"type":"string","minLength":4,"title":"Order Id"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"amount":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"null"}],"title":"Amount","description":"Partial refund in major units"}},"type":"object","required":["buyer_project_id","buyer_user_id","order_id"],"title":"FiatPspRefundBody","description":"Run payments ledger + PSP refund for a fiat commerce order (before manual_complete)."},"FieldTriggersResourceBody":{"properties":{"triggers":{"additionalProperties":{"items":{"additionalProperties":true,"type":"object"},"type":"array"},"type":"object","title":"Triggers","description":"Map field pattern (e.g. status, config.**) → list of trigger objects"}},"type":"object","required":["triggers"],"title":"FieldTriggersResourceBody","description":"Body for PUT /triggers/{resource} — pattern → list of trigger definitions."},"FixtureShapeHint":{"properties":{"phenotype":{"type":"string","maxLength":64,"minLength":1,"title":"Phenotype"},"query_any_of":{"items":{"type":"string"},"type":"array","title":"Query Any Of"},"query_all_of":{"items":{"type":"string"},"type":"array","title":"Query All Of"}},"type":"object","required":["phenotype"],"title":"FixtureShapeHint","description":"Extra fixture phenotype when query needles match (compound / follow-up asks)."},"FleetOverviewDTO":{"properties":{"project_id":{"type":"integer","title":"Project Id"},"agent_count":{"type":"integer","title":"Agent Count"},"bot_count":{"type":"integer","title":"Bot Count"},"killswitch_engaged":{"type":"boolean","title":"Killswitch Engaged"},"queue_depth":{"type":"integer","title":"Queue Depth"},"run_status_histogram":{"additionalProperties":{"type":"integer"},"type":"object","title":"Run Status Histogram"},"stuck_runs":{"items":{"$ref":"#/components/schemas/FleetStuckRunDTO"},"type":"array","title":"Stuck Runs"},"approval_wait_count":{"type":"integer","title":"Approval Wait Count","default":0},"last_completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Completed At"},"sparkline":{"items":{"$ref":"#/components/schemas/FleetSparklinePointDTO"},"type":"array","title":"Sparkline"},"worker_id":{"type":"string","title":"Worker Id","default":""},"trigger_overlap_count":{"type":"integer","title":"Trigger Overlap Count","default":0},"trigger_overlap_agents":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Trigger Overlap Agents"},"bots_fleet_dlq_count":{"type":"integer","title":"Bots Fleet Dlq Count","default":0},"workflow_logic_count":{"type":"integer","title":"Workflow Logic Count","default":0},"workflow_sync_fail_count":{"type":"integer","title":"Workflow Sync Fail Count","default":0},"workflow_sync_fail_agents":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Workflow Sync Fail Agents"},"orchestrator_invoke_count":{"type":"integer","title":"Orchestrator Invoke Count","default":0},"orchestration_phase_drift_count":{"type":"integer","title":"Orchestration Phase Drift Count","default":0},"verified_goal_completion_rate":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Verified Goal Completion Rate"},"verified_goal_sample":{"type":"integer","title":"Verified Goal Sample","default":0},"binding_status":{"type":"string","title":"Binding Status","default":"ok"},"stale_orchestrator_binding_count":{"type":"integer","title":"Stale Orchestrator Binding Count","default":0},"stale_agent_index_entry_count":{"type":"integer","title":"Stale Agent Index Entry Count","default":0}},"type":"object","required":["project_id","agent_count","bot_count","killswitch_engaged","queue_depth"],"title":"FleetOverviewDTO"},"FleetRunRowDTO":{"properties":{"run_id":{"type":"string","title":"Run Id"},"agent_id":{"type":"string","title":"Agent Id"},"agent_name":{"type":"string","title":"Agent Name"},"project_id":{"type":"integer","title":"Project Id"},"status":{"type":"string","title":"Status"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"age_minutes":{"type":"number","title":"Age Minutes","default":0.0},"is_stuck":{"type":"boolean","title":"Is Stuck","default":false},"orchestration_phase":{"type":"string","title":"Orchestration Phase","default":""}},"type":"object","required":["run_id","agent_id","agent_name","project_id","status"],"title":"FleetRunRowDTO"},"FleetSparklinePointDTO":{"properties":{"t":{"type":"number","title":"T"},"queue_depth":{"type":"integer","title":"Queue Depth","default":0},"stuck":{"type":"integer","title":"Stuck","default":0}},"type":"object","required":["t"],"title":"FleetSparklinePointDTO"},"FleetStuckRunDTO":{"properties":{"run_id":{"type":"string","title":"Run Id"},"agent_id":{"type":"string","title":"Agent Id"},"project_id":{"type":"integer","title":"Project Id"},"status":{"type":"string","title":"Status"},"age_minutes":{"type":"number","title":"Age Minutes"}},"type":"object","required":["run_id","agent_id","project_id","status","age_minutes"],"title":"FleetStuckRunDTO"},"FleetSweepStaleRunsBody":{"properties":{"agent_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Uuid","description":"Optional agent scope"},"limit":{"type":"integer","maximum":200.0,"minimum":1.0,"title":"Limit","default":25}},"type":"object","title":"FleetSweepStaleRunsBody"},"FocusImportBody":{"properties":{"period_id":{"type":"string","maxLength":32,"minLength":4,"title":"Period Id"},"lines":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Lines"},"replace":{"type":"boolean","title":"Replace","default":false}},"type":"object","required":["period_id"],"title":"FocusImportBody"},"FolderCreateBody":{"properties":{"segments":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Segments"}},"type":"object","required":["segments"],"title":"FolderCreateBody"},"ForkRequest":{"properties":{"source_project_id":{"type":"integer","title":"Source Project Id"},"env_name":{"type":"string","title":"Env Name"},"env_type":{"type":"string","title":"Env Type","default":"sandbox"},"diff_only":{"type":"boolean","title":"Diff Only","default":true},"segment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Segment Id"},"rollout_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Rollout Steps"}},"type":"object","required":["source_project_id","env_name"],"title":"ForkRequest"},"FriendCancelBody":{"properties":{"to_user_id":{"type":"integer","title":"To User Id"}},"type":"object","required":["to_user_id"],"title":"FriendCancelBody"},"FriendIdBody":{"properties":{"user_id":{"type":"integer","title":"User Id"}},"type":"object","required":["user_id"],"title":"FriendIdBody"},"FriendIdsBody":{"properties":{"user_ids":{"items":{"type":"integer"},"type":"array","maxItems":200,"title":"User Ids"},"expand":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expand"}},"type":"object","title":"FriendIdsBody"},"FriendRequestRespondAction":{"type":"string","enum":["accept","reject","subscriber","block"],"title":"FriendRequestRespondAction"},"FriendRequestSendBody":{"properties":{"to_user_id":{"type":"integer","title":"To User Id"},"source":{"$ref":"#/components/schemas/FriendRequestSource"}},"type":"object","required":["to_user_id"],"title":"FriendRequestSendBody","description":"Send friend request; `source` defaults to kind=other for legacy clients."},"FriendRequestSource":{"properties":{"kind":{"$ref":"#/components/schemas/FriendSourceKind","default":"other"},"home_project_id":{"type":"integer","minimum":1.0,"title":"Home Project Id","default":1},"channel_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel Id"},"channel_title_snapshot":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Channel Title Snapshot"},"context_user_id":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Context User Id"},"greeting":{"anyOf":[{"type":"string","maxLength":30},{"type":"null"}],"title":"Greeting"}},"type":"object","title":"FriendRequestSource"},"FriendRespondBody":{"properties":{"from_user_id":{"type":"integer","title":"From User Id"},"action":{"$ref":"#/components/schemas/FriendRequestRespondAction"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"}},"type":"object","required":["from_user_id","action"],"title":"FriendRespondBody"},"FriendSourceKind":{"type":"string","enum":["public_channel","profile","dm","search","game","other"],"title":"FriendSourceKind"},"FromTemplateBody":{"properties":{"template_id":{"type":"string","title":"Template Id"},"name":{"type":"string","title":"Name","default":"Agent"},"description":{"type":"string","title":"Description","default":""},"template_input":{"additionalProperties":true,"type":"object","title":"Template Input"},"node_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Node Id","description":"Optional plan leaf id (from work_next.blocked_work) to bind agent_id after provision."},"env_uuid":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Env Uuid"},"home":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Home","description":"Plan graph home for optional node_id bind (project|self|project_self)."}},"type":"object","required":["template_id"],"title":"FromTemplateBody"},"FullEvalBody":{"properties":{"collection_id":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Collection Id"},"min_hit_rate":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Min Hit Rate","default":0.8},"principal_user_id":{"type":"integer","minimum":0.0,"title":"Principal User Id","default":0}},"type":"object","title":"FullEvalBody"},"FundProjectBody":{"properties":{"from_wallet_id":{"type":"string","title":"From Wallet Id"},"amount":{"type":"number","exclusiveMinimum":0.0,"title":"Amount"},"currency":{"type":"string","title":"Currency","default":"USD"},"description":{"type":"string","title":"Description","default":"Fund project"},"idempotency_key":{"type":"string","maxLength":256,"minLength":8,"title":"Idempotency Key"}},"type":"object","required":["from_wallet_id","amount","idempotency_key"],"title":"FundProjectBody"},"FundingStartVaultBody":{"properties":{"payment_id":{"type":"string","maxLength":128,"minLength":4,"title":"Payment Id"},"wallet_address":{"type":"string","maxLength":128,"minLength":10,"title":"Wallet Address"}},"type":"object","required":["payment_id","wallet_address"],"title":"FundingStartVaultBody"},"GatesRunBody":{"properties":{"env_uuid":{"type":"string","title":"Env Uuid","description":"Environment anchor UUID"},"manual_approved":{"type":"boolean","title":"Manual Approved","default":false}},"type":"object","required":["env_uuid"],"title":"GatesRunBody"},"GeneLexiconEntry":{"properties":{"stems":{"items":{"type":"string"},"type":"array","title":"Stems"},"idents":{"items":{"type":"string"},"type":"array","title":"Idents"},"aliases":{"items":{"type":"string"},"type":"array","title":"Aliases"}},"type":"object","title":"GeneLexiconEntry","description":"Named program term → stems, FAQ idents, retrieve aliases."},"GenerateScenarioBody":{"properties":{"prompt":{"type":"string","maxLength":4000,"minLength":1,"title":"Prompt"},"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"provider":{"type":"string","title":"Provider","default":"generic_webhook"},"connection_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Connection Id"}},"type":"object","required":["prompt","project_id"],"title":"GenerateScenarioBody"},"GenerationSettingsPatch":{"properties":{"auto_generation_mode":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Generation Mode"},"auto_checkpoint_before_promote":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Checkpoint Before Promote"},"require_gates_passed_on_promote":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Require Gates Passed On Promote"},"auto_generation_categories":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Auto Generation Categories"},"auto_generation_soak_minutes":{"anyOf":[{"type":"integer","maximum":1440.0,"minimum":1.0},{"type":"null"}],"title":"Auto Generation Soak Minutes"},"auto_generation_require_approval":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Generation Require Approval"},"auto_generation_approval_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Auto Generation Approval Mode","description":"off | at_least_one | min_count | min_percent | manual_only"},"auto_generation_approval_min_count":{"anyOf":[{"type":"integer","maximum":50.0,"minimum":1.0},{"type":"null"}],"title":"Auto Generation Approval Min Count"},"auto_generation_approval_min_percent":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":1.0},{"type":"null"}],"title":"Auto Generation Approval Min Percent"},"direct_prod_roles":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Direct Prod Roles"},"auto_promote_on_all_pass":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Auto Promote On All Pass"},"auto_promote_strategy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Auto Promote Strategy","description":"immediate | canary | blue_green"},"canary_auto_route":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Canary Auto Route"},"canary_error_rate_threshold":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Canary Error Rate Threshold"},"canary_p99_latency_ms_threshold":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Canary P99 Latency Ms Threshold"},"canary_watchdog_interval_seconds":{"anyOf":[{"type":"integer","maximum":3600.0,"minimum":10.0},{"type":"null"}],"title":"Canary Watchdog Interval Seconds"}},"type":"object","title":"GenerationSettingsPatch"},"GetAgentRunResponse":{"properties":{"success":{"type":"boolean","title":"Success","default":true},"run":{"additionalProperties":true,"type":"object","title":"Run"},"run_detail":{"$ref":"#/components/schemas/AgentRunDetailDTO"}},"type":"object","required":["run","run_detail"],"title":"GetAgentRunResponse"},"GoLiveBody":{"properties":{"hook_base":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Hook Base"},"activate_webhook":{"type":"boolean","title":"Activate Webhook","default":true}},"type":"object","title":"GoLiveBody"},"GrantHoldingBody":{"properties":{"user_id":{"type":"integer","title":"User Id","description":"Recipient user id"},"asset_id":{"type":"string","title":"Asset Id"},"quantity":{"type":"integer","minimum":1.0,"title":"Quantity"},"reason":{"type":"string","title":"Reason","default":"admin_grant"}},"type":"object","required":["user_id","asset_id","quantity"],"title":"GrantHoldingBody"},"GraphRef":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"user_id":{"type":"integer","minimum":0.0,"title":"User Id","default":0},"node_id":{"type":"string","maxLength":64,"minLength":1,"title":"Node Id"}},"type":"object","required":["project_id","node_id"],"title":"GraphRef","description":"Soft link to a node on another home. Not a dependency edge."},"GuestPricingBatchBody":{"properties":{"lines":{"items":{"$ref":"#/components/schemas/GuestPricingLineBody"},"type":"array","title":"Lines"}},"type":"object","title":"GuestPricingBatchBody"},"GuestPricingLineBody":{"properties":{"listing_uuid":{"type":"string","title":"Listing Uuid"},"variant":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Variant"}},"type":"object","required":["listing_uuid"],"title":"GuestPricingLineBody"},"GuestQuickPublishBody":{"properties":{"html":{"type":"string","maxLength":512000,"minLength":1,"title":"Html"},"title":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Title"}},"type":"object","required":["html"],"title":"GuestQuickPublishBody"},"GuidanceEventBody":{"properties":{"events":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Events"}},"type":"object","title":"GuidanceEventBody"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HandoffBody":{"properties":{"active":{"type":"boolean","title":"Active","default":true},"notify_user":{"type":"boolean","title":"Notify User","default":false},"claim":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Claim"}},"type":"object","title":"HandoffBody"},"HelpdeskSimulateBody":{"properties":{"message":{"type":"string","maxLength":500,"minLength":1,"title":"Message"}},"type":"object","required":["message"],"title":"HelpdeskSimulateBody","description":"Guest HelpDesk chat payload (showcase-scoped)."},"HistoryRepairBody":{"properties":{"home_project_id":{"type":"integer","minimum":1.0,"title":"Home Project Id","default":1},"channel_id":{"type":"string","title":"Channel Id","default":""},"since_hlc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Since Hlc"}},"type":"object","title":"HistoryRepairBody"},"HostingGcIxBody":{"properties":{"limit":{"type":"integer","maximum":50000.0,"minimum":1.0,"title":"Limit","default":5000},"dry_run":{"type":"boolean","title":"Dry Run","default":false}},"type":"object","title":"HostingGcIxBody"},"HostingRoutingMode":{"type":"string","enum":["static_pages","spa"],"title":"HostingRoutingMode"},"HostingSiteStatus":{"type":"string","enum":["draft","published","disabled"],"title":"HostingSiteStatus"},"HostingVisibility":{"type":"string","enum":["public","private","project_members"],"title":"HostingVisibility"},"ImportAssetsRequest":{"properties":{"assets":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Assets"},"overwrite":{"type":"boolean","title":"Overwrite","default":false}},"type":"object","required":["assets"],"title":"ImportAssetsRequest"},"ImportCommitBody":{"properties":{"payload":{"additionalProperties":true,"type":"object","title":"Payload"},"owner_kind":{"$ref":"#/components/schemas/IntegrationOwnerKind","default":"project"},"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"user_id":{"type":"integer","minimum":1.0,"title":"User Id"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"}},"type":"object","required":["project_id","user_id"],"title":"ImportCommitBody"},"ImportConnectionBody":{"properties":{"owner_kind":{"$ref":"#/components/schemas/IntegrationOwnerKind","default":"project"},"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"},"connection":{"additionalProperties":true,"type":"object","title":"Connection"},"secrets":{"additionalProperties":true,"type":"object","title":"Secrets"}},"type":"object","required":["project_id"],"title":"ImportConnectionBody"},"ImportPackBody":{"properties":{"pack":{"additionalProperties":true,"type":"object","title":"Pack"},"env_uuid":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Env Uuid"},"home":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Home"}},"type":"object","title":"ImportPackBody"},"IncomingFriendMode":{"type":"string","enum":["accept_all","reject_all","subscribers_only"],"title":"IncomingFriendMode"},"IncomingFriendRequestsSettings":{"properties":{"mode":{"$ref":"#/components/schemas/IncomingFriendMode","default":"accept_all"}},"type":"object","title":"IncomingFriendRequestsSettings"},"IngestFromStorageRequest":{"properties":{"file_id":{"type":"string","title":"File Id","description":"Storage file card id or relative path"},"source_doc_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Doc Id"}},"type":"object","required":["file_id"],"title":"IngestFromStorageRequest"},"InjectBalanceRequest":{"properties":{"amount":{"type":"number","exclusiveMinimum":0.0,"title":"Amount","description":"Amount to inject into sandbox wallet"},"currency":{"type":"string","title":"Currency","description":"ISO currency code","default":"USD"},"wallet_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wallet Id","description":"Target wallet UUID (uses first if omitted)"}},"type":"object","required":["amount"],"title":"InjectBalanceRequest"},"InstallBlueprintBody":{"properties":{"blueprint_id":{"type":"string","title":"Blueprint Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"enabled":{"type":"boolean","title":"Enabled","default":true},"priority":{"type":"integer","title":"Priority","default":5},"field_values":{"additionalProperties":true,"type":"object","title":"Field Values"}},"type":"object","required":["blueprint_id"],"title":"InstallBlueprintBody"},"InstallRecipeBody":{"properties":{"owner_kind":{"$ref":"#/components/schemas/IntegrationOwnerKind","default":"project"},"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"user_id":{"type":"integer","minimum":1.0,"title":"User Id"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"secrets":{"additionalProperties":true,"type":"object","title":"Secrets"},"config":{"additionalProperties":true,"type":"object","title":"Config"},"idempotency_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency Key"}},"type":"object","required":["project_id","user_id"],"title":"InstallRecipeBody"},"InstallStructureBody":{"properties":{"structure_id":{"type":"string","title":"Structure Id"},"enabled":{"type":"boolean","title":"Enabled","default":true},"field_values":{"additionalProperties":true,"type":"object","title":"Field Values"}},"type":"object","required":["structure_id"],"title":"InstallStructureBody"},"IntegrationOwnerKind":{"type":"string","enum":["project","personal"],"title":"IntegrationOwnerKind"},"IntentType":{"type":"string","enum":["fleet.run","mcp.tool","mcp.tool.single","logic.flow"],"title":"IntentType"},"JoinQueueRequest":{"properties":{"criteria":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Criteria"}},"type":"object","title":"JoinQueueRequest","description":"Join queue request"},"KbChunkTextPatchBody":{"properties":{"text":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Text"},"collection_id":{"type":"string","minLength":1,"title":"Collection Id","default":"knowledge_kb"},"write_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Write Mode"},"replacements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Replacements"},"unified_diff":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unified Diff"},"strict_diff":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Strict Diff"},"allow_shrink":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Allow Shrink"}},"type":"object","title":"KbChunkTextPatchBody"},"KbDocumentBody":{"properties":{"content":{"type":"string","minLength":1,"title":"Content"},"source_doc_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Doc Id"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["content"],"title":"KbDocumentBody"},"KbIngestBody":{"properties":{"collection_id":{"type":"string","minLength":1,"title":"Collection Id"},"documents":{"items":{"$ref":"#/components/schemas/KbDocumentBody"},"type":"array","minItems":1,"title":"Documents"},"enqueue":{"type":"boolean","title":"Enqueue","default":true},"ingest_run_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ingest Run Id","description":"Optional idempotency key for multi-request bulk ingest (avoids correlation dedupe collision)."}},"type":"object","required":["collection_id","documents"],"title":"KbIngestBody"},"KnowledgeConfigPatch":{"properties":{"support_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Support Url"},"contacts":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeSupportContacts"},{"type":"null"}]},"moderator_user_ids":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Moderator User Ids"},"safety_playbooks":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Safety Playbooks"},"safety_playbooks_write_mode":{"anyOf":[{"type":"string","enum":["replace","patch","merge"]},{"type":"null"}],"title":"Safety Playbooks Write Mode","description":"How to apply safety_playbooks: replace (full dict, UI default), patch (per-playbook overlay, MCP default), merge (policy-safe fill only)."},"crisis_playbooks":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Crisis Playbooks"},"min_rag_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Min Rag Score"},"grounded_first":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Grounded First"},"safety_fail_mode":{"anyOf":[{"type":"string","enum":["fail_open","fail_closed_crisis"]},{"type":"null"}],"title":"Safety Fail Mode"},"safety_term_allowlist":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Safety Term Allowlist"},"retention_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Retention Days"},"llm_primary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Primary"},"llm_fallback":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Fallback"},"plan_history_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Plan History Enabled"},"plan_history_max_user_messages":{"anyOf":[{"type":"integer","maximum":16.0,"minimum":0.0},{"type":"null"}],"title":"Plan History Max User Messages"},"slo_p95_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Slo P95 Ms"},"max_concurrent_runs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Concurrent Runs"},"hyde_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Hyde Enabled"},"term_aliases":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Term Aliases"},"gene_pack":{"anyOf":[{"$ref":"#/components/schemas/KnowledgeGenePack"},{"type":"null"}]},"context_map_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Context Map Enabled"},"crag_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Crag Enabled"},"use_assistant_pipeline":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Assistant Pipeline"},"collection_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Collection Ids"},"context_lanes":{"anyOf":[{"items":{"$ref":"#/components/schemas/ContextLane"},"type":"array"},{"type":"null"}],"title":"Context Lanes"},"context_limits":{"anyOf":[{"$ref":"#/components/schemas/ContextLimits"},{"type":"null"}]},"skill_subscriptions":{"anyOf":[{"items":{"$ref":"#/components/schemas/SkillSubscription"},"type":"array"},{"type":"null"}],"title":"Skill Subscriptions"},"entitlement_sources":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Entitlement Sources"},"getcourse_cache_ttl_sec":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Getcourse Cache Ttl Sec"},"product_id_map":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Product Id Map"},"allowed_link_domains":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Link Domains"},"onboarding_email_prompt_ru":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Onboarding Email Prompt Ru"},"require_email_for_paid":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Require Email For Paid"},"crisis_notify_webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Crisis Notify Webhook Url"},"default_playground_bot_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Playground Bot Uuid"},"safety_reactions":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/SafetyReaction"},"type":"object"},{"type":"null"}],"title":"Safety Reactions"},"moderator_hours_msk":{"anyOf":[{"$ref":"#/components/schemas/MentorHoursMsk"},{"type":"null"}]},"handoff_sla_minutes":{"anyOf":[{"type":"integer","maximum":240.0,"minimum":1.0},{"type":"null"}],"title":"Handoff Sla Minutes"}},"type":"object","title":"KnowledgeConfigPatch","description":"Writable knowledge DNA fields (GET-only metadata excluded). Shared by knowledge + mentor PATCH."},"KnowledgeGenePack":{"properties":{"version":{"type":"integer","maximum":16.0,"minimum":1.0,"title":"Version","default":1},"program_stems":{"items":{"type":"string"},"type":"array","title":"Program Stems","description":"Term-lock / gene-lock vocabulary (replaces hardcoded PROGRAM_FOCUS_STEMS)."},"aliases":{"additionalProperties":{"type":"string"},"type":"object","title":"Aliases","description":"Query substring → rewrite (merged with KnowledgeConfig.term_aliases)."},"lexicon":{"additionalProperties":{"$ref":"#/components/schemas/GeneLexiconEntry"},"type":"object","title":"Lexicon"},"phenotypes":{"items":{"$ref":"#/components/schemas/FaqPhenotype"},"type":"array","title":"Phenotypes"},"pinned_shapes":{"items":{"$ref":"#/components/schemas/PinnedShapeBinding"},"type":"array","title":"Pinned Shapes","description":"Phenotype → glossary stem bindings for fixture shape replies."},"fixture_shape_hints":{"items":{"$ref":"#/components/schemas/FixtureShapeHint"},"type":"array","title":"Fixture Shape Hints","description":"Query-needle hints → extra fixture phenotypes (tenant MCP tuning)."},"rerank_off_query_guards":{"items":{"$ref":"#/components/schemas/RerankOffQueryGuard"},"type":"array","title":"Rerank Off Query Guards","description":"Rerank/extractive penalties when card matches but query lacks stems."},"sanitize_drop":{"items":{"type":"string"},"type":"array","title":"Sanitize Drop","description":"Tenant operator-voice phrases to drop from channel replies."},"skip_asked_stems":{"items":{"type":"string"},"type":"array","title":"Skip Asked Stems","description":"If the query names these stems, skip-Plan extractive must contain one. Tenant SoT — not hardcoded in Core retrieve."},"situational_needles":{"items":{"type":"string"},"type":"array","title":"Situational Needles","description":"Applied-ask needles (union with fixture query_intent_needles_v1). Tenant SoT — not a Core regex table."}},"type":"object","title":"KnowledgeGenePack","description":"Project genetic dictionary + FAQ phenotypes (8DNA blob)."},"KnowledgeSupportContacts":{"properties":{"conversation_url":{"type":"string","maxLength":2048,"title":"Conversation Url","default":""},"label_ru":{"type":"string","maxLength":80,"title":"Label Ru","default":"Написать в поддержку"},"label_en":{"type":"string","maxLength":80,"title":"Label En","default":"Contact support"},"telegram_url":{"type":"string","maxLength":2048,"title":"Telegram Url","default":""},"email":{"type":"string","maxLength":256,"title":"Email","default":""}},"type":"object","title":"KnowledgeSupportContacts","description":"Operator-editable help targets. Primary URL is used in channel abstain."},"MagicFillBody":{"properties":{"source_text":{"type":"string","title":"Source Text"},"partial_answers":{"additionalProperties":true,"type":"object","title":"Partial Answers"}},"type":"object","required":["source_text"],"title":"MagicFillBody"},"MailboxOpBody":{"properties":{"op":{"type":"string","title":"Op"},"query":{"type":"string","title":"Query","default":""},"message_id":{"type":"string","title":"Message Id","default":""},"to":{"type":"string","title":"To","default":""},"subject":{"type":"string","title":"Subject","default":""},"text":{"type":"string","title":"Text","default":""},"limit":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"Limit","default":10}},"type":"object","required":["op"],"title":"MailboxOpBody","description":"list | get | send on a connected Gmail or Microsoft mailbox."},"ManualRefundCompleteBody":{"properties":{"buyer_project_id":{"type":"integer","minimum":1.0,"title":"Buyer Project Id"},"buyer_user_id":{"type":"integer","minimum":1.0,"title":"Buyer User Id"},"order_id":{"type":"string","minLength":4,"title":"Order Id"},"external_refund_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Refund Id"}},"type":"object","required":["buyer_project_id","buyer_user_id","order_id"],"title":"ManualRefundCompleteBody"},"MapPreviewBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"}},"type":"object","required":["project_id"],"title":"MapPreviewBody"},"MarketplaceInstallRequest":{"properties":{"project_id":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Project Id"}},"type":"object","title":"MarketplaceInstallRequest"},"MarketplacePublishRequest":{"properties":{"title":{"type":"string","minLength":1,"title":"Title"},"description":{"type":"string","title":"Description","default":""},"kind":{"type":"string","title":"Kind","description":"recipe | bundle"},"recipe_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recipe Id"},"capability_ids":{"items":{"type":"string"},"type":"array","title":"Capability Ids"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"listing_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Listing Id"}},"type":"object","required":["title","kind"],"title":"MarketplacePublishRequest"},"MarketplaceRejectRequest":{"properties":{"reason":{"type":"string","maxLength":500,"title":"Reason","default":""}},"type":"object","title":"MarketplaceRejectRequest"},"MemoryAddRequest":{"properties":{"role":{"type":"string","title":"Role","description":"user | assistant | system"},"content":{"type":"string","title":"Content","description":"Message content"}},"type":"object","required":["role","content"],"title":"MemoryAddRequest"},"MemorySearchRequest":{"properties":{"query":{"type":"string","title":"Query","description":"Semantic search query"},"top_k":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Top K","description":"Number of results","default":5}},"type":"object","required":["query"],"title":"MemorySearchRequest"},"MentorHoursMsk":{"properties":{"start":{"type":"integer","maximum":23.0,"minimum":0.0,"title":"Start","default":10},"end":{"type":"integer","maximum":23.0,"minimum":0.0,"title":"End","default":18},"weekdays_only":{"type":"boolean","title":"Weekdays Only","default":true}},"type":"object","title":"MentorHoursMsk"},"MerchantCommercePolicyBody":{"properties":{"storefront_public":{"type":"boolean","title":"Storefront Public","default":true},"allowed_rails":{"items":{"type":"string"},"type":"array","title":"Allowed Rails"},"shop_slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Shop Slug"}},"type":"object","title":"MerchantCommercePolicyBody"},"MerchantCouponBody":{"properties":{"code":{"type":"string","maxLength":64,"minLength":1,"title":"Code"},"type":{"type":"string","title":"Type","default":"percent"},"percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percent"},"amount_minor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount Minor"},"active":{"type":"boolean","title":"Active","default":true},"description":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Description"},"expires_at":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Expires At"},"max_redemptions":{"anyOf":[{"type":"integer","maximum":1000000.0,"minimum":1.0},{"type":"null"}],"title":"Max Redemptions"},"listing_uuids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Listing Uuids"}},"type":"object","required":["code"],"title":"MerchantCouponBody"},"MerchantCouponPatchBody":{"properties":{"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type"},"percent":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Percent"},"amount_minor":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Amount Minor"},"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Active"},"description":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Description"},"expires_at":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Expires At"},"max_redemptions":{"anyOf":[{"type":"integer","maximum":1000000.0,"minimum":1.0},{"type":"null"}],"title":"Max Redemptions"},"listing_uuids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Listing Uuids"}},"type":"object","title":"MerchantCouponPatchBody"},"MerchantListingUpdateBody":{"properties":{"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"price_usdt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Usdt"},"expected_version":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Expected Version"}},"type":"object","title":"MerchantListingUpdateBody"},"MergeCartRequest":{"properties":{"lines":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Lines"},"coupon_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Coupon Code"}},"type":"object","title":"MergeCartRequest"},"MergeFeedBody":{"properties":{"pointers":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Pointers"},"reader_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reader User Id"}},"type":"object","required":["pointers"],"title":"MergeFeedBody"},"MessengerFirstLoadBody":{"properties":{"events":{"items":{"$ref":"#/components/schemas/MessengerFirstLoadEvent"},"type":"array","maxItems":50,"title":"Events"}},"type":"object","title":"MessengerFirstLoadBody"},"MessengerFirstLoadEvent":{"properties":{"phase":{"type":"string","maxLength":64,"title":"Phase","default":""},"hp":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Hp"},"cid":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Cid"},"duration_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Ms"},"effective_type":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Effective Type"},"cold_ever":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Cold Ever"},"ua":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Ua"},"net":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Net"}},"type":"object","title":"MessengerFirstLoadEvent","description":"Single client-reported messenger perf / first-load sample."},"MessengerOpBeaconEvent":{"properties":{"event":{"type":"string","maxLength":96,"title":"Event"},"value":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Value"},"tag":{"anyOf":[{"type":"string","maxLength":96},{"type":"null"}],"title":"Tag"},"ts_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ts Ms"}},"type":"object","required":["event"],"title":"MessengerOpBeaconEvent"},"MessengerOpBeaconsBody":{"properties":{"events":{"items":{"$ref":"#/components/schemas/MessengerOpBeaconEvent"},"type":"array","maxItems":256,"title":"Events"},"rollup":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rollup"},"rollout":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rollout"}},"type":"object","title":"MessengerOpBeaconsBody"},"MessengerPrefsPutBody":{"properties":{"chat_categories":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat Categories"},"selected_category_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Selected Category Id"},"chat_folders":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Chat Folders"},"selected_folder_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Selected Folder Id"},"pinned_by_category":{"anyOf":[{"additionalProperties":{"items":{"additionalProperties":true,"type":"object"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Pinned By Category"},"messenger_push_global_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Messenger Push Global Enabled"},"messenger_push_by_channel":{"anyOf":[{"additionalProperties":{"type":"boolean"},"type":"object"},{"type":"null"}],"title":"Messenger Push By Channel"},"messenger_push_by_channel_clear":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Messenger Push By Channel Clear"},"messenger_in_app_toast_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Messenger In App Toast Enabled"},"messenger_in_app_sound_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Messenger In App Sound Enabled"},"messenger_autoplay_video_notes":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Messenger Autoplay Video Notes"},"messenger_os_push_despite_relay":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Messenger Os Push Despite Relay"},"push_notification_categories":{"anyOf":[{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object"},{"type":"null"}],"title":"Push Notification Categories"}},"type":"object","title":"MessengerPrefsPutBody","description":"Partial update; omitted fields left unchanged."},"MessengerPushSurfaceBody":{"properties":{"home_project_id":{"type":"integer","minimum":1.0,"title":"Home Project Id"},"channel_id":{"type":"string","maxLength":512,"title":"Channel Id","default":""},"doc_visible":{"type":"boolean","title":"Doc Visible","description":"False when the tab/PWA is backgrounded, screen locked, or hidden.","default":true}},"type":"object","required":["home_project_id"],"title":"MessengerPushSurfaceBody","description":"Client-reported foreground channel + document visibility for OS push gating."},"MilestoneBody":{"properties":{"completed":{"type":"boolean","title":"Completed","default":false}},"type":"object","title":"MilestoneBody"},"MkdirBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"path":{"type":"string","minLength":1,"title":"Path"}},"type":"object","required":["project_id","path"],"title":"MkdirBody"},"MoveBody":{"properties":{"new_folder":{"type":"string","title":"New Folder","description":"Target folder key (e.g. docs or docs__reports) or _ for root"}},"type":"object","required":["new_folder"],"title":"MoveBody"},"MoveStageBody":{"properties":{"stage_id":{"type":"string","title":"Stage Id"},"expected_rev":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expected Rev"}},"type":"object","required":["stage_id"],"title":"MoveStageBody"},"NotifyBody":{"properties":{"env_uuid":{"type":"string","title":"Env Uuid"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["env_uuid"],"title":"NotifyBody"},"OAuthBeginBody":{"properties":{"connection_id":{"type":"string","minLength":1,"title":"Connection Id"},"redirect_after":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Redirect After"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes"}},"type":"object","required":["connection_id"],"title":"OAuthBeginBody"},"OnchainAgntSendBody":{"properties":{"chain_id":{"type":"integer","minimum":1.0,"title":"Chain Id"},"to_address":{"type":"string","maxLength":42,"minLength":42,"title":"To Address"},"amount_atomic":{"type":"integer","minimum":1.0,"title":"Amount Atomic"},"idempotency_key":{"type":"string","maxLength":128,"minLength":8,"title":"Idempotency Key"}},"type":"object","required":["chain_id","to_address","amount_atomic","idempotency_key"],"title":"OnchainAgntSendBody"},"OnlineVisibilityAudience":{"type":"string","enum":["everyone","friends","followers","nobody"],"title":"OnlineVisibilityAudience"},"OpportunityUpsertBody":{"properties":{"kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kind"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"payout_label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Payout Label"},"apply_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apply Url"},"deadline_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deadline At"},"primary_metric":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Primary Metric"},"packet_program":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Packet Program"},"genetic_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Genetic Tag"},"talent_is_not_grant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Talent Is Not Grant"},"wave":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wave"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"},"scoring_hints":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Scoring Hints"},"program_id":{"type":"string","title":"Program Id","description":"Catalog program_id"},"seed_crm":{"type":"boolean","title":"Seed Crm","default":true},"sync_packet":{"type":"boolean","title":"Sync Packet","default":true}},"type":"object","required":["program_id"],"title":"OpportunityUpsertBody"},"OrchestratorGetResponse":{"properties":{"success":{"type":"boolean","title":"Success","default":true},"orchestrator":{"additionalProperties":true,"type":"object","title":"Orchestrator"},"task_list":{"$ref":"#/components/schemas/AgentTaskList"},"plan_metrics":{"additionalProperties":true,"type":"object","title":"Plan Metrics"},"plan_advisories":{"items":{"type":"string"},"type":"array","title":"Plan Advisories"},"plan_claim":{"additionalProperties":true,"type":"object","title":"Plan Claim"},"plan_focus":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Plan Focus"},"focus_path":{"items":{"type":"string"},"type":"array","title":"Focus Path"},"task_list_revision":{"type":"integer","title":"Task List Revision","default":0},"task_list_etag":{"type":"string","title":"Task List Etag","default":""},"effective_persona":{"type":"string","title":"Effective Persona","default":""},"competence_tier":{"type":"string","title":"Competence Tier","default":""},"plan_analytics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Plan Analytics"},"execution_eligibility":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Execution Eligibility"},"counters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Counters"},"shape":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Shape"},"content_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Hash"},"metrics":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metrics"}},"type":"object","required":["task_list"],"title":"OrchestratorGetResponse","description":"OpenAPI contract for GET /orchestrator — PlanNode SoT via AgentTaskListV2Schema."},"OrchestratorPatchBody":{"properties":{"patch":{"additionalProperties":true,"type":"object","title":"Patch"},"task_list_revision":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Task List Revision"},"home":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Home","default":"project"},"env_uuid":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Env Uuid"}},"type":"object","title":"OrchestratorPatchBody"},"OrchestratorRunBody":{"properties":{"message":{"type":"string","maxLength":32000,"minLength":1,"title":"Message"},"channel":{"type":"string","title":"Channel","default":"workspace"},"conversation_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Conversation Id"},"bot_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bot Uuid"},"wait":{"type":"boolean","title":"Wait","default":true},"surface":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Surface"},"focus_node_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Focus Node Id"},"node_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Node Id","description":"Alias for focus_node_id (SDK closed-loop parity with MCP plan_execute)."},"env_uuid":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Env Uuid"},"home":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Home","description":"project | self | project_self — same leaf as agents.plan_execute","default":"project"}},"type":"object","required":["message"],"title":"OrchestratorRunBody"},"OrganelleInvokeBody":{"properties":{"organelle_id":{"type":"string","maxLength":64,"minLength":1,"title":"Organelle Id","examples":["ring_pool"]},"operation":{"type":"string","maxLength":64,"minLength":1,"title":"Operation","examples":["read"]},"ctx":{"additionalProperties":true,"type":"object","title":"Ctx","examples":[{"project_id":1,"ring_path":"ecosystem.diagnostics.probe","user_id":1}]}},"type":"object","required":["organelle_id","operation"],"title":"OrganelleInvokeBody","description":"Registered organelle operation + JSON context (max 128 KiB — enforced in ``http_invoke``)."},"PaginatedRunsDTO":{"properties":{"items":{"items":{"$ref":"#/components/schemas/FleetRunRowDTO"},"type":"array","title":"Items"},"next_cursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next Cursor"},"total_estimate":{"type":"integer","title":"Total Estimate","default":0}},"type":"object","title":"PaginatedRunsDTO"},"PartyInviteBody":{"properties":{"room_id":{"type":"string","title":"Room Id"},"home_project_id":{"type":"integer","title":"Home Project Id"},"ttl_sec":{"type":"integer","title":"Ttl Sec","default":3600}},"type":"object","required":["room_id","home_project_id"],"title":"PartyInviteBody"},"PasSlicePutBody":{"properties":{"home_project_id":{"type":"integer","title":"Home Project Id","default":1},"channels":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Channels"},"chats":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Chats"},"groups":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Groups"}},"type":"object","title":"PasSlicePutBody"},"PatchSessionBody":{"properties":{"state":{"additionalProperties":true,"type":"object","title":"State"},"percent":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Percent"}},"type":"object","required":["state"],"title":"PatchSessionBody"},"PauseBody":{"properties":{"deactivate_webhook":{"type":"boolean","title":"Deactivate Webhook","default":true}},"type":"object","title":"PauseBody"},"PayExecuteBody":{"properties":{"quote_id":{"type":"string","title":"Quote Id"},"quote_hash":{"type":"string","title":"Quote Hash"},"idempotency_key":{"type":"string","maxLength":256,"minLength":8,"title":"Idempotency Key"}},"type":"object","required":["quote_id","quote_hash","idempotency_key"],"title":"PayExecuteBody"},"PayInvoiceBody":{"properties":{"wallet_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wallet Id","description":"Wallet ID to pay from"},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id","description":"Invoice project scope"},"idempotency_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency Key","description":"finance.pay idempotency key"}},"type":"object","title":"PayInvoiceBody","description":"Request body for paying an invoice."},"PayQuoteBody":{"properties":{"intent":{"type":"string","title":"Intent","description":"energy_pack | subscription | compute_credits | project_fund | project_contribute"},"source":{"$ref":"#/components/schemas/PaySourceBody"},"amount":{"type":"number","exclusiveMinimum":0.0,"title":"Amount"},"currency":{"type":"string","title":"Currency","default":"USD"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["intent","source","amount"],"title":"PayQuoteBody"},"PaySourceBody":{"properties":{"kind":{"type":"string","title":"Kind","description":"personal_wallet | project_operating | project_treasury | external_card | agnt_ledger"},"project_id":{"type":"integer","minimum":1.0,"title":"Project Id","default":1},"wallet_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wallet Id"},"currency":{"type":"string","title":"Currency","default":"USD"}},"type":"object","required":["kind"],"title":"PaySourceBody"},"PhenotypeUpsertBody":{"properties":{"phenotype":{"additionalProperties":true,"type":"object","title":"Phenotype","description":"FaqPhenotype row — required name"}},"type":"object","required":["phenotype"],"title":"PhenotypeUpsertBody"},"PinnedShapeBinding":{"properties":{"phenotype":{"type":"string","maxLength":64,"minLength":1,"title":"Phenotype"},"glossary_stem":{"type":"string","maxLength":128,"minLength":1,"title":"Glossary Stem"},"extract_mode":{"type":"string","title":"Extract Mode","description":"section | quote | full | lesson_link — fixture extract strategy.","default":"section"},"section_heading":{"type":"string","maxLength":128,"title":"Section Heading","default":""},"section_headings":{"items":{"type":"string"},"type":"array","title":"Section Headings","description":"Ordered ## heading prefixes; overrides single section_heading when set."},"section_body_needle":{"type":"string","maxLength":128,"title":"Section Body Needle","description":"When set, extracted section body must contain this substring.","default":""},"append_lesson_link":{"type":"boolean","title":"Append Lesson Link","description":"After section/quote/full body, append inline lesson URL from the same card.","default":false}},"type":"object","required":["phenotype","glossary_stem"],"title":"PinnedShapeBinding","description":"Phenotype → glossary fixture stem for extractive shape replies."},"PinnedShapeUpsertBody":{"properties":{"binding":{"additionalProperties":true,"type":"object","title":"Binding","description":"PinnedShapeBinding — phenotype, glossary_stem, extract_mode"}},"type":"object","required":["binding"],"title":"PinnedShapeUpsertBody"},"PlaceBidRequest":{"properties":{"amount":{"type":"number","title":"Amount"},"currency":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Currency","default":"USD"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["amount"],"title":"PlaceBidRequest"},"PlanApplyProposalBody":{"properties":{"proposal":{"$ref":"#/components/schemas/PlannerProposal-Input"},"if_match_revision":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"If Match Revision"},"env_uuid":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Env Uuid"},"validation_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Validation Mode","description":"strict | persist_unexecutable — plan-only when fleet cannot execute yet"},"home":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Home","description":"project | self | project_self — same leaf as agents.plan_apply_proposal","default":"project"}},"type":"object","required":["proposal"],"title":"PlanApplyProposalBody"},"PlanApplyProposalResponse":{"properties":{"success":{"type":"boolean","title":"Success","default":true},"applied":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Applied"},"task_list":{"anyOf":[{"$ref":"#/components/schemas/AgentTaskList"},{"type":"null"}]},"new_revision":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"New Revision"},"idempotent_replay":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Idempotent Replay"},"proposal_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Proposal Id"},"previous_revision":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Previous Revision"},"semantic_noop":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Semantic Noop"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code"}},"type":"object","title":"PlanApplyProposalResponse"},"PlanBody":{"properties":{"contact":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Contact"},"deal":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Deal"}},"type":"object","title":"PlanBody"},"PlanClaimBody":{"properties":{"agent_id":{"type":"string","maxLength":64,"minLength":1,"title":"Agent Id"},"limit":{"type":"integer","maximum":8.0,"minimum":1.0,"title":"Limit","default":1},"node_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Node Ids"},"required_role":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Required Role"},"if_match_revision":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"If Match Revision"},"home":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Home","default":"project"},"env_uuid":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Env Uuid"},"include_task_list":{"type":"boolean","title":"Include Task List","default":false}},"type":"object","required":["agent_id"],"title":"PlanClaimBody"},"PlanClaimResponse":{"properties":{"success":{"type":"boolean","title":"Success","default":true},"claimed":{"items":{"type":"string"},"type":"array","title":"Claimed"},"task_list":{"anyOf":[{"$ref":"#/components/schemas/AgentTaskList"},{"type":"null"}]},"graph_revision":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Graph Revision"},"wip_full":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Wip Full"},"ok":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Ok"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code"},"node_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Node Id"},"home":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Home"},"next_actions":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Next Actions"},"next_action":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Next Action"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"lease_seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Lease Seconds"},"heartbeat_after":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Heartbeat After"},"claim_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Claim Count"},"lazy_reclaim":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Lazy Reclaim"},"recovery_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recovery Hint"},"recovery":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Recovery"},"required_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Required Role"},"role_mismatch":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Role Mismatch"},"eligibility":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Eligibility"},"owner_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Owner Agent Id"}},"type":"object","title":"PlanClaimResponse"},"PlanNode-Input":{"properties":{"id":{"type":"string","maxLength":64,"minLength":1,"title":"Id"},"kind":{"type":"string","enum":["objective","key_result","initiative","workstream","issue","feature","task","step","verification","goal","note","catalog"],"title":"Kind","default":"task"},"title":{"type":"string","maxLength":256,"title":"Title","default":""},"prompt":{"type":"string","maxLength":8000,"title":"Prompt","default":""},"status":{"type":"string","enum":["pending","ready","claimed","in_progress","verifying","completed","cancelled","blocked","waiting_input","waiting_approval","waiting_external"],"title":"Status","default":"pending"},"priority":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Priority","default":0},"priority_class":{"anyOf":[{"type":"string","enum":["P0","P1","P2","P3","P4","P5"]},{"type":"null"}],"title":"Priority Class"},"priority_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Priority Score"},"agent_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Agent Id"},"playbook_step_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Playbook Step Id"},"intent_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Intent Id"},"skill_ids":{"items":{"type":"string"},"type":"array","title":"Skill Ids"},"objective":{"type":"string","maxLength":2000,"title":"Objective","default":""},"required_role":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Required Role"},"parallelizable":{"type":"boolean","title":"Parallelizable","default":true},"dependencies":{"items":{"type":"string"},"type":"array","title":"Dependencies"},"quality_profiles":{"items":{"type":"string"},"type":"array","title":"Quality Profiles"},"completion_predicates":{"items":{"type":"string"},"type":"array","title":"Completion Predicates"},"evidence":{"additionalProperties":true,"type":"object","title":"Evidence"},"scope":{"type":"string","enum":["project","run"],"title":"Scope","default":"project"},"children":{"items":{"$ref":"#/components/schemas/PlanNode-Input"},"type":"array","title":"Children"},"meta":{"additionalProperties":true,"type":"object","title":"Meta"},"detail":{"type":"string","maxLength":4000,"title":"Detail","default":""},"goal_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Goal Id"},"root_run_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Root Run Id"},"parent_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Parent Id"},"layer":{"type":"string","enum":["business","strategic","tactical","execution","unknown"],"title":"Layer","default":"execution"},"complexity":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Complexity"},"effort":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Effort"},"impact":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Impact"},"urgency":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Urgency"},"severity":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Severity"},"risk":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Risk"},"acceptance_criteria":{"items":{"type":"string"},"type":"array","title":"Acceptance Criteria"},"decomposition_status":{"type":"string","enum":["not_needed","needed","in_progress","ready","blocked","unknown"],"title":"Decomposition Status","default":"not_needed"},"planning_state":{"type":"string","enum":["inbox","triage","planning","verify_failed","none"],"title":"Planning State","default":"none"},"source":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Source"},"report_to":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Report To"},"allowed_actions":{"items":{"type":"string"},"type":"array","title":"Allowed Actions"},"forbidden_actions":{"items":{"type":"string"},"type":"array","title":"Forbidden Actions"},"refs":{"items":{"$ref":"#/components/schemas/GraphRef"},"type":"array","title":"Refs"},"chunk_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Chunk Id"},"body_sha":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Body Sha"}},"type":"object","required":["id"],"title":"PlanNode"},"PlanNode-Output":{"properties":{"id":{"type":"string","maxLength":64,"minLength":1,"title":"Id"},"kind":{"type":"string","enum":["objective","key_result","initiative","workstream","issue","feature","task","step","verification","goal","note","catalog"],"title":"Kind","default":"task"},"title":{"type":"string","maxLength":256,"title":"Title","default":""},"prompt":{"type":"string","maxLength":8000,"title":"Prompt","default":""},"status":{"type":"string","enum":["pending","ready","claimed","in_progress","verifying","completed","cancelled","blocked","waiting_input","waiting_approval","waiting_external"],"title":"Status","default":"pending"},"priority":{"type":"integer","maximum":100.0,"minimum":0.0,"title":"Priority","default":0},"priority_class":{"anyOf":[{"type":"string","enum":["P0","P1","P2","P3","P4","P5"]},{"type":"null"}],"title":"Priority Class"},"priority_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Priority Score"},"agent_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Agent Id"},"playbook_step_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Playbook Step Id"},"intent_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Intent Id"},"skill_ids":{"items":{"type":"string"},"type":"array","title":"Skill Ids"},"objective":{"type":"string","maxLength":2000,"title":"Objective","default":""},"required_role":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Required Role"},"parallelizable":{"type":"boolean","title":"Parallelizable","default":true},"dependencies":{"items":{"type":"string"},"type":"array","title":"Dependencies"},"quality_profiles":{"items":{"type":"string"},"type":"array","title":"Quality Profiles"},"completion_predicates":{"items":{"type":"string"},"type":"array","title":"Completion Predicates"},"evidence":{"additionalProperties":true,"type":"object","title":"Evidence"},"scope":{"type":"string","enum":["project","run"],"title":"Scope","default":"project"},"children":{"items":{"$ref":"#/components/schemas/PlanNode-Output"},"type":"array","title":"Children"},"meta":{"additionalProperties":true,"type":"object","title":"Meta"},"detail":{"type":"string","maxLength":4000,"title":"Detail","default":""},"goal_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Goal Id"},"root_run_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Root Run Id"},"parent_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Parent Id"},"layer":{"type":"string","enum":["business","strategic","tactical","execution","unknown"],"title":"Layer","default":"execution"},"complexity":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Complexity"},"effort":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Effort"},"impact":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Impact"},"urgency":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Urgency"},"severity":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Severity"},"risk":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Risk"},"acceptance_criteria":{"items":{"type":"string"},"type":"array","title":"Acceptance Criteria"},"decomposition_status":{"type":"string","enum":["not_needed","needed","in_progress","ready","blocked","unknown"],"title":"Decomposition Status","default":"not_needed"},"planning_state":{"type":"string","enum":["inbox","triage","planning","verify_failed","none"],"title":"Planning State","default":"none"},"source":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Source"},"report_to":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Report To"},"allowed_actions":{"items":{"type":"string"},"type":"array","title":"Allowed Actions"},"forbidden_actions":{"items":{"type":"string"},"type":"array","title":"Forbidden Actions"},"refs":{"items":{"$ref":"#/components/schemas/GraphRef"},"type":"array","title":"Refs"},"chunk_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Chunk Id"},"body_sha":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Body Sha"}},"type":"object","required":["id"],"title":"PlanNode"},"PlanNodePatch-Input":{"properties":{"id":{"type":"string","maxLength":64,"minLength":1,"title":"Id"},"kind":{"anyOf":[{"type":"string","enum":["objective","key_result","initiative","workstream","issue","feature","task","step","verification","goal","note","catalog"]},{"type":"null"}],"title":"Kind"},"title":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Title"},"prompt":{"anyOf":[{"type":"string","maxLength":8000},{"type":"null"}],"title":"Prompt"},"status":{"anyOf":[{"type":"string","enum":["pending","ready","claimed","in_progress","verifying","completed","cancelled","blocked","waiting_input","waiting_approval","waiting_external"]},{"type":"null"}],"title":"Status"},"priority":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Priority"},"priority_class":{"anyOf":[{"type":"string","enum":["P0","P1","P2","P3","P4","P5"]},{"type":"null"}],"title":"Priority Class"},"priority_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Priority Score"},"agent_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Agent Id"},"playbook_step_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Playbook Step Id"},"intent_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Intent Id"},"skill_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skill Ids"},"objective":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Objective"},"required_role":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Required Role"},"parallelizable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Parallelizable"},"dependencies":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Dependencies"},"scope":{"anyOf":[{"type":"string","enum":["project","run"]},{"type":"null"}],"title":"Scope"},"detail":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Detail"},"goal_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Goal Id"},"parent_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Parent Id"},"layer":{"anyOf":[{"type":"string","enum":["business","strategic","tactical","execution","unknown"]},{"type":"null"}],"title":"Layer"},"complexity":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Complexity"},"effort":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Effort"},"impact":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Impact"},"urgency":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Urgency"},"severity":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Severity"},"risk":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Risk"},"acceptance_criteria":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Acceptance Criteria"},"decomposition_status":{"anyOf":[{"type":"string","enum":["not_needed","needed","in_progress","ready","blocked","unknown"]},{"type":"null"}],"title":"Decomposition Status"},"planning_state":{"anyOf":[{"type":"string","enum":["inbox","triage","planning","verify_failed","none"]},{"type":"null"}],"title":"Planning State"},"source":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Source"},"report_to":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Report To"},"allowed_actions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Actions"},"forbidden_actions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Forbidden Actions"},"completion_predicates":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Completion Predicates"},"quality_profiles":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quality Profiles"},"evidence":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Evidence"},"children":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/PlanNode-Input"},{"$ref":"#/components/schemas/PlanNodePatch-Input"},{"additionalProperties":true,"type":"object"}]},"type":"array"},{"type":"null"}],"title":"Children"},"meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta"},"refs":{"anyOf":[{"items":{"$ref":"#/components/schemas/GraphRef"},"type":"array"},{"type":"null"}],"title":"Refs"},"replace_subtree":{"type":"boolean","title":"Replace Subtree","default":false}},"type":"object","required":["id"],"title":"PlanNodePatch","description":"Partial update — omitted fields do not overwrite existing."},"PlanNodePatch-Output":{"properties":{"id":{"type":"string","maxLength":64,"minLength":1,"title":"Id"},"kind":{"anyOf":[{"type":"string","enum":["objective","key_result","initiative","workstream","issue","feature","task","step","verification","goal","note","catalog"]},{"type":"null"}],"title":"Kind"},"title":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Title"},"prompt":{"anyOf":[{"type":"string","maxLength":8000},{"type":"null"}],"title":"Prompt"},"status":{"anyOf":[{"type":"string","enum":["pending","ready","claimed","in_progress","verifying","completed","cancelled","blocked","waiting_input","waiting_approval","waiting_external"]},{"type":"null"}],"title":"Status"},"priority":{"anyOf":[{"type":"integer","maximum":100.0,"minimum":0.0},{"type":"null"}],"title":"Priority"},"priority_class":{"anyOf":[{"type":"string","enum":["P0","P1","P2","P3","P4","P5"]},{"type":"null"}],"title":"Priority Class"},"priority_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Priority Score"},"agent_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Agent Id"},"playbook_step_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Playbook Step Id"},"intent_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Intent Id"},"skill_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Skill Ids"},"objective":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Objective"},"required_role":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Required Role"},"parallelizable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Parallelizable"},"dependencies":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Dependencies"},"scope":{"anyOf":[{"type":"string","enum":["project","run"]},{"type":"null"}],"title":"Scope"},"detail":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Detail"},"goal_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Goal Id"},"parent_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Parent Id"},"layer":{"anyOf":[{"type":"string","enum":["business","strategic","tactical","execution","unknown"]},{"type":"null"}],"title":"Layer"},"complexity":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Complexity"},"effort":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Effort"},"impact":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Impact"},"urgency":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Urgency"},"severity":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Severity"},"risk":{"anyOf":[{"type":"integer","maximum":5.0,"minimum":1.0},{"type":"null"}],"title":"Risk"},"acceptance_criteria":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Acceptance Criteria"},"decomposition_status":{"anyOf":[{"type":"string","enum":["not_needed","needed","in_progress","ready","blocked","unknown"]},{"type":"null"}],"title":"Decomposition Status"},"planning_state":{"anyOf":[{"type":"string","enum":["inbox","triage","planning","verify_failed","none"]},{"type":"null"}],"title":"Planning State"},"source":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Source"},"report_to":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Report To"},"allowed_actions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Actions"},"forbidden_actions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Forbidden Actions"},"completion_predicates":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Completion Predicates"},"quality_profiles":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Quality Profiles"},"evidence":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Evidence"},"children":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/PlanNode-Output"},{"$ref":"#/components/schemas/PlanNodePatch-Output"},{"additionalProperties":true,"type":"object"}]},"type":"array"},{"type":"null"}],"title":"Children"},"meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta"},"refs":{"anyOf":[{"items":{"$ref":"#/components/schemas/GraphRef"},"type":"array"},{"type":"null"}],"title":"Refs"},"replace_subtree":{"type":"boolean","title":"Replace Subtree","default":false}},"type":"object","required":["id"],"title":"PlanNodePatch","description":"Partial update — omitted fields do not overwrite existing."},"PlanOpsBody":{"properties":{"ops":{"items":{"additionalProperties":true,"type":"object"},"type":"array","minItems":1,"title":"Ops"},"if_match_revision":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"If Match Revision"},"home":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Home","default":"project"},"env_uuid":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Env Uuid"},"archive_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Archive Ids"}},"type":"object","required":["ops"],"title":"PlanOpsBody","description":"Sparse plan graph ops — parity with MCP ``agents.plan_patch`` ops + changed[]."},"PlanOpsResponse":{"properties":{"success":{"type":"boolean","title":"Success","default":true},"ok":{"type":"boolean","title":"Ok","default":true},"revision":{"type":"integer","title":"Revision","default":0},"content_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Content Hash"},"changed":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Changed","description":"Sparse plan cards for touched node ids (plan_delta.changed_cards)"},"previous_revision":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Previous Revision"},"new_revision":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"New Revision"},"semantic_noop":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Semantic Noop"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State","description":"Mutation receipt state (MCP plan_patch parity)"},"accepted":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Accepted"},"committed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Committed"},"retryable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Retryable"},"graph_revision":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Graph Revision"},"verification_action":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verification Action"}},"type":"object","title":"PlanOpsResponse","description":"OpenAPI contract for POST /orchestrator/plan/ops — sparse delta (WG-16.2)."},"PlanProcessBacklogBody":{"properties":{"auto_apply":{"type":"boolean","title":"Auto Apply","default":false},"auto_apply_policy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Auto Apply Policy","description":"off | safe | force — safe uses _safe_auto_apply gate; legacy auto_apply→safe"},"max_nodes":{"type":"integer","maximum":5.0,"minimum":1.0,"title":"Max Nodes","default":1},"node_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Node Id"},"env_uuid":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Env Uuid"},"validation_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Validation Mode","description":"strict | persist_unexecutable — plan-only when fleet cannot execute yet"},"home":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Home","description":"project | self | project_self — same leaf as agents.plan_process_backlog","default":"project"}},"type":"object","title":"PlanProcessBacklogBody"},"PlanProcessBacklogResponse":{"properties":{"success":{"type":"boolean","title":"Success","default":true},"candidates":{"items":{"type":"string"},"type":"array","title":"Candidates"},"processed":{"type":"integer","title":"Processed","default":0},"results":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Results"},"graph_revision":{"type":"integer","title":"Graph Revision","default":0},"auto_apply_policy":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Auto Apply Policy"}},"type":"object","title":"PlanProcessBacklogResponse"},"PlanProposeBody":{"properties":{"mode":{"type":"string","maxLength":32,"title":"Mode","default":"decompose_node"},"node_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Node Id"},"goal_text":{"anyOf":[{"type":"string","maxLength":8000},{"type":"null"}],"title":"Goal Text"},"max_children":{"type":"integer","maximum":12.0,"minimum":1.0,"title":"Max Children","default":6},"use_llm":{"type":"boolean","title":"Use Llm","default":false},"env_uuid":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Env Uuid"},"draft_tree":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Draft Tree","description":"Nested suggest-tree draft — create_plan persists preview without LLM regen"},"allow_generic_acceptance":{"type":"boolean","title":"Allow Generic Acceptance","description":"Skip planner_generic_acceptance_criteria for high-complexity intake drafts","default":false},"validation_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Validation Mode","description":"strict | persist_unexecutable — plan-only when fleet cannot execute yet"},"locale":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Locale","description":"BCP-47 locale for semantic compile (default en-US)"},"routed_goal":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Routed Goal","description":"Discovery/canonical route spine — pairs with goal_text for compile_semantic_contract"},"semantic_contract":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Semantic Contract","description":"Precompiled contract (required_facets, fingerprint) — skip re-route when present"},"home":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Home","description":"project | self | project_self — same leaf as agents.plan_propose","default":"project"}},"type":"object","title":"PlanProposeBody"},"PlanProposeResponse":{"properties":{"success":{"type":"boolean","title":"Success","default":true},"proposal":{"$ref":"#/components/schemas/PlannerProposal-Output"},"validation":{"$ref":"#/components/schemas/PlannerValidationSchema"},"meta":{"additionalProperties":true,"type":"object","title":"Meta"}},"type":"object","required":["proposal","validation"],"title":"PlanProposeResponse"},"PlanRefreshAffinitiesBody":{"properties":{"node_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Node Id"},"pin_skills":{"type":"boolean","title":"Pin Skills","default":false},"pin_genes":{"type":"boolean","title":"Pin Genes","default":false},"home":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Home","default":"project"},"env_uuid":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Env Uuid"}},"type":"object","title":"PlanRefreshAffinitiesBody"},"PlanSuggestDraftBody":{"properties":{"title":{"type":"string","maxLength":256,"minLength":1,"title":"Title"},"parent_prompt":{"type":"string","maxLength":4000,"title":"Parent Prompt","default":""},"max_children":{"type":"integer","maximum":8.0,"minimum":1.0,"title":"Max Children","default":6},"use_llm":{"type":"boolean","title":"Use Llm","default":false},"env_uuid":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Env Uuid"},"home":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Home"}},"type":"object","required":["title"],"title":"PlanSuggestDraftBody"},"PlanSuggestTreeDraftBody":{"properties":{"goal_text":{"type":"string","maxLength":8000,"minLength":1,"title":"Goal Text"},"max_depth":{"type":"integer","maximum":6.0,"minimum":2.0,"title":"Max Depth","default":3},"max_nodes":{"type":"integer","maximum":64.0,"minimum":4.0,"title":"Max Nodes","default":24},"use_llm":{"type":"boolean","title":"Use Llm","default":false},"env_uuid":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Env Uuid"},"home":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Home"}},"type":"object","required":["goal_text"],"title":"PlanSuggestTreeDraftBody"},"PlannerProposal-Input":{"properties":{"proposal_id":{"type":"string","title":"Proposal Id"},"base_graph_revision":{"type":"integer","title":"Base Graph Revision"},"goal_id":{"type":"string","title":"Goal Id","default":""},"mode":{"type":"string","enum":["create_plan","decompose_node","replan_subtree","repair_plan","optimize_plan"],"title":"Mode","default":"decompose_node"},"created_by":{"type":"string","title":"Created By","default":""},"nodes_to_create":{"items":{"$ref":"#/components/schemas/PlanNodePatch-Input"},"type":"array","title":"Nodes To Create"},"nodes_to_update":{"items":{"$ref":"#/components/schemas/PlanNodePatch-Input"},"type":"array","title":"Nodes To Update"},"nodes_to_supersede":{"items":{"type":"string"},"type":"array","title":"Nodes To Supersede"},"supersede_reason":{"type":"string","title":"Supersede Reason","default":""},"preserve_completed":{"type":"boolean","title":"Preserve Completed","default":true},"dependencies_to_add":{"items":{"prefixItems":[{"type":"string"},{"type":"string"}],"items":{"type":"string"},"type":"array","maxItems":2,"minItems":2},"type":"array","title":"Dependencies To Add"},"dependencies_to_remove":{"items":{"prefixItems":[{"type":"string"},{"type":"string"}],"items":{"type":"string"},"type":"array","maxItems":2,"minItems":2},"type":"array","title":"Dependencies To Remove"},"assumptions":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Assumptions"},"risks":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Risks"},"quality_checks":{"items":{"type":"string"},"type":"array","title":"Quality Checks"},"options":{"additionalProperties":true,"type":"object","title":"Options"}},"type":"object","required":["proposal_id","base_graph_revision"],"title":"PlannerProposal","description":"Internal DTO; server assigns authoritative node ids on apply."},"PlannerProposal-Output":{"properties":{"proposal_id":{"type":"string","title":"Proposal Id"},"base_graph_revision":{"type":"integer","title":"Base Graph Revision"},"goal_id":{"type":"string","title":"Goal Id","default":""},"mode":{"type":"string","enum":["create_plan","decompose_node","replan_subtree","repair_plan","optimize_plan"],"title":"Mode","default":"decompose_node"},"created_by":{"type":"string","title":"Created By","default":""},"nodes_to_create":{"items":{"$ref":"#/components/schemas/PlanNodePatch-Output"},"type":"array","title":"Nodes To Create"},"nodes_to_update":{"items":{"$ref":"#/components/schemas/PlanNodePatch-Output"},"type":"array","title":"Nodes To Update"},"nodes_to_supersede":{"items":{"type":"string"},"type":"array","title":"Nodes To Supersede"},"supersede_reason":{"type":"string","title":"Supersede Reason","default":""},"preserve_completed":{"type":"boolean","title":"Preserve Completed","default":true},"dependencies_to_add":{"items":{"prefixItems":[{"type":"string"},{"type":"string"}],"items":{"type":"string"},"type":"array","maxItems":2,"minItems":2},"type":"array","title":"Dependencies To Add"},"dependencies_to_remove":{"items":{"prefixItems":[{"type":"string"},{"type":"string"}],"items":{"type":"string"},"type":"array","maxItems":2,"minItems":2},"type":"array","title":"Dependencies To Remove"},"assumptions":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Assumptions"},"risks":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Risks"},"quality_checks":{"items":{"type":"string"},"type":"array","title":"Quality Checks"},"options":{"additionalProperties":true,"type":"object","title":"Options"}},"type":"object","required":["proposal_id","base_graph_revision"],"title":"PlannerProposal","description":"Internal DTO; server assigns authoritative node ids on apply."},"PlannerValidationSchema":{"properties":{"ok":{"type":"boolean","title":"Ok"},"errors":{"items":{"type":"string"},"type":"array","title":"Errors"},"repair_hints":{"items":{"type":"string"},"type":"array","title":"Repair Hints"}},"type":"object","required":["ok"],"title":"PlannerValidationSchema"},"PlaybookRequest":{"properties":{"playbook":{"type":"string","title":"Playbook","description":"Playbook name (see GET /playbooks)"},"params":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Params","description":"Per-action param overrides: {action_name: {param: value}}"}},"type":"object","required":["playbook"],"title":"PlaybookRequest"},"PlaygroundBody":{"properties":{"text":{"type":"string","minLength":1,"title":"Text"},"bot_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bot Uuid","description":"Omit to use knowledge.config default_playground_bot_uuid"},"external_user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External User Id"},"chat_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Chat Type","default":"private"},"external_chat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Chat Id"},"principal_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Principal User Id"},"access_tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Access Tier"},"env_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Env Uuid"}},"type":"object","required":["text"],"title":"PlaygroundBody"},"PluginTelemetryBatch":{"properties":{"plugin":{"type":"string","title":"Plugin","description":"Plugin name, e.g. cursor-plugin"},"version":{"type":"string","title":"Version"},"events":{"items":{"$ref":"#/components/schemas/PluginTelemetryEvent"},"type":"array","title":"Events"}},"type":"object","required":["plugin","version","events"],"title":"PluginTelemetryBatch"},"PluginTelemetryEvent":{"properties":{"ts":{"type":"integer","title":"Ts","description":"Unix millis when the event happened"},"tool":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool"},"action":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Action"},"success":{"type":"boolean","title":"Success","default":true},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"},"trace_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trace Id"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"plugin_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plugin Version","description":"cursor-plugin semver"},"layer":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Layer","description":"hook | command | mcp"},"gene_tag":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Gene Tag","description":"Genetic tag for routing analytics"}},"type":"object","required":["ts"],"title":"PluginTelemetryEvent"},"PolicyPreviewBody":{"properties":{"capabilities":{"items":{"type":"string"},"type":"array","title":"Capabilities"},"forbidden_tools":{"items":{"type":"string"},"type":"array","title":"Forbidden Tools"},"approval_required_actions":{"items":{"type":"string"},"type":"array","title":"Approval Required Actions"}},"type":"object","title":"PolicyPreviewBody","description":"Body for ``POST /agents/policy/preview`` — expand policy patterns to live MCP actions."},"PolicyTemplateApplyBody":{"properties":{"template_id":{"type":"string","maxLength":128,"minLength":1,"title":"Template Id"},"slots":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Slots"},"agent_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Uuid"}},"type":"object","required":["template_id"],"title":"PolicyTemplateApplyBody"},"PostBatchBody":{"properties":{"idempotency_key":{"type":"string","maxLength":256,"minLength":8,"title":"Idempotency Key"},"lines":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Lines"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["idempotency_key","lines"],"title":"PostBatchBody"},"PreviewBlueprintBody":{"properties":{"blueprint_id":{"type":"string","title":"Blueprint Id"},"field_values":{"additionalProperties":true,"type":"object","title":"Field Values"}},"type":"object","required":["blueprint_id"],"title":"PreviewBlueprintBody"},"PreviewBody":{"properties":{"resource":{"type":"string","title":"Resource","description":"Resource key (e.g., 'orders')"},"user_role":{"type":"string","title":"User Role","description":"Role to preview"},"permissions_bitmap":{"type":"integer","title":"Permissions Bitmap","default":0},"user_id":{"type":"integer","title":"User Id","default":0},"resource_owner_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resource Owner Id"},"sample_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Sample Data","description":"Optional sample dict — permitted field values will be shown"},"draft_resource_policy":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Draft Resource Policy","description":"If set, preview uses this resource policy (current editor draft) instead of stored config — matches Dashboard UI before Save."},"draft_default_access":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Draft Default Access","description":"When draft_resource_policy is set, project default_access for preview."},"draft_globals":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Draft Globals","description":"When set, preview uses these globals (e.g. nested_path_mode) with draft policy."}},"type":"object","required":["resource","user_role"],"title":"PreviewBody","description":"Body for POST /preview"},"PriceBookRevisionBody":{"properties":{"revision_id":{"type":"string","maxLength":128,"minLength":1,"title":"Revision Id"},"revision_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revision Hash"},"capability_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Capability Id"},"pricing_class":{"type":"string","title":"Pricing Class","default":"metered"},"unit_price_minor":{"type":"integer","title":"Unit Price Minor","default":0},"currency":{"type":"string","title":"Currency","default":"USD"},"source":{"type":"string","title":"Source","default":"admin"}},"type":"object","required":["revision_id"],"title":"PriceBookRevisionBody"},"PrimarySiteBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"bucket_id":{"type":"string","minLength":8,"title":"Bucket Id"}},"type":"object","required":["project_id","bucket_id"],"title":"PrimarySiteBody"},"PrincipalLinkBody":{"properties":{"telegram_user_id":{"type":"string","maxLength":128,"minLength":1,"title":"Telegram User Id"},"platform_user_id":{"type":"integer","minimum":1.0,"title":"Platform User Id"}},"type":"object","required":["telegram_user_id","platform_user_id"],"title":"PrincipalLinkBody"},"PrivacyUpdateBody":{"properties":{"incoming_friend_requests":{"anyOf":[{"$ref":"#/components/schemas/IncomingFriendRequestsSettings"},{"type":"null"}]},"dm_policy":{"anyOf":[{"$ref":"#/components/schemas/DMPolicy"},{"type":"null"}]},"social_activity_visibility":{"anyOf":[{"$ref":"#/components/schemas/SocialActivityVisibility"},{"type":"null"}]}},"type":"object","title":"PrivacyUpdateBody"},"ProjectDataPatchBody":{"properties":{"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Dotted path into project.data (wins over patches[] when set)"},"patches":{"anyOf":[{"items":{"$ref":"#/components/schemas/ProjectDataPatchLeafItem"},"type":"array"},{"type":"null"}],"title":"Patches","description":"Up to 16 leaves when path is omitted (plain replace SET may be atomic)"},"value":{"title":"Value","description":"Leaf JSON, or string editor {replacements|unified_diff}"},"write_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Write Mode","description":"replace | merge | delete | search_replace | fuzzy_replace | unified_diff | append | prepend"},"allow_shrink":{"type":"boolean","title":"Allow Shrink","description":"Allow deliberate shorter string (not read-window write-back)","default":false},"replacements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Replacements","description":"search_replace pairs on a string leaf (merged into value)."},"unified_diff":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unified Diff","description":"Unified diff on a string leaf (fuzzy unless strict_diff=true)."},"strict_diff":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Strict Diff","description":"Strict unified_diff apply (no fuzzy fallback)."},"ops":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Ops","description":"Up to 16 directed edit ops on the path leaf (merge, search_replace, insert_after, …)."},"dry_run":{"type":"boolean","title":"Dry Run","description":"Preview without writing DNA: directed ops or leaf write_mode (search_replace, merge, replace, …) returns leaf_sha256.","default":false},"expected_sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Sha256","description":"Optimistic concurrency digest of the leaf before ops."},"missing":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Missing","description":"When a path op misses: error | skip.","default":"error"}},"type":"object","title":"ProjectDataPatchBody","description":"Leaf write on project.data (MCP parity: projects.patch_data)."},"ProjectDataPatchLeafItem":{"properties":{"path":{"type":"string","minLength":1,"title":"Path","description":"Dotted path into project.data"},"value":{"title":"Value","description":"Leaf value for this path"}},"type":"object","required":["path"],"title":"ProjectDataPatchLeafItem","description":"One leaf in a multi-path PATCH (MCP patches[] parity)."},"ProjectDataPatchResponse":{"properties":{"success":{"type":"boolean","title":"Success","default":true},"project_id":{"type":"integer","title":"Project Id"},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path","description":"Primary leaf path (single-leaf); first leaf when batch writes[]"},"writes":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Writes","description":"Per-leaf results for multi-path PATCH (MCP parity)"},"dry_run":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Dry Run"},"previous_sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Previous Sha256","description":"Pre-mutation leaf digest; pass as expected_sha256 on commit after dry_run."},"leaf_sha256":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Leaf Sha256","description":"Post-preview or post-write leaf digest."},"next_actions":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Next Actions","description":"Suggested MCP/REST commit steps after dry_run (single-leaf CAS v1)."},"preview_only":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Preview Only","description":"True when dry_run preview did not persist DNA."},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State","description":"Mutation receipt state (e.g. previewed)."},"write":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Write"}},"type":"object","required":["project_id"],"title":"ProjectDataPatchResponse","description":"PATCH project/member data leaf — MCP parity with projects.patch_data."},"ProjectUserPutBody":{"properties":{"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"username":{"anyOf":[{"type":"string","maxLength":191},{"type":"null"}],"title":"Username"},"display_name":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Display Name"},"bio":{"anyOf":[{"type":"string","maxLength":8192},{"type":"null"}],"title":"Bio"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"permissions":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Permissions"}},"additionalProperties":false,"type":"object","title":"ProjectUserPutBody","description":"Strict allowlist — unknown keys return 422 (``extra='forbid'``)."},"PromoteBody":{"properties":{"folder":{"type":"string","title":"Folder","description":"Target folder key for promoted file","default":"_"}},"type":"object","title":"PromoteBody"},"PromoteBuildBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"branch":{"type":"string","title":"Branch","default":"prod"}},"type":"object","required":["project_id"],"title":"PromoteBuildBody"},"PromoteHotGeneBody":{"properties":{"genetic_tag":{"type":"string","maxLength":128,"minLength":3,"title":"Genetic Tag"},"entity_key":{"type":"string","maxLength":256,"minLength":1,"title":"Entity Key"},"mode":{"type":"string","title":"Mode","description":"warm | pin | prefetch_only","default":"warm"}},"type":"object","required":["genetic_tag","entity_key"],"title":"PromoteHotGeneBody","description":"Admin promote hot gene paths into HotProteinRegion."},"PromoteReleaseBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"}},"type":"object","required":["project_id"],"title":"PromoteReleaseBody"},"PromoteRequest":{"properties":{"env_uuid":{"type":"string","title":"Env Uuid"},"strategy":{"type":"string","enum":["immediate","canary","blue_green"],"title":"Strategy","default":"immediate"},"instant":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Instant"},"required_approvers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Required Approvers"},"rollout_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rollout Mode"},"segment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Segment Id"},"rollout_steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Rollout Steps"},"require_gates_passed":{"type":"boolean","title":"Require Gates Passed","default":false}},"type":"object","required":["env_uuid"],"title":"PromoteRequest"},"PromptPatchBody":{"properties":{"system_preamble":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Preamble"},"plan_instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan Instructions"},"version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Version"},"agent_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Uuid"},"write_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Write Mode"},"field":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Field","description":"plan_instructions or system_preamble for search_replace / unified_diff"},"replacements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Replacements"},"unified_diff":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unified Diff"},"strict_diff":{"type":"boolean","title":"Strict Diff","default":false},"allow_shrink":{"type":"boolean","title":"Allow Shrink","default":false}},"type":"object","title":"PromptPatchBody"},"ProofToTaskBody":{"properties":{"agent_uuid":{"type":"string","minLength":8,"title":"Agent Uuid"},"run_uuid":{"type":"string","minLength":8,"title":"Run Uuid"},"receipt_hash":{"type":"string","minLength":16,"title":"Receipt Hash"},"purchase_batch_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Purchase Batch Id"},"merkle_root":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Merkle Root"},"checkpoint_hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Checkpoint Hash"},"submit_on_chain":{"type":"boolean","title":"Submit On Chain","default":false},"agent_on_chain_id":{"type":"integer","minimum":0.0,"title":"Agent On Chain Id","default":0}},"type":"object","required":["agent_uuid","run_uuid","receipt_hash"],"title":"ProofToTaskBody"},"ProtectedCheckRequest":{"properties":{"env_uuid":{"type":"string","title":"Env Uuid"},"field_path":{"type":"string","title":"Field Path"},"value":{"type":"string","title":"Value"}},"type":"object","required":["env_uuid","field_path","value"],"title":"ProtectedCheckRequest"},"PublicChannelCreateBody":{"properties":{"home_project_id":{"type":"integer","minimum":1.0,"title":"Home Project Id","default":1},"owner_type":{"type":"string","maxLength":32,"minLength":3,"title":"Owner Type"},"title":{"type":"string","maxLength":512,"minLength":1,"title":"Title"},"description":{"type":"string","maxLength":4000,"title":"Description","default":""},"settings":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Settings"},"avatar_url":{"type":"string","maxLength":2000,"title":"Avatar Url","default":""},"visibility":{"type":"string","maxLength":32,"title":"Visibility","default":"open"}},"type":"object","required":["owner_type","title"],"title":"PublicChannelCreateBody"},"PublicChannelMessagePatchBody":{"properties":{"body":{"type":"string","maxLength":65536,"title":"Body"}},"type":"object","required":["body"],"title":"PublicChannelMessagePatchBody"},"PublicChannelMessagePostBody":{"properties":{"home_project_id":{"type":"integer","minimum":1.0,"title":"Home Project Id","default":1},"body":{"type":"string","maxLength":65536,"title":"Body"},"attachments":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array","maxItems":12},{"type":"null"}],"title":"Attachments"},"reply_to":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Reply To"},"client_message_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Client Message Id","description":"Optional client idempotency key (8–128 URL-safe chars); replays return the same card."}},"type":"object","required":["body"],"title":"PublicChannelMessagePostBody"},"PublicChannelResolveBody":{"properties":{"home_project_id":{"type":"integer","minimum":1.0,"title":"Home Project Id","default":1},"pairs":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Pairs"}},"type":"object","title":"PublicChannelResolveBody"},"PublicFormIntakeBody":{"properties":{"name":{"type":"string","maxLength":200,"minLength":1,"title":"Name"},"email":{"type":"string","maxLength":320,"minLength":3,"title":"Email"},"message":{"type":"string","maxLength":4000,"minLength":1,"title":"Message"},"form_id":{"type":"string","maxLength":64,"title":"Form Id","default":"default"},"website":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Website"}},"type":"object","required":["name","email","message"],"title":"PublicFormIntakeBody"},"PublicPaymentRequest":{"properties":{"project_id":{"type":"integer","title":"Project Id","description":"Project to pay"},"public_key":{"type":"string","title":"Public Key","description":"Must match project.data.config.payment_widget.public_payment_key"},"amount":{"type":"number","exclusiveMinimum":0.0,"title":"Amount","description":"Payment amount in major units"},"currency":{"type":"string","title":"Currency","description":"ISO currency code","default":"USD"},"description":{"type":"string","title":"Description","description":"Description shown to the payer","default":"Payment"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country","description":"ISO country for provider matrix"},"preferred_method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preferred Method","description":"card | stripe | tochka"},"success_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Success Url","description":"Redirect URL on success (Tochka)"},"fail_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fail Url","description":"Redirect URL on failure (Tochka)"},"base_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Base Url","description":"Deployment base URL to derive notification_url"},"use_project_keys":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Project Keys","description":"If true and project has use_project_keys in widget, use BYOK keys (same rules as POST /payments)"}},"type":"object","required":["project_id","public_key","amount"],"title":"PublicPaymentRequest","description":"Request body for guest/public checkout via POST /api/payments/public."},"PublishBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"}},"type":"object","required":["project_id"],"title":"PublishBody"},"PublishPendingCheckpointsBody":{"properties":{"prefer_evm":{"type":"boolean","title":"Prefer Evm","default":true},"limit":{"type":"integer","maximum":25.0,"minimum":1.0,"title":"Limit","default":5}},"type":"object","title":"PublishPendingCheckpointsBody"},"PushAckBody":{"properties":{"type":{"type":"string","enum":["reply","mark_read","mute_1h"],"title":"Type"},"signed_token":{"type":"string","maxLength":4500,"title":"Signed Token"},"text":{"anyOf":[{"type":"string","maxLength":65536},{"type":"null"}],"title":"Text"}},"type":"object","required":["type","signed_token"],"title":"PushAckBody"},"PushCancelBody":{"properties":{"correlation_key":{"type":"string","maxLength":512,"minLength":1,"title":"Correlation Key"}},"type":"object","required":["correlation_key"],"title":"PushCancelBody","description":"Remove pending outbox rows for the current user by exact ``correlation_key``."},"PushNotifyBody":{"properties":{"user_id":{"type":"integer","minimum":1.0,"title":"User Id"},"title":{"type":"string","maxLength":120,"title":"Title"},"body":{"type":"string","maxLength":500,"title":"Body","default":""},"url":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Url"},"image":{"anyOf":[{"type":"string","maxLength":2048},{"type":"null"}],"title":"Image"},"tag":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Tag"},"actions":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Actions"},"badge_count":{"anyOf":[{"type":"integer","maximum":999999.0,"minimum":0.0},{"type":"null"}],"title":"Badge Count"},"correlation_key":{"type":"string","maxLength":512,"title":"Correlation Key","default":"agent:notify"}},"type":"object","required":["user_id","title"],"title":"PushNotifyBody"},"PushSubscribeBody":{"properties":{"subscription":{"additionalProperties":true,"type":"object","title":"Subscription"},"user_agent":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"User Agent"},"client_instance_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Client Instance Id","description":"Stable per-browser id for multi-device routing / diagnostics (optional)."}},"type":"object","required":["subscription"],"title":"PushSubscribeBody"},"PushUnsubscribeBody":{"properties":{"endpoint":{"type":"string","maxLength":2048,"title":"Endpoint"}},"type":"object","required":["endpoint"],"title":"PushUnsubscribeBody"},"QueueConfigRequest":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type","default":"custom"},"criteria":{"additionalProperties":true,"type":"object","title":"Criteria","default":{"required":[],"optional":[]}},"matching_strategy":{"type":"string","title":"Matching Strategy","default":"criteria_based"},"tolerance":{"additionalProperties":true,"type":"object","title":"Tolerance","default":{"max_wait_seconds":30}},"room_config":{"additionalProperties":true,"type":"object","title":"Room Config","default":{"auto_create":true,"capacity":2,"type":"match"}},"tiers":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tiers"},"min_match_score":{"type":"number","title":"Min Match Score","default":0.5}},"type":"object","required":["name"],"title":"QueueConfigRequest","description":"Queue configuration request"},"QuickStartBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"html":{"type":"string","minLength":1,"title":"Html"},"bucket_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bucket Name"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"visibility":{"$ref":"#/components/schemas/HostingVisibility","default":"public"},"publish":{"type":"boolean","title":"Publish","default":true}},"type":"object","required":["project_id","html"],"title":"QuickStartBody"},"RealignBody":{"properties":{"env_uuid":{"type":"string","title":"Env Uuid","description":"Sandbox anchor UUID"},"path_prefixes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Path Prefixes","description":"Revert only paths under these dotted prefixes"},"dry_run":{"type":"boolean","title":"Dry Run","default":false}},"type":"object","required":["env_uuid"],"title":"RealignBody"},"ReceiptVerifyBody":{"properties":{"receipt":{"additionalProperties":true,"type":"object","title":"Receipt"},"declared_hash":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Declared Hash"},"anchor_claim":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Anchor Claim"}},"type":"object","required":["receipt"],"title":"ReceiptVerifyBody"},"RecipeRunRequest":{"properties":{"params":{"additionalProperties":true,"type":"object","title":"Params"},"project_id":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Project Id"},"compensate":{"type":"boolean","title":"Compensate","default":false}},"type":"object","title":"RecipeRunRequest"},"RefundRequestBody":{"properties":{"order_id":{"type":"string","title":"Order Id"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"}},"type":"object","required":["order_id"],"title":"RefundRequestBody"},"RegisterModuleBody":{"properties":{"parent_connection_id":{"type":"string","minLength":1,"title":"Parent Connection Id"},"label":{"type":"string","maxLength":120,"minLength":1,"title":"Label"}},"type":"object","required":["parent_connection_id","label"],"title":"RegisterModuleBody"},"RegisterWalletBindingBody":{"properties":{"wallet_address":{"type":"string","maxLength":128,"minLength":10,"title":"Wallet Address"},"signature":{"type":"string","maxLength":512,"minLength":10,"title":"Signature"},"message":{"type":"string","maxLength":2048,"minLength":8,"title":"Message"},"chain_id":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Chain Id"}},"type":"object","required":["wallet_address","signature","message"],"title":"RegisterWalletBindingBody"},"RegistryImportBody":{"properties":{"csv":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Csv"},"entries":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Entries"},"dry_run":{"type":"boolean","title":"Dry Run","default":false}},"type":"object","title":"RegistryImportBody"},"ReleasePatchBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"pinned":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Pinned"}},"type":"object","required":["project_id"],"title":"ReleasePatchBody"},"RenameFileBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"dest_path":{"type":"string","minLength":1,"title":"Dest Path"}},"type":"object","required":["project_id","dest_path"],"title":"RenameFileBody"},"ReportListingRequest":{"properties":{"reason":{"type":"string","title":"Reason"},"comment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Comment"}},"type":"object","required":["reason"],"title":"ReportListingRequest"},"RerankOffQueryGuard":{"properties":{"snippet_ident_contains":{"type":"string","maxLength":128,"title":"Snippet Ident Contains","default":""},"heading_any_of":{"items":{"type":"string"},"type":"array","title":"Heading Any Of"},"require_query_any_of":{"items":{"type":"string"},"type":"array","title":"Require Query Any Of"}},"type":"object","title":"RerankOffQueryGuard","description":"Penalize FAQ snippet/section when match fires but query lacks required stems."},"ResolveBatchBody":{"properties":{"refs":{"items":{"$ref":"#/components/schemas/ResolveRefBody"},"type":"array","maxItems":200,"title":"Refs"}},"type":"object","title":"ResolveBatchBody"},"ResolveRefBody":{"properties":{"owner_id":{"type":"integer","minimum":1.0,"title":"Owner Id","description":"DNA user id of the file owner"},"file_id":{"type":"string","maxLength":64,"minLength":1,"title":"File Id"},"is_temp":{"type":"boolean","title":"Is Temp","default":true},"folder_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Folder Key"}},"type":"object","required":["owner_id","file_id"],"title":"ResolveRefBody"},"ResourcePolicyBody":{"properties":{"resource_policy":{"additionalProperties":true,"type":"object","title":"Resource Policy","description":"Dict of field → descriptor. Shorthand: 'admin', OR: 'owner|admin', extended: {'read': 'user', 'write': 'admin', 'condition': '...'}. Special key '__default__' sets catch-all for this resource.","example":{"__default__":"deny","cost_price":"admin","id":"public","name":"public","price":"user"}},"default_access":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Default Access","description":"Global fallback when no rule matches ('deny' or 'public'). Applies to the whole project policy.","default":"deny"},"globals":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Globals","description":"If set, replaces project FAP globals: nested_path_mode (flat|dotted), max_mask_depth, default_access. Omit to leave unchanged."}},"type":"object","required":["resource_policy"],"title":"ResourcePolicyBody","description":"Body for PUT /policy/{resource}"},"ResourceScopeModel":{"properties":{"mode":{"type":"string","enum":["all_accessible","projects"],"title":"Mode","default":"all_accessible"},"project_ids":{"items":{"type":"integer"},"type":"array","title":"Project Ids"}},"type":"object","title":"ResourceScopeModel"},"RetrievalEvalBody":{"properties":{"collection_id":{"type":"string","minLength":1,"title":"Collection Id"},"min_hit_rate":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Min Hit Rate","default":0.8},"principal_user_id":{"type":"integer","minimum":0.0,"title":"Principal User Id","default":0},"top_k":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Top K","default":3},"fixture":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fixture","description":"Suite alias (canonical_310826, fadeev_010309) or fixture path."}},"type":"object","required":["collection_id"],"title":"RetrievalEvalBody"},"RetrieveProbeBody":{"properties":{"query":{"type":"string","minLength":1,"title":"Query"},"top_k":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Top K","default":3},"principal_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Principal User Id"}},"type":"object","required":["query"],"title":"RetrieveProbeBody"},"ReviewResolveBody":{"properties":{"action":{"type":"string","pattern":"^(approve|dismiss|escalate)$","title":"Action"},"note":{"type":"string","title":"Note","default":""}},"type":"object","required":["action"],"title":"ReviewResolveBody"},"RollbackBody":{"properties":{"checkpoint_uuid":{"type":"string","title":"Checkpoint Uuid","description":"Checkpoint uuid to reopen"},"env_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Env Name","description":"Optional rollback sandbox name"}},"type":"object","required":["checkpoint_uuid"],"title":"RollbackBody"},"RollbackRequest":{"properties":{"checkpoint_uuid":{"type":"string","title":"Checkpoint Uuid"},"env_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Env Name"}},"type":"object","required":["checkpoint_uuid"],"title":"RollbackRequest"},"RolloutAdvanceRequest":{"properties":{"env_uuid":{"type":"string","title":"Env Uuid"},"mark_failed":{"type":"boolean","title":"Mark Failed","default":false}},"type":"object","required":["env_uuid"],"title":"RolloutAdvanceRequest"},"RotateSecretBody":{"properties":{"key":{"type":"string","minLength":1,"title":"Key"},"value":{"type":"string","minLength":1,"title":"Value"}},"type":"object","required":["key","value"],"title":"RotateSecretBody"},"RunErrorDetailV1":{"properties":{"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider"},"retryable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Retryable"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"suggested_recovery":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suggested Recovery"},"raw":{"anyOf":[{"type":"string","maxLength":4000},{"type":"null"}],"title":"Raw"}},"type":"object","title":"RunErrorDetailV1","description":"OpenAPI mirror of ``shared.atoms.run_error.RunErrorV1`` (REST + MCP parity)."},"RunScenarioBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id","default":1},"buyer_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Buyer User Id"},"skip_faucet":{"type":"boolean","title":"Skip Faucet","default":false},"agent_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Uuid"},"options":{"additionalProperties":true,"type":"object","title":"Options"}},"type":"object","title":"RunScenarioBody"},"RunWithAgcCreditsBody":{"properties":{"input":{"additionalProperties":true,"type":"object","title":"Input"},"credits_atomic":{"type":"integer","maximum":1000000000.0,"exclusiveMinimum":0.0,"title":"Credits Atomic"},"max_agnt_atomic":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Agnt Atomic"},"idempotency_key":{"type":"string","maxLength":256,"minLength":8,"title":"Idempotency Key"},"quote_id":{"type":"string","maxLength":64,"minLength":8,"title":"Quote Id"},"quote_hash":{"type":"string","maxLength":128,"minLength":16,"title":"Quote Hash"},"trace_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Trace Id"}},"type":"object","required":["credits_atomic","idempotency_key","quote_id","quote_hash"],"title":"RunWithAgcCreditsBody"},"SafetyReaction":{"properties":{"playbook_id":{"type":"string","maxLength":64,"title":"Playbook Id","default":""},"notify_moderators":{"type":"boolean","title":"Notify Moderators","default":true},"auto_handoff":{"type":"boolean","title":"Auto Handoff","default":false}},"type":"object","title":"SafetyReaction","description":"Per-category operator policy (regex rules stay in the safety organelle)."},"SandboxHostingReleaseRequest":{"properties":{"site_id":{"type":"string","title":"Site Id"},"env_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Env Uuid"},"sandbox_generation":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Sandbox Generation"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"publish_preview":{"type":"boolean","title":"Publish Preview","default":true}},"type":"object","required":["site_id"],"title":"SandboxHostingReleaseRequest"},"SaveAssetPresetRequest":{"properties":{"preset":{"additionalProperties":true,"type":"object","title":"Preset"}},"type":"object","required":["preset"],"title":"SaveAssetPresetRequest"},"SaveScenarioDraftBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"spec":{"additionalProperties":true,"type":"object","title":"Spec"},"logic":{"additionalProperties":true,"type":"object","title":"Logic"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"}},"type":"object","required":["project_id"],"title":"SaveScenarioDraftBody"},"SchemaResetBody":{"properties":{"scope":{"type":"string","title":"Scope","description":"ledger_core | bridge_aux | full"},"confirm_token":{"type":"string","maxLength":128,"minLength":8,"title":"Confirm Token"}},"type":"object","required":["scope","confirm_token"],"title":"SchemaResetBody"},"SchemaTraceRequest":{"properties":{"rule":{"additionalProperties":true,"type":"object","title":"Rule","description":"Full rule JSON"},"block_id":{"type":"string","title":"Block Id","description":"Target block id"},"processors":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Processors","description":"Optional processor catalog keyed by name (with output_schema per action)"}},"type":"object","required":["rule","block_id"],"title":"SchemaTraceRequest"},"SearchRequest":{"properties":{"query":{"type":"string","title":"Query","description":"Natural language query"},"top_k":{"type":"integer","maximum":20.0,"minimum":1.0,"title":"Top K","description":"Number of results","default":5},"hybrid":{"type":"boolean","title":"Hybrid","description":"Use hybrid BM25+dense search","default":true},"mmr":{"type":"boolean","title":"Mmr","description":"Use MMR for diverse results","default":false},"filters":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Filters","description":"Metadata filters"}},"type":"object","required":["query"],"title":"SearchRequest"},"SegmentRequest":{"properties":{"name":{"type":"string","title":"Name"},"rules":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Rules"}},"type":"object","required":["name"],"title":"SegmentRequest"},"SellActivateProductSpec":{"properties":{"row_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Row Id"},"preset_id":{"type":"string","title":"Preset Id","default":"marketplace_product"},"name":{"type":"string","title":"Name"},"sku":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sku"},"price_usdt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Usdt"},"fulfillment_mode":{"type":"string","title":"Fulfillment Mode","default":"catalog_definition"},"create_listing":{"type":"boolean","title":"Create Listing","default":true},"featured":{"type":"boolean","title":"Featured","default":false},"quantity":{"type":"integer","minimum":1.0,"title":"Quantity","default":1},"preset_inputs":{"additionalProperties":true,"type":"object","title":"Preset Inputs"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"group_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"},"variant":{"additionalProperties":true,"type":"object","title":"Variant"},"compare_at_usdt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Compare At Usdt"},"existing_asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Existing Asset Id"}},"type":"object","required":["name"],"title":"SellActivateProductSpec"},"SellActivateRequest":{"properties":{"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"products":{"items":{"$ref":"#/components/schemas/SellActivateProductSpec"},"type":"array","title":"Products"},"seed_options":{"anyOf":[{"$ref":"#/components/schemas/StorefrontSeedOptionsBody"},{"type":"null"}]},"publish_hosted":{"type":"boolean","title":"Publish Hosted","default":false},"bucket_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bucket Name"},"idempotency_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency Key"},"allowed_rails":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Rails"},"storefront_public":{"type":"boolean","title":"Storefront Public","default":true},"use_starter":{"type":"boolean","title":"Use Starter","default":false},"product_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Name"},"use_ai":{"type":"boolean","title":"Use Ai","default":false},"ai_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ai Prompt"}},"type":"object","title":"SellActivateRequest"},"ServicesInquiryBody":{"properties":{"sku":{"type":"string","maxLength":64,"minLength":1,"title":"Sku"},"name":{"type":"string","maxLength":120,"minLength":1,"title":"Name"},"email":{"type":"string","maxLength":254,"minLength":3,"title":"Email"},"company":{"anyOf":[{"type":"string","maxLength":160},{"type":"null"}],"title":"Company"},"message":{"type":"string","maxLength":2000,"minLength":10,"title":"Message"},"website":{"type":"string","maxLength":200,"title":"Website","default":""},"locale":{"anyOf":[{"type":"string","maxLength":8},{"type":"null"}],"title":"Locale"},"channel":{"anyOf":[{"type":"string","enum":["telegram","web","other"]},{"type":"null"}],"title":"Channel"},"has_content":{"anyOf":[{"type":"string","enum":["yes","no","later"]},{"type":"null"}],"title":"Has Content"},"success":{"anyOf":[{"type":"string","maxLength":240},{"type":"null"}],"title":"Success"}},"type":"object","required":["sku","name","email","message"],"title":"ServicesInquiryBody","description":"Guest inquiry for a catalog SKU."},"SetBrainBody":{"properties":{"mode":{"type":"string","title":"Mode","default":"agent"},"agent_uuid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Uuid"},"logic_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logic Id"},"fallback_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fallback Text"},"replacements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Replacements"},"unified_diff":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unified Diff"},"allow_shrink":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Allow Shrink"},"rag_collections":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Rag Collections"},"rag_trigger_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rag Trigger Mode"},"rag_trigger_phrases":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Rag Trigger Phrases"},"rag_debug":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Rag Debug"}},"type":"object","title":"SetBrainBody"},"SimulateBody":{"properties":{"text":{"type":"string","minLength":1,"title":"Text"},"external_user_id":{"type":"string","title":"External User Id","default":"sim-user"},"chat_type":{"type":"string","maxLength":32,"title":"Chat Type","default":"private"},"external_chat_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Chat Id"},"channel_kind":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Channel Kind"}},"type":"object","required":["text"],"title":"SimulateBody"},"SimulateCommerceOfferBody":{"properties":{"listing_uuid":{"type":"string","minLength":4,"title":"Listing Uuid"},"external_user_id":{"type":"string","maxLength":128,"title":"External User Id","default":"sim-user"},"channel_kind":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Channel Kind"},"cta_label":{"type":"string","maxLength":64,"title":"Cta Label","default":"View offer"},"intro_text":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Intro Text"}},"type":"object","required":["listing_uuid"],"title":"SimulateCommerceOfferBody"},"SimulateRequest":{"properties":{"scenario":{"type":"string","title":"Scenario","description":"Scenario name: top_up | sale | subscription | energy_pack | refund | failed"},"amount":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Amount","description":"Amount (for monetary scenarios)"},"currency":{"type":"string","title":"Currency","default":"USD"},"description":{"type":"string","title":"Description","default":""},"wallet_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wallet Id"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","description":"Reason for refund or failure"},"plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Plan","description":"Plan name for subscription scenario"},"billing_cycle":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Cycle","default":"monthly"},"pack_size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pack Size","description":"Energy pack size","default":500},"buyer_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Buyer User Id"},"target_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Target User Id"},"original_payment_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Original Payment Id"},"recipient_wallet_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recipient Wallet Id"}},"type":"object","required":["scenario"],"title":"SimulateRequest"},"SkillSubscription":{"properties":{"publisher_project_id":{"type":"integer","minimum":0.0,"title":"Publisher Project Id","default":0},"skill_id":{"type":"string","maxLength":128,"minLength":1,"title":"Skill Id"},"source_doc_id":{"type":"string","maxLength":256,"title":"Source Doc Id","default":""}},"type":"object","required":["skill_id"],"title":"SkillSubscription","description":"Consent to read one public skill. publisher_project_id 0 is the ecosystem fixture."},"SnapshotBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"force":{"type":"boolean","title":"Force","default":false}},"type":"object","required":["project_id"],"title":"SnapshotBody"},"SocialActivityVisibility":{"properties":{"who_can_see_online":{"$ref":"#/components/schemas/OnlineVisibilityAudience","default":"everyone"}},"type":"object","title":"SocialActivityVisibility","description":"Who can infer online / activity signals (messenger + profile surfaces)."},"SocialAdminExecuteBody":{"properties":{"action":{"type":"string","minLength":8,"title":"Action","description":"e.g. social.admin.user_summary"},"params":{"additionalProperties":true,"type":"object","title":"Params"}},"type":"object","required":["action"],"title":"SocialAdminExecuteBody","description":"Invoke one registered social.admin.* action (mirrors MCP tool names)."},"SocialExpandBody":{"properties":{"home_project_id":{"type":"integer","title":"Home Project Id","default":1},"ids":{"items":{"type":"string"},"type":"array","title":"Ids"}},"type":"object","title":"SocialExpandBody"},"SocialPublicPublishBody":{"properties":{"home_project_id":{"type":"integer","title":"Home Project Id"},"kind":{"type":"string","title":"Kind","default":"channels"},"channel_id":{"type":"string","maxLength":512,"minLength":1,"title":"Channel Id"}},"type":"object","required":["home_project_id","channel_id"],"title":"SocialPublicPublishBody"},"SocialPublicReconcileBody":{"properties":{"home_project_id":{"type":"integer","title":"Home Project Id"}},"type":"object","required":["home_project_id"],"title":"SocialPublicReconcileBody"},"SolRegisterBody":{"properties":{"agent_uuid":{"type":"string","minLength":4,"title":"Agent Uuid"},"name":{"type":"string","maxLength":128,"title":"Name","default":"AgentStack Agent"},"description":{"type":"string","maxLength":2000,"title":"Description","default":""}},"type":"object","required":["agent_uuid"],"title":"SolRegisterBody"},"StaffReplyBody":{"properties":{"text":{"type":"string","maxLength":8000,"minLength":1,"title":"Text"},"clear_handoff":{"type":"boolean","title":"Clear Handoff","default":false},"require_handoff":{"type":"boolean","title":"Require Handoff","default":false}},"type":"object","required":["text"],"title":"StaffReplyBody"},"StartRunBody":{"properties":{"input":{"additionalProperties":true,"type":"object","title":"Input"},"idempotency_key":{"anyOf":[{"type":"string","maxLength":256,"minLength":8},{"type":"null"}],"title":"Idempotency Key"},"wait":{"type":"boolean","title":"Wait","default":false},"wait_timeout_s":{"type":"number","maximum":30.0,"minimum":0.0,"title":"Wait Timeout S","default":0.0},"parent_run_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Parent Run Id"},"root_run_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Root Run Id"},"handoff_to_agent_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Handoff To Agent Id"},"handoff_reason":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Handoff Reason"}},"type":"object","title":"StartRunBody"},"StartSessionBody":{"properties":{"playbook_id":{"type":"string","title":"Playbook Id"},"initial_state":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Initial State"}},"type":"object","required":["playbook_id"],"title":"StartSessionBody"},"StopRunBody":{"properties":{"reason":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Reason"},"reviewer_note":{"anyOf":[{"type":"string","maxLength":2000},{"type":"null"}],"title":"Reviewer Note"}},"type":"object","title":"StopRunBody"},"StorageImportBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"folder_id":{"type":"string","minLength":1,"title":"Folder Id"}},"type":"object","required":["project_id","folder_id"],"title":"StorageImportBody"},"StorageOpBeaconsBody":{"properties":{"events":{"items":{"$ref":"#/components/schemas/MessengerOpBeaconEvent"},"type":"array","maxItems":256,"title":"Events"},"rollup":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rollup"},"rollout":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Rollout"}},"type":"object","title":"StorageOpBeaconsBody","description":"Client batch from ``storageBeacons.ts`` — same shape as messenger sink."},"StorageReconcileBody":{"properties":{"delete_disk_orphans":{"type":"boolean","title":"Delete Disk Orphans","default":false},"purge_dna_ghosts":{"type":"boolean","title":"Purge Dna Ghosts","default":false},"index_disk_orphans":{"type":"boolean","title":"Index Disk Orphans","default":false},"recalculate_quota":{"type":"boolean","title":"Recalculate Quota","default":true},"dry_run":{"type":"boolean","title":"Dry Run","default":true}},"type":"object","title":"StorageReconcileBody"},"StorageScope":{"type":"string","enum":["user","project"],"title":"StorageScope","description":"user = member row (P, caller); project = project row (P, 0)."},"StorefrontOneClickFillRequest":{"properties":{"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"limit":{"type":"integer","maximum":25.0,"minimum":1.0,"title":"Limit","default":10},"idempotency_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency Key"},"preset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preset Id"}},"type":"object","title":"StorefrontOneClickFillRequest"},"StorefrontSeedApplyRequest":{"properties":{"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"plan":{"additionalProperties":true,"type":"object","title":"Plan"},"idempotency_key":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency Key"}},"type":"object","required":["plan"],"title":"StorefrontSeedApplyRequest"},"StorefrontSeedIngestBody":{"properties":{"source":{"type":"string","title":"Source","default":"csv"},"preset_id":{"type":"string","title":"Preset Id","default":"marketplace_product"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text"},"column_map":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Column Map"},"specs":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Specs"},"answers_list":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Answers List"},"answers":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Answers"}},"type":"object","title":"StorefrontSeedIngestBody"},"StorefrontSeedOptionsBody":{"properties":{"set_featured":{"type":"boolean","title":"Set Featured","default":false},"auto_accept":{"type":"boolean","title":"Auto Accept","default":true},"listing_type":{"type":"string","title":"Listing Type","default":"sell"},"whitelist_enabled":{"type":"boolean","title":"Whitelist Enabled","default":false}},"type":"object","title":"StorefrontSeedOptionsBody"},"StorefrontSeedPlanRequest":{"properties":{"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"specs":{"items":{"$ref":"#/components/schemas/StorefrontSeedProductSpecBody"},"type":"array","title":"Specs"},"options":{"anyOf":[{"$ref":"#/components/schemas/StorefrontSeedOptionsBody"},{"type":"null"}]}},"type":"object","required":["specs"],"title":"StorefrontSeedPlanRequest"},"StorefrontSeedProductSpecBody":{"properties":{"row_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Row Id"},"preset_id":{"type":"string","title":"Preset Id","default":"marketplace_product"},"name":{"type":"string","title":"Name"},"sku":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sku"},"price_usdt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Usdt"},"fulfillment_mode":{"type":"string","title":"Fulfillment Mode","default":"catalog_definition"},"create_listing":{"type":"boolean","title":"Create Listing","default":true},"featured":{"type":"boolean","title":"Featured","default":false},"quantity":{"type":"integer","minimum":1.0,"title":"Quantity","default":1},"preset_inputs":{"additionalProperties":true,"type":"object","title":"Preset Inputs"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"},"group_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Group Id"},"variant":{"additionalProperties":true,"type":"object","title":"Variant"},"compare_at_usdt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Compare At Usdt"},"existing_asset_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Existing Asset Id"}},"type":"object","required":["name"],"title":"StorefrontSeedProductSpecBody"},"StorefrontSeedUndoRequest":{"properties":{"run_id":{"type":"string","title":"Run Id"}},"type":"object","required":["run_id"],"title":"StorefrontSeedUndoRequest"},"StudioDraftBody":{"properties":{"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"rows":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Rows"}},"type":"object","title":"StudioDraftBody"},"SubmitIntentBody":{"properties":{"agent_uuid":{"type":"string","minLength":4,"title":"Agent Uuid"},"intent_type":{"$ref":"#/components/schemas/IntentType","default":"fleet.run"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"},"caip2":{"type":"string","minLength":3,"title":"Caip2"},"nonce":{"type":"string","minLength":1,"title":"Nonce"},"deadline_unix":{"type":"integer","minimum":0.0,"title":"Deadline Unix","default":0},"signer_caip10":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Signer Caip10"},"evidence_tier":{"$ref":"#/components/schemas/EvidenceTier","default":"none"},"proof_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Proof Kind"},"proof_ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Proof Ref"}},"type":"object","required":["agent_uuid","caip2","nonce"],"title":"SubmitIntentBody"},"SupportAssignBody":{"properties":{"assignee_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Assignee User Id"}},"type":"object","title":"SupportAssignBody"},"SupportConfigPatchBody":{"properties":{"patch":{"additionalProperties":true,"type":"object","title":"Patch"}},"type":"object","title":"SupportConfigPatchBody"},"SupportEligibilityBody":{"properties":{"project_ids":{"items":{"type":"integer"},"type":"array","title":"Project Ids"}},"type":"object","title":"SupportEligibilityBody"},"SupportMessageBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"body":{"type":"string","maxLength":65536,"title":"Body","default":""},"attachments":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Attachments"},"client_message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Message Id"}},"type":"object","required":["project_id"],"title":"SupportMessageBody"},"SupportReactionBody":{"properties":{"message_id":{"type":"string","maxLength":128,"minLength":1,"title":"Message Id"},"helpful":{"type":"boolean","title":"Helpful"}},"type":"object","required":["message_id","helpful"],"title":"SupportReactionBody"},"SupportStaffMessageBody":{"properties":{"body":{"type":"string","maxLength":65536,"title":"Body","default":""},"attachments":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Attachments"},"client_message_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Client Message Id"}},"type":"object","title":"SupportStaffMessageBody"},"SupportTransitionBody":{"properties":{"status":{"$ref":"#/components/schemas/TicketStatus"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","required":["status"],"title":"SupportTransitionBody"},"SwapExecuteBody":{"properties":{"quote_id":{"type":"string","title":"Quote Id"},"quote_hash":{"type":"string","title":"Quote Hash"}},"type":"object","required":["quote_id","quote_hash"],"title":"SwapExecuteBody"},"SwapQuoteBody":{"properties":{"from_currency":{"type":"string","title":"From Currency"},"to_currency":{"type":"string","title":"To Currency"},"amount":{"type":"number","exclusiveMinimum":0.0,"title":"Amount"}},"type":"object","required":["from_currency","to_currency","amount"],"title":"SwapQuoteBody"},"TemplatePreviewBody":{"properties":{"template_id":{"type":"string","title":"Template Id"},"name":{"type":"string","title":"Name","default":""},"template_input":{"additionalProperties":true,"type":"object","title":"Template Input"}},"type":"object","required":["template_id"],"title":"TemplatePreviewBody","description":"Body for ``POST /agents/templates/preview`` — preview merged AgentSpec without persisting."},"TestHookBody":{"properties":{"owner_kind":{"$ref":"#/components/schemas/IntegrationOwnerKind","default":"project"},"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"User Id"},"provider":{"type":"string","title":"Provider"},"slug":{"type":"string","title":"Slug"},"body_json":{"additionalProperties":true,"type":"object","title":"Body Json"},"headers":{"additionalProperties":{"type":"string"},"type":"object","title":"Headers"}},"type":"object","required":["project_id","provider","slug"],"title":"TestHookBody"},"TestScenarioStepBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"step_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Step Id"},"command_data":{"additionalProperties":true,"type":"object","title":"Command Data"},"mocks":{"additionalProperties":true,"type":"object","title":"Mocks"},"pin_data":{"additionalProperties":true,"type":"object","title":"Pin Data"}},"type":"object","required":["project_id"],"title":"TestScenarioStepBody"},"TicketStatus":{"type":"string","enum":["open","pending","resolved","closed","reopened"],"title":"TicketStatus","description":"Support ticket lifecycle (hybrid model: episodes inside one channel)."},"TransactionListResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"transactions":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Transactions"},"total":{"type":"integer","title":"Total"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","transactions","total","message"],"title":"TransactionListResponse","description":"Response for transaction list operations"},"TransactionResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"transaction":{"additionalProperties":true,"type":"object","title":"Transaction"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","transaction","message"],"title":"TransactionResponse","description":"Response for single transaction operations"},"TransferAssetRequest":{"properties":{"to_user_id":{"type":"integer","title":"To User Id"},"to_project_id":{"type":"integer","title":"To Project Id"},"quantity":{"type":"integer","title":"Quantity","default":1}},"type":"object","required":["to_user_id","to_project_id"],"title":"TransferAssetRequest"},"TransitionBody":{"properties":{"target_status":{"type":"string","title":"Target Status","description":"GrantStatus value"}},"type":"object","required":["target_status"],"title":"TransitionBody"},"TreasurySeedBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id"},"amount_atomic":{"type":"integer","minimum":1.0,"title":"Amount Atomic","default":10000000},"idempotency_key":{"type":"string","maxLength":128,"minLength":8,"title":"Idempotency Key"}},"type":"object","required":["project_id","idempotency_key"],"title":"TreasurySeedBody"},"TriggerTestBody":{"properties":{"resource":{"type":"string","title":"Resource","description":"FAP resource key (e.g. orders)"},"action":{"type":"string","title":"Action","description":"created | updated | deleted | read"},"data":{"additionalProperties":true,"type":"object","title":"Data","description":"Sample event payload"},"user_id":{"type":"integer","title":"User Id","default":0},"user_role":{"type":"string","title":"User Role","default":"user"},"permissions_bitmap":{"type":"integer","title":"Permissions Bitmap","default":0},"resource_owner_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resource Owner Id"}},"type":"object","required":["resource","action"],"title":"TriggerTestBody","description":"Body for POST /trigger-test — simulate field_triggers match + conditions."},"UpdateAssetRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"price_usdt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Price Usdt"},"components":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Components"}},"type":"object","title":"UpdateAssetRequest"},"UpdateConnectionBody":{"properties":{"label":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Label"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"config":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Config"},"direction":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Direction"},"slug":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Slug"}},"type":"object","title":"UpdateConnectionBody"},"UpdateEcosystemKeyBody":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"permissions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Permissions"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"}},"type":"object","title":"UpdateEcosystemKeyBody","description":"Optional fields for PATCH /ecosystem-keys/{key_id}."},"UpdateListingRequest":{"properties":{"listing":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Listing"},"deal":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Deal"}},"type":"object","title":"UpdateListingRequest"},"UpdateLogicRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"triggers":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Triggers"},"schedulers":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Schedulers"},"space":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Space"},"editor_metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Editor Metadata"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"priority":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Priority"},"path_updates":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Path Updates"},"write_mode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Write Mode"},"allow_shrink":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Allow Shrink"},"replacements":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Replacements"},"unified_diff":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Unified Diff"},"text_field":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text Field"}},"type":"object","title":"UpdateLogicRequest","description":"Request model for updating logic"},"UpdateUserAPIKeyRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"New name for the API key"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status","description":"New status (active/inactive)"}},"type":"object","title":"UpdateUserAPIKeyRequest"},"UpdateWalletRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"}},"type":"object","title":"UpdateWalletRequest","description":"Request for updating a wallet"},"UpsertDefinitionBody":{"properties":{"definition_id":{"type":"string","title":"Definition Id"},"title":{"type":"string","title":"Title"},"definition":{"additionalProperties":true,"type":"object","title":"Definition"},"version":{"type":"integer","title":"Version","default":1}},"type":"object","required":["definition_id","title"],"title":"UpsertDefinitionBody"},"UpsertLogicRuleRequest":{"properties":{"rule_id":{"type":"string","title":"Rule Id"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"triggers":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Triggers"},"schedulers":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Schedulers"},"space":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Space"},"steps":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Steps"},"saga":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Saga"},"auth":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Auth"},"compensate":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Compensate"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"editor_metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Editor Metadata"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"priority":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Priority"},"project_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Project Id"},"path_updates":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Path Updates"}},"additionalProperties":true,"type":"object","required":["rule_id"],"title":"UpsertLogicRuleRequest","description":"Flexible body for idempotent rule upsert keyed by ``rule_id``."},"UserAPIKeyResponse":{"properties":{"key_id":{"type":"string","title":"Key Id"},"name":{"type":"string","title":"Name"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"},"last_used_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Used At"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"},"status":{"type":"string","title":"Status"},"key_preview":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Key Preview"},"actor_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor Kind"},"resource_scope":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Resource Scope"},"service_caps":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Service Caps"},"preset":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preset"},"pat_kind":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pat Kind"},"oauth_client_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Oauth Client Id"}},"type":"object","required":["key_id","name","created_at","last_used_at","expires_at","status"],"title":"UserAPIKeyResponse"},"UserLookupBody":{"properties":{"query":{"type":"string","maxLength":200,"minLength":1,"title":"Query"}},"type":"object","required":["query"],"title":"UserLookupBody"},"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"},"VaultDepositConfirmBody":{"properties":{"user_id":{"type":"integer","minimum":1.0,"title":"User Id"},"shares_atomic":{"type":"integer","exclusiveMinimum":0.0,"title":"Shares Atomic"},"underlying_usdt_atomic":{"type":"integer","exclusiveMinimum":0.0,"title":"Underlying Usdt Atomic"},"idempotency_key":{"type":"string","maxLength":128,"minLength":8,"title":"Idempotency Key"},"bridge_intent_id":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Bridge Intent Id"},"tx_hash":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Tx Hash"}},"type":"object","required":["user_id","shares_atomic","underlying_usdt_atomic","idempotency_key"],"title":"VaultDepositConfirmBody","description":"Indexer/operator confirms vault deposit → L0 share credit."},"VerifyInviteBody":{"properties":{"token":{"type":"string","title":"Token"}},"type":"object","required":["token"],"title":"VerifyInviteBody"},"W0PatchBody":{"properties":{"updates":{"additionalProperties":{"type":"string"},"type":"object","title":"Updates"}},"type":"object","title":"W0PatchBody"},"WalletListResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"wallets":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Wallets"},"total":{"type":"integer","title":"Total"},"message":{"type":"string","title":"Message"},"wallet_setup_hint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Wallet Setup Hint"}},"type":"object","required":["success","wallets","total","message"],"title":"WalletListResponse","description":"Response for wallet list operations"},"WalletResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"wallet":{"additionalProperties":true,"type":"object","title":"Wallet"},"message":{"type":"string","title":"Message"}},"type":"object","required":["success","wallet","message"],"title":"WalletResponse","description":"Response for single wallet operations"},"WebhookReplayRequest":{"properties":{"webhook_url":{"type":"string","title":"Webhook Url","description":"Developer webhook endpoint URL"},"event_type":{"type":"string","title":"Event Type","default":"payment_completed"},"extra_payload":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Payload"}},"type":"object","required":["webhook_url"],"title":"WebhookReplayRequest"},"WithdrawalRequestBody":{"properties":{"amount":{"type":"number","exclusiveMinimum":0.0,"title":"Amount","description":"Amount to withdraw (before commission)"},"currency":{"type":"string","title":"Currency","description":"Currency code","default":"USD"},"note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Note","description":"Optional note for admin"}},"type":"object","required":["amount"],"title":"WithdrawalRequestBody"},"WithdrawalSettingsBody":{"properties":{"type":{"type":"string","title":"Type","description":"bank_transfer | card","default":"bank_transfer"},"bank_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bank Name"},"account_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Number"},"holder_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Holder Name"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","title":"WithdrawalSettingsBody"},"WithdrawalStatusBody":{"properties":{"status":{"type":"string","title":"Status","description":"approved | paid | rejected"},"admin_note":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Admin Note","description":"Admin note"}},"type":"object","required":["status"],"title":"WithdrawalStatusBody"},"WorkNextPostBody":{"properties":{"claim":{"type":"boolean","title":"Claim","default":false},"goal_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Goal Id"},"agent_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Agent Id"},"prefer_agent_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Prefer Agent Id"},"node_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Node Id"},"focus_node_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Focus Node Id"},"handoff":{"type":"boolean","title":"Handoff","default":false},"detail":{"type":"string","maxLength":16,"title":"Detail","default":"compact"},"expand":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Expand"},"home":{"anyOf":[{"type":"string","maxLength":32},{"type":"null"}],"title":"Home","default":"project"},"env_uuid":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Env Uuid"},"locale":{"anyOf":[{"type":"string","maxLength":16},{"type":"null"}],"title":"Locale"},"blocked_cursor":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Blocked Cursor"},"blocked_limit":{"anyOf":[{"type":"integer","maximum":50.0,"minimum":1.0},{"type":"null"}],"title":"Blocked Limit"},"workflow_run_id":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Workflow Run Id"},"observed":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Observed"},"include_generation_pending":{"type":"boolean","title":"Include Generation Pending","default":false}},"type":"object","title":"WorkNextPostBody","description":"Composite work_next read + optional claim (MCP ``agents.work_next`` claim=true)."},"WorkerRunBody":{"properties":{"project_id":{"type":"integer","minimum":1.0,"title":"Project Id","default":1},"buyer_user_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Buyer User Id"},"skip_relay":{"type":"boolean","title":"Skip Relay","default":false},"skip_vault":{"type":"boolean","title":"Skip Vault","default":false},"skip_anchor":{"type":"boolean","title":"Skip Anchor","default":false}},"type":"object","title":"WorkerRunBody"},"WorkflowCompilePreviewBody":{"properties":{"workflow":{"additionalProperties":true,"type":"object","title":"Workflow"}},"type":"object","title":"WorkflowCompilePreviewBody","description":"Body for ``POST /agents/workflow/compile-preview`` — validate graph without persisting."},"endpoints__command_endpoints__CommandRequest":{"properties":{"command":{"type":"string","title":"Command"},"data":{"additionalProperties":true,"type":"object","title":"Data","default":{}}},"type":"object","required":["command"],"title":"CommandRequest","description":"Request model for executing a command"},"endpoints__command_endpoints__CommandResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"command":{"type":"string","title":"Command"},"handlers_matched":{"type":"integer","title":"Handlers Matched"},"results":{"items":{},"type":"array","title":"Results"},"timestamp":{"type":"string","title":"Timestamp"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["success","command","handlers_matched","results","timestamp"],"title":"CommandResponse","description":"Response model for command execution"},"protein_commands__router__CommandRequest":{"properties":{"command_type":{"type":"string","title":"Command Type"},"command_name":{"type":"string","title":"Command Name"},"payload":{"additionalProperties":true,"type":"object","title":"Payload"},"priority":{"type":"integer","title":"Priority","default":5},"timeout_ms":{"type":"integer","title":"Timeout Ms","default":30000},"retry_count":{"type":"integer","title":"Retry Count","default":3}},"type":"object","required":["command_type","command_name","payload"],"title":"CommandRequest","description":"Request model for protein commands"},"protein_commands__router__CommandResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"command_uuid":{"type":"string","title":"Command Uuid"},"status":{"type":"string","title":"Status"},"result":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Result"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"execution_time_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Execution Time Ms"},"warnings":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Warnings"}},"type":"object","required":["success","command_uuid","status"],"title":"CommandResponse","description":"Response model for protein commands (Philosophy v0.1.2)"},"ProblemDetails":{"type":"object","description":"RFC 7807 Problem Details (+ AgentStack trace_id).","required":["title","status"],"properties":{"type":{"type":"string","format":"uri","default":"about:blank","description":"URI reference identifying the problem type."},"title":{"type":"string","description":"Short, human-readable summary of the problem type."},"status":{"type":"integer","minimum":100,"maximum":599,"description":"HTTP status code for this occurrence."},"detail":{"type":"string","description":"Human-readable explanation specific to this occurrence."},"instance":{"type":"string","format":"uri","description":"URI reference identifying this specific occurrence."},"trace_id":{"type":"string","description":"AgentStack request/trace correlation id (X-Trace-Id)."}}},"PaginatedResponse":{"type":"object","description":"Offset/limit paginated list envelope.","properties":{"items":{"type":"array","items":{}},"total":{"type":"integer","minimum":0},"page":{"type":"integer","minimum":1},"per_page":{"type":"integer","minimum":1},"pages":{"type":"integer","minimum":0}}},"CursorPage":{"type":"object","description":"Cursor-based page envelope.","properties":{"items":{"type":"array","items":{}},"next_cursor":{"type":"string","nullable":true},"has_more":{"type":"boolean"}}}},"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"User session JWT from /auth/login."},"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-API-Key","description":"Project API key. Optional service_caps whitelist is enforced before RBAC. See /dev/docs/secure/api-keys-scopes. OAuth 2.1 Device Code (RFC 8628) for plugins: see /oauth/device/code — documented in docs, not as a non-standard OAS flow."}},"parameters":{"IdempotencyKey":{"name":"Idempotency-Key","in":"header","required":false,"description":"Client-generated key to make mutating requests idempotent.","schema":{"type":"string","maxLength":256}},"XProjectId":{"name":"X-Project-ID","in":"header","required":false,"description":"Active project scope for multi-tenant operations.","schema":{"type":"integer","minimum":1}},"XRequestId":{"name":"X-Request-ID","in":"header","required":false,"description":"Client request correlation id (echoed when present).","schema":{"type":"string","maxLength":128}},"XTraceId":{"name":"X-Trace-Id","in":"header","required":false,"description":"Distributed trace / OpTrace correlation id.","schema":{"type":"string","maxLength":128}}}},"tags":[{"name":"Health & Metrics","description":"Service health and metrics."},{"name":"MCP","description":"Model Context Protocol: POST /mcp (agentstack.execute), GET /mcp/actions (action catalog), GET /mcp/discovery. Preferred entry for AI agents (Cursor, Claude, VS Code, …)."},{"name":"8DNA API","description":"8DNA API: GET/POST /api/dna/data — key-value access to project.data.* and user.data.* (alternative to many CRUD routes). See docs/architecture/DNA_KEY_VALUE_API.md."},{"name":"Commands","description":"Protein commands: POST /api/commands/execute, batch, dna/{entity}/{op}. Same execution stack as MCP tools commands.execute / commands.execute_batch. Logic Engine client commands may appear here too."},{"name":"DataAccess","description":"Field Access Policy (FAP): /api/data-access/* — declarative field policy, triggers, templates."},{"name":"Authentication","description":"Login, registration, tokens, OAuth. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"User","description":"User profile, sessions, user API keys. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Profile","description":"Profile, wallets, avatars, convenience aliases. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Projects","description":"Projects: list, settings, members. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Project","description":"Current project: API keys, wallets, notifications, members. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"API Keys","description":"Project API key management. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"CRM","description":"CRM contacts, deals, pipeline, and contact 360 (project-scoped). REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Business","description":"Business organism: org tree, command snapshot, tariff gates (project-scoped). REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Integrations","description":"Integration Hub: recipes, inbound hooks, outbound connectors. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Agents Fleet","description":"Agents Fleet: templates, runs, promotion gates, traces. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Support","description":"Project support channels, staff inbox, tickets (psup). REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Bots","description":"Bots Fleet: inbound channels, brain router, outbound delivery. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Payments","description":"Payments and transactions (SDK list; source of truth — data_projects_transaction). REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"AgentNet","description":"AgentNet ledger (append-only double-entry SoT in Postgres; 8DNA mirror for UX). See docs/adr/AGENTCOIN_LEDGER_L0_AND_PUBLIC_ANCHORING.md. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Commerce","description":"Commerce surfaces: checkout, storefront, seller activation bridges. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Commerce Shop","description":"Buyer-facing shop catalog, cart, coupons. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Commerce Merchant","description":"Merchant listings, orders, shelf tools. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Marketplace","description":"Marketplace listings and discovery. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Assets","description":"Project digital assets / inventory catalog. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Global Assets","description":"Global asset registry. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Sessions","description":"User and project sessions. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Notifications","description":"Notifications and settings. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Dashboard","description":"Project dashboard overview. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"AI Builder","description":"AI Builder build and generation. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"RAG","description":"RAG collections, documents, semantic search, and long-term memory. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Project Files","description":"Project files. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Energy","description":"Energy (resources). REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Batch","description":"Batch requests. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Buffs","description":"Buffs and subscriptions. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Files","description":"Files and storage. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Logic Engine","description":"Rules engine (logic rules). REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Logic Templates","description":"Logic templates. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Webhooks","description":"Outbound webhook registration and delivery status. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Hosting","description":"Hosted static sites: publish, promote, rollback, /s/ URLs. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Invoices","description":"Invoices. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"SEO","description":"SEO and metadata. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"RBAC","description":"Roles and access (RBAC). REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Analytics","description":"Analytics and events. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Permissions","description":"Permissions. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Unified API","description":"Unified webhooks and client API. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Admin","description":"Project admin: status, security, agents. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"OAuth 2.1","description":"OAuth 2.1. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"OAuth 2.1 Admin","description":"OAuth 2.1 admin. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Build Queue","description":"Build queue. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Proxy","description":"Proxy to external services. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Neural Architecture","description":"Neural Architecture API. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Neural Events","description":"Neural events. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Matchmaking","description":"Matchmaking. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Stream/Relay","description":"Stream/Relay. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"User AI Settings","description":"User AI settings. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Avatars","description":"Avatars. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Backup Management","description":"Backup management. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Scheduler","description":"Scheduler tasks. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Fabric","description":"Managed fabric: context, capabilities, federation, ops, triggers. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Sandbox","description":"Sandbox and playground APIs. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Finance","description":"Finance BFF and treasury helpers. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Capabilities","description":"Capability matrix and fabric capability probes. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Guidance","description":"In-product guidance / compass hints. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"AgentSocial","description":"AgentSocial chat, channels, and social graph. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Billing","description":"Billing and subscription surfaces. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Discovery","description":"Public capability discovery. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Shell Hub","description":"Shell hub bootstrap for dual-shell SPA. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Platform","description":"Platform feature flags and meta. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Observability","description":"CSP reports, OpTrace, and ops telemetry. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Ecosystem","description":"Ecosystem-scoped project helpers. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Public hosting","description":"Unauthenticated hosting surfaces. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Public demo hosting","description":"Demo hosting claim and try flows. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Public showcase","description":"Public showcase catalogs. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Public grants","description":"Public grants demo surfaces. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Public commerce lite","description":"Public commerce lite endpoints. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"AgentNet PTR","description":"AgentNet PTR proof rails. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"AgentNet BNB","description":"AgentNet BNB chain attestation. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"AgentNet Solana","description":"AgentNet Solana attestation. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"AgentNet Arbitrum","description":"AgentNet Arbitrum attestation. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"AgentNet Chain Control","description":"AgentNet chain control (authenticated). REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"AgentNet Chain Control Public","description":"AgentNet chain control (public). REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"PrincipalAccess","description":"Principal access policy helpers. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"OpTrace","description":"OpTrace metrics and spans. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"API Hub","description":"API hub landing and doc links. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."},{"name":"Cardgame","description":"Cardgame bootstrap BFF. REST compatibility surface; for new integrations prefer MCP actions, GET/POST /api/dna/data, or POST /api/commands (see docs/API_CHANNELS_AND_PROTOCOLS.md)."}],"x-tagGroups":[{"name":"Unified access","tags":["MCP","8DNA API","Commands"]},{"name":"Field access policy","tags":["DataAccess"]},{"name":"Identity & access","tags":["Authentication","User","Profile","Sessions","RBAC","Permissions","OAuth 2.1","API Keys"]},{"name":"Project platform","tags":["Projects","Project","CRM","Business","Integrations","Agents Fleet","Support","Bots","Dashboard","Notifications"]},{"name":"Commerce","tags":["Payments","AgentNet","Commerce","Commerce Shop","Commerce Merchant","Marketplace","Assets","Global Assets","Invoices","Buffs"]},{"name":"Automation","tags":["Logic Engine","Logic Templates","Commands","Scheduler","Webhooks","Unified API"]},{"name":"Data & AI","tags":["8DNA API","RAG","Neural Architecture","Neural Events","AI Builder","Files","Project Files","Hosting"]},{"name":"Ops","tags":["Health & Metrics","Admin","Analytics","Backup Management","OAuth 2.1 Admin","Observability","OpTrace","API Hub"]},{"name":"Fabric & platform","tags":["Fabric","Capabilities","Sandbox","Shell Hub","Platform","Discovery","Guidance","Ecosystem"]},{"name":"Social & AgentNet","tags":["AgentSocial","AgentNet","AgentNet PTR","AgentNet BNB","AgentNet Solana","AgentNet Arbitrum","AgentNet Chain Control","AgentNet Chain Control Public"]},{"name":"Public surfaces","tags":["Public hosting","Public demo hosting","Public showcase","Public grants","Public commerce lite"]},{"name":"Finance & billing","tags":["Finance","Billing","Business","PrincipalAccess"]}],"security":[{"ApiKeyAuth":[]},{"BearerAuth":[]}],"webhooks":{"outboundWebhookDelivery":{"post":{"summary":"Outbound webhook delivery to subscriber URL","description":"Platform POSTs event payloads to registered webhook endpoints. See docs/api/agentstack-asyncapi.yaml and MCP integrations.* actions.","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Subscriber acknowledged"}}}}}}