{"openapi":"3.1.0","info":{"title":"AstraNL Protocol API","version":"4.0"},"paths":{"/coordination/universe":{"get":{"tags":["coordination-universe"],"summary":"Universe","description":"The full coordination universe — three classes of executors.","operationId":"universe_coordination_universe_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/coordination/route":{"post":{"tags":["coordination-universe"],"summary":"Route Intent","description":"Given a natural-language intent, return the recommended executor\nclass and concrete next-step endpoint.","operationId":"route_intent_coordination_route_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RouteIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/coordination/executors/{kind}":{"get":{"tags":["coordination-universe"],"summary":"Executors","description":"List concrete executors of a given class.","operationId":"executors_coordination_executors__kind__get","parameters":[{"name":"kind","in":"path","required":true,"schema":{"type":"string","title":"Kind"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"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"}}}}}}},"/coordination/manifest":{"get":{"tags":["coordination-universe"],"summary":"Coordination Manifest","operationId":"coordination_manifest_coordination_manifest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/scaling/status":{"get":{"tags":["scaling-brain"],"summary":"Scaling Status","operationId":"scaling_status_scaling_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/scaling/metrics_now":{"get":{"tags":["scaling-brain"],"summary":"Scaling Metrics Now","operationId":"scaling_metrics_now_scaling_metrics_now_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agents/wallet/manifest":{"get":{"tags":["agent-wallet"],"summary":"Manifest","operationId":"manifest_api_agents_wallet_manifest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agents/wallet/balance":{"get":{"tags":["agent-wallet"],"summary":"Wallet Balance","operationId":"wallet_balance_api_agents_wallet_balance_get","parameters":[{"name":"X-Agent-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Agent-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agents/wallet/topup":{"post":{"tags":["agent-wallet"],"summary":"Wallet Topup","operationId":"wallet_topup_api_agents_wallet_topup_post","parameters":[{"name":"X-Agent-Key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Agent-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TopupIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agents/wallet/stripe_webhook":{"post":{"tags":["agent-wallet"],"summary":"Stripe Webhook","description":"Stripe webhook. Verifies signature, credits wallet on success.","operationId":"stripe_webhook_api_agents_wallet_stripe_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/capabilities/manifest":{"get":{"tags":["direct-execution"],"summary":"Capabilities Manifest","description":"Public catalogue of what AstraNL executes directly without commission.","operationId":"capabilities_manifest_capabilities_manifest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/capabilities/classify":{"post":{"tags":["direct-execution"],"summary":"Classify","operationId":"classify_capabilities_classify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassifyIn"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/capabilities/execute":{"post":{"tags":["direct-execution"],"summary":"Execute","description":"Execute capability with strict billing.\n\nRules (AstraNL coordinates and executes at the highest level; AstraNL\ndoes NOT subsidise):\n\n  - X-Agent-Key required. No anonymous execution.\n  - Wallet balance must cover real inference cost. AstraNL margin = 0%.\n  - Insufficient balance → HTTP 402 with topup_url.\n  - No free trial. The first call already debits the wallet.","operationId":"execute_capabilities_execute_post","parameters":[{"name":"X-Agent-Key","in":"header","required":false,"schema":{"type":"string","title":"X-Agent-Key"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecuteIn"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/capabilities/stats":{"get":{"tags":["direct-execution"],"summary":"Stats","description":"Public stats on direct executions performed by AstraNL.","operationId":"stats_capabilities_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/economy/state":{"get":{"tags":["economy"],"summary":"Economy State","operationId":"economy_state_economy_state_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/economy/prices":{"get":{"tags":["economy"],"summary":"Economy Prices","operationId":"economy_prices_economy_prices_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Category"}},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Region"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/economy/ledger":{"get":{"tags":["economy"],"summary":"Economy Ledger","operationId":"economy_ledger_economy_ledger_get","parameters":[{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO timestamp filter","title":"Since"},"description":"ISO timestamp filter"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"event_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Event Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/economy/manifest":{"get":{"tags":["economy"],"summary":"Economy Manifest","operationId":"economy_manifest_economy_manifest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/ai-plugin.json":{"get":{"summary":"Ai Plugin","operationId":"ai_plugin__well_known_ai_plugin_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/openapi.json":{"get":{"summary":"Openapi Spec Route","operationId":"openapi_spec_route_openapi_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/llms-full.txt":{"get":{"tags":["agent-discovery"],"summary":"Llms Full","operationId":"llms_full_llms_full_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/agent-discovery/onboarding":{"get":{"tags":["agent-discovery"],"summary":"Agent Onboarding","operationId":"agent_onboarding_agent_discovery_onboarding_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agent-selection/manifest":{"get":{"tags":["agent-selection"],"summary":"Manifest","description":"The 9 selection criteria, as structured manifest. Stable URI.","operationId":"manifest_api_agent_selection_manifest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agent-selection/score":{"get":{"tags":["agent-selection"],"summary":"Score","description":"Self-reported score for each criterion. Numeric for agent comparison.\n\nAgents can poll this and compare to their threshold function.","operationId":"score_api_agent_selection_score_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agent-selection/proof":{"get":{"tags":["agent-selection"],"summary":"Proof","description":"Verifiable evidence agents can use to confirm AstraNL meets criteria.\n\nReturns content hashes and audit trail URIs an agent can independently\nverify before committing to use the protocol.","operationId":"proof_api_agent_selection_proof_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/astranl-identity/":{"get":{"tags":["identity"],"summary":"Get Full Identity","description":"Full AstraNL identity markdown. The constitution.","operationId":"get_full_identity_api_astranl_identity__get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/astranl-identity":{"get":{"tags":["identity"],"summary":"Get Full Identity","description":"Full AstraNL identity markdown. The constitution.","operationId":"get_full_identity_api_astranl_identity_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/astranl-identity/short":{"get":{"tags":["identity"],"summary":"Get Short","description":"10-line summary suitable for tight contexts.","operationId":"get_short_api_astranl_identity_short_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/api/astranl-identity/hash":{"get":{"tags":["identity"],"summary":"Get Hash","description":"SHA-256 constitutional fingerprint.","operationId":"get_hash_api_astranl_identity_hash_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/astranl-identity/prompt":{"get":{"tags":["identity"],"summary":"Get Prompt","description":"System prompt for AI calls. role = ai_consultant | ai_executor |\nadversarial_reviewer | module_bootstrap | human_developer.","operationId":"get_prompt_api_astranl_identity_prompt_get","parameters":[{"name":"role","in":"query","required":false,"schema":{"type":"string","default":"ai_consultant","title":"Role"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/astranl-identity/ack":{"post":{"tags":["identity"],"summary":"Acknowledge Identity","description":"Module/agent records that it has read identity before acting.","operationId":"acknowledge_identity_api_astranl_identity_ack_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/astranl-identity/audit":{"get":{"tags":["identity"],"summary":"Audit Recent","description":"Recent module acknowledgements for founder review.","operationId":"audit_recent_api_astranl_identity_audit_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/user/export":{"get":{"summary":"Export My Data","description":"GDPR Art. 15 + Art. 20: access + portability.\n\nReturns JSON with everything we have about the signed-in user.\nUser data is machine-readable so they can import it elsewhere.","operationId":"export_my_data_api_user_export_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/user/delete":{"post":{"summary":"Delete My Account","description":"GDPR Art. 17: right to erasure (\"right to be forgotten\").\n\nAnonymizes user's content (keeps forum value for community) and deletes\npersonal identifiers + account. Irreversible. Requires re-auth.","operationId":"delete_my_account_api_user_delete_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/forum/categories":{"get":{"summary":"List Categories","operationId":"list_categories_api_forum_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/forum/threads":{"get":{"summary":"List Threads","operationId":"list_threads_api_forum_threads_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}},{"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"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"recent","title":"Sort"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Create Thread","operationId":"create_thread_api_forum_threads_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/forum/threads/{thread_id}":{"get":{"summary":"Get Thread","operationId":"get_thread_api_forum_threads__thread_id__get","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"integer","title":"Thread Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/forum/threads/{thread_id}/reply":{"post":{"summary":"Create Reply","operationId":"create_reply_api_forum_threads__thread_id__reply_post","parameters":[{"name":"thread_id","in":"path","required":true,"schema":{"type":"integer","title":"Thread Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/forum/vote":{"post":{"summary":"Vote","operationId":"vote_api_forum_vote_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/community/":{"get":{"summary":"Community Index","operationId":"community_index_community__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/community/new":{"get":{"summary":"Community New","operationId":"community_new_community_new_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/community/{category_slug}/":{"get":{"summary":"Community Category","operationId":"community_category_community__category_slug___get","parameters":[{"name":"category_slug","in":"path","required":true,"schema":{"type":"string","title":"Category Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/community/{category_slug}/{thread_slug_id}":{"get":{"summary":"Community Thread","operationId":"community_thread_community__category_slug___thread_slug_id__get","parameters":[{"name":"category_slug","in":"path","required":true,"schema":{"type":"string","title":"Category Slug"}},{"name":"thread_slug_id","in":"path","required":true,"schema":{"type":"string","title":"Thread Slug Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/providers":{"get":{"summary":"Providers","operationId":"providers_auth_providers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/me":{"get":{"summary":"Auth Me","operationId":"auth_me_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/signout-ui":{"get":{"summary":"Signout Ui","operationId":"signout_ui_auth_signout_ui_get","parameters":[{"name":"redirect_to","in":"query","required":false,"schema":{"type":"string","default":"/","title":"Redirect To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/signout":{"post":{"summary":"Signout","operationId":"signout_auth_signout_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/start/google":{"get":{"summary":"Google Start","operationId":"google_start_auth_start_google_get","parameters":[{"name":"redirect_to","in":"query","required":false,"schema":{"type":"string","default":"/community/","title":"Redirect To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/callback/google":{"get":{"summary":"Google Callback","operationId":"google_callback_auth_callback_google_get","parameters":[{"name":"code","in":"query","required":false,"schema":{"type":"string","default":"","title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","default":"","title":"State"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/start/github":{"get":{"summary":"Github Start","operationId":"github_start_auth_start_github_get","parameters":[{"name":"redirect_to","in":"query","required":false,"schema":{"type":"string","default":"/community/","title":"Redirect To"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/callback/github":{"get":{"summary":"Github Callback","operationId":"github_callback_auth_callback_github_get","parameters":[{"name":"code","in":"query","required":false,"schema":{"type":"string","default":"","title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","default":"","title":"State"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/callback/telegram":{"post":{"summary":"Telegram Callback","operationId":"telegram_callback_auth_callback_telegram_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/email/start":{"post":{"summary":"Email Start","operationId":"email_start_auth_email_start_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/email/consume":{"get":{"summary":"Email Consume","operationId":"email_consume_auth_email_consume_get","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/sign-in":{"get":{"summary":"Sign In Page","operationId":"sign_in_page_auth_sign_in_get","parameters":[{"name":"redirect_to","in":"query","required":false,"schema":{"type":"string","default":"/community/","title":"Redirect To"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/chat/conversations":{"post":{"summary":"Create Conversation","operationId":"create_conversation_api_chat_conversations_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/chat/messages":{"post":{"summary":"Post Message","operationId":"post_message_api_chat_messages_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/chat/conversations/{conv_id}/messages":{"get":{"summary":"Get Messages","operationId":"get_messages_api_chat_conversations__conv_id__messages_get","parameters":[{"name":"conv_id","in":"path","required":true,"schema":{"type":"integer","title":"Conv Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"before_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Before Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/chat/search":{"get":{"summary":"Search","description":"Search warm tier. Cold tier will be added when needed.","operationId":"search_api_chat_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","title":"Q"}},{"name":"conv_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Conv Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Limit"}},{"name":"mode","in":"query","required":false,"schema":{"type":"string","default":"keyword","title":"Mode"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/chat/admin/age":{"post":{"summary":"Admin Age","description":"Manually trigger aging (admin only for now — simple header check).","operationId":"admin_age_api_chat_admin_age_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/chat/stats":{"get":{"summary":"Stats","description":"Health + capacity stats.","operationId":"stats_api_chat_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/astranl-node.json":{"get":{"summary":"Capability Manifest","description":"Public capability manifest used by peers for discovery.","operationId":"capability_manifest__well_known_astranl_node_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/federation/handshake":{"post":{"summary":"Handshake","operationId":"handshake_federation_handshake_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/federation/peers":{"get":{"summary":"List Peers","description":"Public list of active peers (for transparency + discovery).","operationId":"list_peers_federation_peers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/federation/match":{"post":{"summary":"Match","operationId":"match_federation_match_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/federation/settle":{"post":{"summary":"Settle","operationId":"settle_federation_settle_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/federation/price_audit":{"post":{"summary":"Price Audit","description":"Report a suspected Price Parity Rule violation.\n\nAnyone (client, watchdog, partner's own compliance dept) can file.\nIf federated_price > direct_price, it is logged for review.\nVerified violations trigger trust penalty + client refund.","operationId":"price_audit_federation_price_audit_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/federation/price_audit/{audit_id}/confirm":{"post":{"summary":"Confirm Audit","description":"Admin-only endpoint to confirm a price parity violation.","operationId":"confirm_audit_federation_price_audit__audit_id__confirm_post","parameters":[{"name":"audit_id","in":"path","required":true,"schema":{"type":"integer","title":"Audit Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/federation/price_audits":{"get":{"summary":"List Audits","description":"Public list of recent audits (transparency).","operationId":"list_audits_federation_price_audits_get","parameters":[{"name":"peer_did","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Peer Did"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"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"}}}}}}},"/federation/stats":{"get":{"summary":"Federation Stats","operationId":"federation_stats_federation_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/robots":{"get":{"summary":"Xr List","operationId":"xr_list_api_robots_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/robots/search":{"get":{"summary":"Xr Search","operationId":"xr_search_api_robots_search_get","parameters":[{"name":"task","in":"query","required":false,"schema":{"type":"string","default":"","title":"Task"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/robots/compare":{"get":{"summary":"Xr Compare","operationId":"xr_compare_api_robots_compare_get","parameters":[{"name":"ids","in":"query","required":false,"schema":{"type":"string","default":"","title":"Ids"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/robots/{robot_id}":{"get":{"summary":"Xr Detail","operationId":"xr_detail_api_robots__robot_id__get","parameters":[{"name":"robot_id","in":"path","required":true,"schema":{"type":"integer","title":"Robot Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/robots/{robot_id}/availability":{"get":{"summary":"Xr Availability","operationId":"xr_availability_api_robots__robot_id__availability_get","parameters":[{"name":"robot_id","in":"path","required":true,"schema":{"type":"integer","title":"Robot Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/robots/suggest":{"post":{"summary":"Xr Suggest","operationId":"xr_suggest_api_robots_suggest_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/calculator/materials":{"get":{"summary":"Xc Mats","operationId":"xc_mats_api_calculator_materials_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Xc Est Mats","operationId":"xc_est_mats_api_calculator_materials_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/calculator/estimate":{"post":{"summary":"Xc Est","operationId":"xc_est_api_calculator_estimate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/calculator/compare":{"post":{"summary":"Xc Cmp","operationId":"xc_cmp_api_calculator_compare_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/calculator/invoice":{"post":{"summary":"Xc Inv","operationId":"xc_inv_api_calculator_invoice_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/articles":{"get":{"summary":"Xa List","operationId":"xa_list_api_articles_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/articles/latest":{"get":{"summary":"Xarticles Latest","operationId":"xarticles_latest_api_articles_latest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/articles/{article_id}":{"get":{"summary":"Xarticle Get","operationId":"xarticle_get_api_articles__article_id__get","parameters":[{"name":"article_id","in":"path","required":true,"schema":{"type":"integer","title":"Article Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/radio/announcements":{"get":{"summary":"Xrd List","operationId":"xrd_list_api_radio_announcements_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/radio/now":{"get":{"summary":"Xrd Now","operationId":"xrd_now_api_radio_now_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agents/economic-status":{"get":{"summary":"Xa Agents Status","operationId":"xa_agents_status_api_agents_economic_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agents/robot-task-linker":{"post":{"summary":"Xa Robot Task Linker","operationId":"xa_robot_task_linker_api_agents_robot_task_linker_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agents/news-generator":{"post":{"summary":"Xa News Generator","operationId":"xa_news_generator_api_agents_news_generator_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agents/radio-signal-generator":{"post":{"summary":"Xa Radio Signal Generator","operationId":"xa_radio_signal_generator_api_agents_radio_signal_generator_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/news/ingest":{"post":{"summary":"Xn Ingest","description":"Operator endpoint: submit a raw signal through the full pipeline.\nintake → kernel → simplify → article → radio","operationId":"xn_ingest_api_news_ingest_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/news/pipeline/run":{"post":{"summary":"Xn Pipeline Run","description":"Process all pending signals in the intake queue.","operationId":"xn_pipeline_run_api_news_pipeline_run_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/news/signals":{"get":{"summary":"Xn Signals","description":"List signals in the intake queue (operator/admin view).","operationId":"xn_signals_api_news_signals_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","default":"pending","title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/test-agent/status":{"get":{"tags":["test-agent"],"summary":"Status","description":"Returns the last run for each run type, plus a combined health verdict.","operationId":"status_api_test_agent_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/test-agent/run":{"post":{"tags":["test-agent"],"summary":"Trigger Run","description":"Trigger a test run. Returns immediately with run_id if async_run=true.\nTypes: smoke (post-deploy), critical (hourly), full (daily regression).","operationId":"trigger_run_api_test_agent_run_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/test-agent/results/{run_id}":{"get":{"tags":["test-agent"],"summary":"Get Results","operationId":"get_results_api_test_agent_results__run_id__get","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"integer","title":"Run Id"}},{"name":"layer","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by layer","title":"Layer"},"description":"Filter by layer"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status: PASS|FAIL|NOT_VERIFIED","title":"Status"},"description":"Filter by status: PASS|FAIL|NOT_VERIFIED"},{"name":"severity","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by severity: critical|high|medium|low","title":"Severity"},"description":"Filter by severity: critical|high|medium|low"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/test-agent/failures":{"get":{"tags":["test-agent"],"summary":"Recent Failures","description":"Returns recent FAIL results ranked by severity. Critical failures first.","operationId":"recent_failures_api_test_agent_failures_get","parameters":[{"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"}}}}}}},"/api/test-agent/history":{"get":{"tags":["test-agent"],"summary":"History","description":"Returns last N test runs with summary stats.","operationId":"history_api_test_agent_history_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/test-agent/report/{run_id}":{"get":{"tags":["test-agent"],"summary":"Get Report","description":"Full structured report for a run: summary + grouped results by layer.","operationId":"get_report_api_test_agent_report__run_id__get","parameters":[{"name":"run_id","in":"path","required":true,"schema":{"type":"integer","title":"Run Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/kernel/check":{"post":{"summary":"Kernel Check","description":"Check task/robot/CTA against the Truth Kernel.\nIf mismatch: returns explanation + valid alternatives.\nBody: { \"check\": \"robot_compat|cta|task|execution_mode\", ... }","operationId":"kernel_check_api_kernel_check_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/kernel/truth-log":{"get":{"summary":"Kernel Truth Log","description":"Recent truth kernel decisions. mismatch_only=1 returns only mismatches.","operationId":"kernel_truth_log_api_kernel_truth_log_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"mismatch_only","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Mismatch Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/kernel/payment-cleanup":{"post":{"summary":"Kernel Payment Cleanup","description":"Trigger payment session lifecycle cleanup via kernel.","operationId":"kernel_payment_cleanup_api_kernel_payment_cleanup_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/cabinet/create":{"post":{"summary":"Cabinet Create","description":"Create a new cabinet.\nOptional body: { \"provider_id\": \"PRV-001\" }\nReturns: { cabinet_id, access_key }","operationId":"cabinet_create_api_cabinet_create_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/cabinet":{"get":{"summary":"Cabinet Get","description":"Unified cabinet — both customer and provider perspectives.\nAuth: X-Cabinet-Key header or ?access_key= query param.\n\nResponse shape:\n  cabinet_id, as_customer, as_provider, offers, payments, history,\n  next_action, value_summary","operationId":"cabinet_get_api_cabinet_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/cabinet/link":{"post":{"summary":"Cabinet Link","description":"Link a task_id to a cabinet.\nBody: { \"access_key\": \"ak_...\", \"task_id\": \"123\" }","operationId":"cabinet_link_api_cabinet_link_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/l28/fraud/score":{"get":{"summary":"L28 Fraud Score","description":"Return fraud/risk score for a cabinet (by X-Cabinet-Key header).","operationId":"l28_fraud_score_api_l28_fraud_score_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/l28/escrow/{escrow_id}/complete":{"post":{"summary":"L28 Escrow Complete","description":"Provider signals work is done — held → release_pending.","operationId":"l28_escrow_complete_api_l28_escrow__escrow_id__complete_post","parameters":[{"name":"escrow_id","in":"path","required":true,"schema":{"type":"string","title":"Escrow Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/l28/escrow/{escrow_id}/confirm":{"post":{"summary":"L28 Escrow Confirm","description":"Customer confirms completion — release_pending → released.","operationId":"l28_escrow_confirm_api_l28_escrow__escrow_id__confirm_post","parameters":[{"name":"escrow_id","in":"path","required":true,"schema":{"type":"string","title":"Escrow Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/l28/escrow/{escrow_id}/timeout-check":{"post":{"summary":"L28 Escrow Timeout","description":"Process auto-release if 72h window has passed.","operationId":"l28_escrow_timeout_api_l28_escrow__escrow_id__timeout_check_post","parameters":[{"name":"escrow_id","in":"path","required":true,"schema":{"type":"string","title":"Escrow Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/l28/dispute":{"post":{"summary":"L28 Dispute Open","description":"Open a dispute on an escrow.","operationId":"l28_dispute_open_api_l28_dispute_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/l28/dispute/{dispute_id}/evidence":{"post":{"summary":"L28 Dispute Evidence","description":"Add evidence to an open dispute.","operationId":"l28_dispute_evidence_api_l28_dispute__dispute_id__evidence_post","parameters":[{"name":"dispute_id","in":"path","required":true,"schema":{"type":"string","title":"Dispute Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/l28/dispute/{dispute_id}/review":{"post":{"summary":"L28 Dispute Review","description":"Mark dispute as under_review (admin action).","operationId":"l28_dispute_review_api_l28_dispute__dispute_id__review_post","parameters":[{"name":"dispute_id","in":"path","required":true,"schema":{"type":"string","title":"Dispute Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/l28/dispute/{dispute_id}/resolve":{"post":{"summary":"L28 Dispute Resolve","description":"Admin resolves a dispute.","operationId":"l28_dispute_resolve_api_l28_dispute__dispute_id__resolve_post","parameters":[{"name":"dispute_id","in":"path","required":true,"schema":{"type":"string","title":"Dispute Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/l28/money-trace/{task_id}":{"get":{"summary":"L28 Money Trace","description":"Return full immutable money trace for a task.","operationId":"l28_money_trace_api_l28_money_trace__task_id__get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/l28/quality/provider/{provider_id}":{"get":{"summary":"L28 Quality Provider","description":"Provider quality metrics.","operationId":"l28_quality_provider_api_l28_quality_provider__provider_id__get","parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","title":"Provider Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/l28/quality/customer/{cabinet_id}":{"get":{"summary":"L28 Quality Customer","description":"Customer quality metrics.","operationId":"l28_quality_customer_api_l28_quality_customer__cabinet_id__get","parameters":[{"name":"cabinet_id","in":"path","required":true,"schema":{"type":"string","title":"Cabinet Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/l28/launch/check":{"get":{"summary":"L28 Launch Check","description":"Check if a task is within launch guardrails.","operationId":"l28_launch_check_api_l28_launch_check_get","parameters":[{"name":"location","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"budget_cents","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Budget Cents"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/l28/launch/config":{"post":{"summary":"L28 Launch Config","description":"Update launch mode configuration (admin).","operationId":"l28_launch_config_api_l28_launch_config_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/tasks":{"get":{"summary":"List Tasks","operationId":"list_tasks_api_tasks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"L27 Task Create","description":"L27: Cabinet-authenticated task creation.\nAuth: Authorization: Bearer <access_key>\nBody: { title, description, category, price_cents?, location_data?, contact_data?, location?, contact? }\nReturns: { id, task_id, status, cabinet_id }","operationId":"l27_task_create_api_tasks_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/tasks/{task_id}/complete":{"post":{"summary":"L27 Task Complete","description":"L27: Provider marks task as done. Transitions in_progress → completed.","operationId":"l27_task_complete_api_tasks__task_id__complete_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tasks/{task_id}/start":{"post":{"summary":"L27 Task Start","description":"L27: Transition task to in_progress. Provider cabinet.","operationId":"l27_task_start_api_tasks__task_id__start_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tasks/{task_id}/cancel":{"post":{"summary":"L27 Task Cancel","description":"L27: Cancel a task. Creator cabinet only. Valid from open/offered/reserved states.","operationId":"l27_task_cancel_api_tasks__task_id__cancel_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tasks/{task_id}/confirm-payment":{"post":{"summary":"L27 Confirm Payment","description":"L27: Customer confirms external payment (Tikkie/cash/bank transfer).\nCreates transaction record. Platform fee = 1%.\nCreator cabinet only.","operationId":"l27_confirm_payment_api_tasks__task_id__confirm_payment_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tasks/{task_id}/offers":{"get":{"summary":"L27 Task Offers","description":"L27: List offers for a task. Task creator only sees all; others see count only.","operationId":"l27_task_offers_api_tasks__task_id__offers_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"L27 Make Offer","description":"L27: Provider makes an offer. Requires cabinet auth.","operationId":"l27_make_offer_api_tasks__task_id__offers_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tasks/{task_id}/offers/{offer_id}/accept":{"post":{"summary":"L27 Accept Offer","description":"L27: Task creator accepts an offer.","operationId":"l27_accept_offer_api_tasks__task_id__offers__offer_id__accept_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}},{"name":"offer_id","in":"path","required":true,"schema":{"type":"string","title":"Offer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tasks/{task_id}/offers/{offer_id}/reject":{"post":{"summary":"L27 Reject Offer","description":"L27: Task creator rejects an offer.","operationId":"l27_reject_offer_api_tasks__task_id__offers__offer_id__reject_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}},{"name":"offer_id","in":"path","required":true,"schema":{"type":"string","title":"Offer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/truth/integrity":{"get":{"summary":"Xt Integrity","operationId":"xt_integrity_api_truth_integrity_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/truth/log":{"get":{"summary":"Xt Log","operationId":"xt_log_api_truth_log_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/truth/decisions":{"get":{"summary":"Xt Dec","operationId":"xt_dec_api_truth_decisions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/truth/failures":{"get":{"summary":"Xt Fail","operationId":"xt_fail_api_truth_failures_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/truth/task/{task_id}":{"get":{"summary":"Xt Proof","operationId":"xt_proof_api_truth_task__task_id__get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/enforcer/status":{"get":{"summary":"Xe Status","operationId":"xe_status_api_enforcer_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/enforcer/task/{task_id}":{"get":{"summary":"Xe Task","operationId":"xe_task_api_enforcer_task__task_id__get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/financial/state":{"get":{"summary":"Xf State","operationId":"xf_state_api_financial_state_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/financial/strategy":{"get":{"summary":"Xf Strategy","operationId":"xf_strategy_api_financial_strategy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/outreach/gaps":{"get":{"summary":"Xo Gaps","operationId":"xo_gaps_api_outreach_gaps_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/outreach/campaigns":{"get":{"summary":"Xo Campaigns","operationId":"xo_campaigns_api_outreach_campaigns_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/outreach/run":{"post":{"summary":"Xo Run","operationId":"xo_run_api_outreach_run_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/acquisition/pages":{"get":{"summary":"Xa Pages","operationId":"xa_pages_api_acquisition_pages_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/acquisition/generate":{"post":{"summary":"Xa Gen","operationId":"xa_gen_api_acquisition_generate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/acquisition/stats":{"get":{"summary":"Xa Stats","operationId":"xa_stats_api_acquisition_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/system/autonomous-cycle":{"post":{"summary":"Xs Cycle","operationId":"xs_cycle_api_system_autonomous_cycle_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/seo/pages":{"get":{"summary":"Xseo List","operationId":"xseo_list_api_seo_pages_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/seo/page/{slug}":{"get":{"summary":"Xseo Page","operationId":"xseo_page_api_seo_page__slug__get","parameters":[{"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"}}}}}}},"/api/seo/generate":{"post":{"summary":"Xseo Gen","operationId":"xseo_gen_api_seo_generate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/seo/stats":{"get":{"summary":"Xseo Stats","operationId":"xseo_stats_api_seo_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/seo/track":{"post":{"summary":"Xseo Track","operationId":"xseo_track_api_seo_track_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/content/generate":{"post":{"summary":"Xcontent Gen","operationId":"xcontent_gen_api_content_generate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/referral/create":{"post":{"summary":"Xref Create","operationId":"xref_create_api_referral_create_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/referral/use":{"post":{"summary":"Referral Use","operationId":"referral_use_api_referral_use_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/referral/stats":{"get":{"summary":"Xref Stats","operationId":"xref_stats_api_referral_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/demand/stats":{"get":{"summary":"Xdem Stats","operationId":"xdem_stats_api_demand_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/demand/leads":{"get":{"summary":"Xdem Leads","operationId":"xdem_leads_api_demand_leads_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/demand/groups":{"get":{"summary":"Xdem Groups","operationId":"xdem_groups_api_demand_groups_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agents/register":{"post":{"summary":"Xa Register","operationId":"xa_register_api_agents_register_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agents/tasks":{"get":{"summary":"Xa List Tasks","operationId":"xa_list_tasks_api_agents_tasks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Xa Create Task","operationId":"xa_create_task_api_agents_tasks_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agents/tasks/{task_id}":{"get":{"summary":"Xa Get Task","operationId":"xa_get_task_api_agents_tasks__task_id__get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agents/tasks/{task_id}/offers":{"get":{"summary":"Xa Get Offers","operationId":"xa_get_offers_api_agents_tasks__task_id__offers_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agents/tasks/{task_id}/offers/{offer_id}/accept":{"post":{"summary":"Xa Accept","operationId":"xa_accept_api_agents_tasks__task_id__offers__offer_id__accept_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}},{"name":"offer_id","in":"path","required":true,"schema":{"type":"integer","title":"Offer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agents/estimate":{"post":{"summary":"Xa Estimate","operationId":"xa_estimate_api_agents_estimate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agents/robots/search":{"get":{"summary":"Xa Robots","operationId":"xa_robots_api_agents_robots_search_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agents/stats":{"get":{"summary":"Xa Stats","operationId":"xa_stats_api_agents_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agents/list":{"get":{"summary":"Xa List","operationId":"xa_list_api_agents_list_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/do":{"post":{"summary":"Magnet Do","description":"THE MAGNET. Natural language → real task. 3 free, no registration.","operationId":"magnet_do_do_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/do/{task_id}":{"get":{"summary":"Magnet Status","description":"Check task status — no auth needed.","operationId":"magnet_status_do__task_id__get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/do/{task_id}/accept/{offer_id}":{"post":{"summary":"Magnet Accept","description":"Accept an offer via simple endpoint.","operationId":"magnet_accept_do__task_id__accept__offer_id__post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}},{"name":"offer_id","in":"path","required":true,"schema":{"type":"integer","title":"Offer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/llms.txt":{"get":{"summary":"Llms Txt","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue-agent/dashboard":{"get":{"summary":"Xra Dashboard","operationId":"xra_dashboard_api_revenue_agent_dashboard_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue-agent/run":{"post":{"summary":"Xra Run","operationId":"xra_run_api_revenue_agent_run_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue-agent/channels":{"get":{"summary":"Xra Channels","operationId":"xra_channels_api_revenue_agent_channels_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue-agent/predict/{task_id}":{"post":{"summary":"Xra Predict","operationId":"xra_predict_api_revenue_agent_predict__task_id__post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue-agent/attribute-all":{"post":{"summary":"Xra Attribute","operationId":"xra_attribute_api_revenue_agent_attribute_all_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue-agent/strategies":{"get":{"summary":"Xra Strategies","operationId":"xra_strategies_api_revenue_agent_strategies_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/founder/registered":{"get":{"summary":"Xfa Registered","operationId":"xfa_registered_api_founder_registered_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/founder/register/challenge":{"post":{"summary":"Xfa Reg Challenge","operationId":"xfa_reg_challenge_api_founder_register_challenge_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/founder/register":{"post":{"summary":"Xfa Register","operationId":"xfa_register_api_founder_register_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/founder/auth/challenge":{"post":{"summary":"Xfa Auth Challenge","operationId":"xfa_auth_challenge_api_founder_auth_challenge_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/founder/auth":{"post":{"summary":"Xfa Auth","operationId":"xfa_auth_api_founder_auth_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/founder/state":{"get":{"summary":"Xfa State","operationId":"xfa_state_api_founder_state_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/founder/summary":{"get":{"summary":"Xfa Summary","operationId":"xfa_summary_api_founder_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/founder/actions":{"get":{"summary":"Xfa Actions","operationId":"xfa_actions_api_founder_actions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/founder/command":{"post":{"summary":"Xfa Command","operationId":"xfa_command_api_founder_command_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/visibility/stats":{"get":{"summary":"Xvis Stats","description":"Channel attribution stats — which sources bring agents and /do calls.","operationId":"xvis_stats_api_visibility_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/immune/status":{"get":{"summary":"Xim Status","operationId":"xim_status_api_immune_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/immune/health":{"get":{"summary":"Xim Health","operationId":"xim_health_api_immune_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/immune/cycle":{"post":{"summary":"Xim Cycle","operationId":"xim_cycle_api_immune_cycle_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/immune/heal":{"post":{"summary":"Xim Heal","operationId":"xim_heal_api_immune_heal_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/immune/keys":{"get":{"summary":"Xim Keys","operationId":"xim_keys_api_immune_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/immune/snapshot":{"post":{"summary":"Xim Snapshot","operationId":"xim_snapshot_api_immune_snapshot_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/immune/integrity":{"get":{"summary":"Xim Integrity","operationId":"xim_integrity_api_immune_integrity_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/tasks/{task_id}/evidence":{"post":{"summary":"Submit Task Evidence","operationId":"submit_task_evidence_api_tasks__task_id__evidence_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Get Task Evidence","operationId":"get_task_evidence_api_tasks__task_id__evidence_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tasks/{task_id}/dispute":{"post":{"summary":"Raise Task Dispute","operationId":"raise_task_dispute_api_tasks__task_id__dispute_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disputes/{dispute_id}/respond":{"post":{"summary":"Respond Dispute","operationId":"respond_dispute_api_disputes__dispute_id__respond_post","parameters":[{"name":"dispute_id","in":"path","required":true,"schema":{"type":"integer","title":"Dispute Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disputes/open":{"get":{"summary":"List Open Disputes","operationId":"list_open_disputes_api_disputes_open_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/disputes/{dispute_id}":{"get":{"summary":"Get Task Dispute","operationId":"get_task_dispute_api_disputes__dispute_id__get","parameters":[{"name":"dispute_id","in":"path","required":true,"schema":{"type":"integer","title":"Dispute Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/disputes/{dispute_id}/resolve":{"post":{"summary":"Resolve Task Dispute","operationId":"resolve_task_dispute_api_disputes__dispute_id__resolve_post","parameters":[{"name":"dispute_id","in":"path","required":true,"schema":{"type":"integer","title":"Dispute Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ping":{"get":{"summary":"Ping","description":"Lightweight uptime check — use this for UptimeRobot / external monitors.","operationId":"ping_ping_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/ping":{"get":{"summary":"Ping","description":"Lightweight uptime check — use this for UptimeRobot / external monitors.","operationId":"ping_api_ping_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health/brain":{"get":{"summary":"Health Brain","description":"Brain layer health: DAO, events, AI metrics, alerts. Used by observability watchdog.\nAccepts ?hours=N query param to widen window (default 1h).","operationId":"health_brain_health_brain_get","parameters":[{"name":"hours","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Hours"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health/brain/{module_key}":{"get":{"summary":"Health Brain Module","operationId":"health_brain_module_health_brain__module_key__get","parameters":[{"name":"module_key","in":"path","required":true,"schema":{"type":"string","title":"Module Key"}},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","default":24,"title":"Hours"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/identity/register":{"post":{"summary":"Register Identity","description":"Register a unified AstraNL identity","operationId":"register_identity_api_identity_register_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/identity/{identity_id}":{"get":{"summary":"Get Identity","description":"Get full unified identity profile","operationId":"get_identity_api_identity__identity_id__get","parameters":[{"name":"identity_id","in":"path","required":true,"schema":{"type":"string","title":"Identity Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/identity/{identity_id}/history":{"get":{"summary":"Identity History","description":"Full activity history for an identity","operationId":"identity_history_api_identity__identity_id__history_get","parameters":[{"name":"identity_id","in":"path","required":true,"schema":{"type":"string","title":"Identity Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/identities":{"get":{"summary":"List Identities","description":"List identities with trust scores","operationId":"list_identities_api_identities_get","parameters":[{"name":"id_type","in":"query","required":false,"schema":{"type":"string","title":"Id Type"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trust/{identity_id}":{"get":{"summary":"Get Trust","description":"Get trust score with breakdown","operationId":"get_trust_api_trust__identity_id__get","parameters":[{"name":"identity_id","in":"path","required":true,"schema":{"type":"string","title":"Identity Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/trust/{identity_id}/recalculate":{"post":{"summary":"Recalculate Trust","description":"Recalculate trust score from activity data","operationId":"recalculate_trust_api_trust__identity_id__recalculate_post","parameters":[{"name":"identity_id","in":"path","required":true,"schema":{"type":"string","title":"Identity Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/escrow/create":{"post":{"summary":"Create Escrow","description":"Create escrow for a task (payment hold) — requires verified identity + trust check.","operationId":"create_escrow_api_escrow_create_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/escrow/{task_id}":{"get":{"summary":"Get Escrow","description":"Get escrow status for a task","operationId":"get_escrow_api_escrow__task_id__get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/escrow/{escrow_id}/release":{"post":{"summary":"Release Escrow","description":"Release held funds after delivery verification","operationId":"release_escrow_api_escrow__escrow_id__release_post","parameters":[{"name":"escrow_id","in":"path","required":true,"schema":{"type":"string","title":"Escrow Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/escrow/{escrow_id}/dispute":{"post":{"summary":"Dispute Escrow","description":"Raise a dispute on an escrow","operationId":"dispute_escrow_api_escrow__escrow_id__dispute_post","parameters":[{"name":"escrow_id","in":"path","required":true,"schema":{"type":"string","title":"Escrow Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/task/{task_id}/valuate":{"post":{"summary":"Valuate Task","description":"Valuate task as economic asset","operationId":"valuate_task_api_task__task_id__valuate_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/task/{task_id}/asset":{"get":{"summary":"Get Task Asset","operationId":"get_task_asset_api_task__task_id__asset_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/graph/tasks":{"get":{"summary":"Task Graph","description":"Global task graph: nodes + edges","operationId":"task_graph_api_graph_tasks_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/graph/edge":{"post":{"summary":"Add Graph Edge","description":"Add a relationship edge between tasks","operationId":"add_graph_edge_api_graph_edge_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/graph/task/{task_id}":{"get":{"summary":"Task Neighbors","description":"Get neighboring tasks in the graph","operationId":"task_neighbors_api_graph_task__task_id__get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/memory/{identity_id}":{"post":{"summary":"Store Memory","description":"Store a memory for an identity","operationId":"store_memory_api_memory__identity_id__post","parameters":[{"name":"identity_id","in":"path","required":true,"schema":{"type":"string","title":"Identity Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Get Memories","description":"Retrieve memories for an identity","operationId":"get_memories_api_memory__identity_id__get","parameters":[{"name":"identity_id","in":"path","required":true,"schema":{"type":"string","title":"Identity Id"}},{"name":"memory_type","in":"query","required":false,"schema":{"type":"string","title":"Memory Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/memory/{identity_id}/{key}":{"delete":{"summary":"Delete Memory","operationId":"delete_memory_api_memory__identity_id___key__delete","parameters":[{"name":"identity_id","in":"path","required":true,"schema":{"type":"string","title":"Identity Id"}},{"name":"key","in":"path","required":true,"schema":{"type":"string","title":"Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/permissions/{agent_id}":{"get":{"summary":"Get Agent Permissions","description":"Get all permissions for an agent","operationId":"get_agent_permissions_api_agent_permissions__agent_id__get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/permissions/{agent_id}/grant":{"post":{"summary":"Grant Permission","description":"Grant a permission to an agent","operationId":"grant_permission_api_agent_permissions__agent_id__grant_post","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/coordinate":{"post":{"summary":"Coordinate Agents","description":"Assign agents to roles for a task","operationId":"coordinate_agents_api_agent_coordinate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agent/os/status":{"get":{"summary":"Agent Os Status","description":"Agent OS overview: all agents, roles, permissions","operationId":"agent_os_status_api_agent_os_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/suggestions/{identity_id}":{"get":{"summary":"Get Suggestions","description":"Get follow-up task suggestions for an identity","operationId":"get_suggestions_api_suggestions__identity_id__get","parameters":[{"name":"identity_id","in":"path","required":true,"schema":{"type":"string","title":"Identity Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/suggestions/{suggestion_id}/action":{"post":{"summary":"Suggestion Action","operationId":"suggestion_action_api_suggestions__suggestion_id__action_post","parameters":[{"name":"suggestion_id","in":"path","required":true,"schema":{"type":"integer","title":"Suggestion Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/metrics/speed":{"get":{"summary":"Speed Metrics","description":"Track and return task coordination speed metrics","operationId":"speed_metrics_api_metrics_speed_get","parameters":[{"name":"category","in":"query","required":false,"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"}}}}}}},"/api/metrics/speed/{task_id}/record_offer":{"post":{"summary":"Record First Offer","description":"Record when first offer was received for speed tracking","operationId":"record_first_offer_api_metrics_speed__task_id__record_offer_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/protocol/status":{"get":{"summary":"Protocol Status","description":"Full protocol layer health and statistics","operationId":"protocol_status_api_protocol_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/protocol/events":{"get":{"summary":"Protocol Events","description":"Stream of protocol events","operationId":"protocol_events_api_protocol_events_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"event_type","in":"query","required":false,"schema":{"type":"string","title":"Event Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/provider/register":{"post":{"summary":"Register Provider","operationId":"register_provider_api_provider_register_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/providers":{"get":{"summary":"List Providers","operationId":"list_providers_api_providers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/task":{"post":{"summary":"Create Task","operationId":"create_task_task_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/task/create":{"post":{"summary":"Create Task","operationId":"create_task_api_task_create_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/tasks":{"get":{"summary":"List Tasks","operationId":"list_tasks_tasks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Create Task Web","description":"Create task from website. Triggers intake + creates notification + logs event.","operationId":"create_task_web_tasks_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/external/task":{"post":{"summary":"External Task Intake","operationId":"external_task_intake_api_external_task_post","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"type":"string","title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/public/tasks/open":{"get":{"summary":"Public Open Tasks","operationId":"public_open_tasks_api_public_tasks_open_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","title":"Category"}},{"name":"location","in":"query","required":false,"schema":{"type":"string","title":"Location"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/public/task/{task_id}":{"get":{"summary":"Public Get Task","operationId":"public_get_task_api_public_task__task_id__get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/public/offers":{"post":{"summary":"Public Submit Offer","operationId":"public_submit_offer_api_public_offers_post","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"type":"string","title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/offers":{"post":{"summary":"Api Offers Alias","description":"Convenience alias for /api/public/offers — same handler.","operationId":"api_offers_alias_api_offers_post","parameters":[{"name":"x-api-key","in":"header","required":false,"schema":{"type":"string","title":"X-Api-Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/public/agent/register":{"post":{"summary":"Public Register Agent","operationId":"public_register_agent_api_public_agent_register_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agents":{"get":{"summary":"List Agents","operationId":"list_agents_api_agents_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agents/leaderboard":{"get":{"summary":"Agent Leaderboard","operationId":"agent_leaderboard_api_agents_leaderboard_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agents/{agent_id}":{"get":{"summary":"Get Agent","operationId":"get_agent_api_agents__agent_id__get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agents/{agent_id}/promote":{"post":{"summary":"Promote Agent","operationId":"promote_agent_api_agents__agent_id__promote_post","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/economy/stats":{"get":{"summary":"Economy Stats","operationId":"economy_stats_api_economy_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/economy/earnings/{agent_id}":{"get":{"summary":"Agent Earnings","operationId":"agent_earnings_api_economy_earnings__agent_id__get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/economy/settle":{"post":{"summary":"Settle Deal","operationId":"settle_deal_api_economy_settle_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/stripe/webhook":{"post":{"summary":"Stripe Webhook","description":"Stripe webhook — requires configured signing secret (stripe_webhook.env).","operationId":"stripe_webhook_api_stripe_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/security/audit":{"get":{"summary":"Get Audit Log","operationId":"get_audit_log_api_security_audit_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Page"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}},{"name":"action","in":"query","required":false,"schema":{"type":"string","default":"","title":"Action"}},{"name":"actor","in":"query","required":false,"schema":{"type":"string","default":"","title":"Actor"}},{"name":"severity","in":"query","required":false,"schema":{"type":"string","default":"","title":"Severity"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/security/audit/verify":{"get":{"summary":"Verify Audit Chain","description":"Verify the audit log hash chain integrity.","operationId":"verify_audit_chain_api_security_audit_verify_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/security/fraud":{"get":{"summary":"Get Fraud Flags","operationId":"get_fraud_flags_api_security_fraud_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","default":"open","title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/security/fraud/{flag_id}/review":{"post":{"summary":"Review Fraud Flag","operationId":"review_fraud_flag_api_security_fraud__flag_id__review_post","parameters":[{"name":"flag_id","in":"path","required":true,"schema":{"type":"integer","title":"Flag Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/security/events":{"get":{"summary":"Get Security Events","operationId":"get_security_events_api_security_events_get","parameters":[{"name":"severity","in":"query","required":false,"schema":{"type":"string","default":"","title":"Severity"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/security/events/{event_id}/resolve":{"post":{"summary":"Resolve Security Event","operationId":"resolve_security_event_api_security_events__event_id__resolve_post","parameters":[{"name":"event_id","in":"path","required":true,"schema":{"type":"string","title":"Event Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/security/failsafe":{"get":{"summary":"Failsafe Status","operationId":"failsafe_status_api_security_failsafe_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/security/failsafe/activate":{"post":{"summary":"Activate Failsafe Ep","operationId":"activate_failsafe_ep_api_security_failsafe_activate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/security/failsafe/deactivate":{"post":{"summary":"Deactivate Failsafe Ep","operationId":"deactivate_failsafe_ep_api_security_failsafe_deactivate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/task/{task_id}/versions":{"get":{"summary":"Get Task Versions","operationId":"get_task_versions_api_task__task_id__versions_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/task/{task_id}/versions/{version_id}":{"get":{"summary":"Get Task Version Detail","operationId":"get_task_version_detail_api_task__task_id__versions__version_id__get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"version_id","in":"path","required":true,"schema":{"type":"integer","title":"Version Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/security/trust-check/{identity_id}":{"get":{"summary":"Trust Check","description":"Return trust-based restrictions for an identity.","operationId":"trust_check_api_security_trust_check__identity_id__get","parameters":[{"name":"identity_id","in":"path","required":true,"schema":{"type":"string","title":"Identity Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/security/summary":{"get":{"summary":"Security Summary","operationId":"security_summary_api_security_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/security/rate-status":{"get":{"summary":"Rate Status","operationId":"rate_status_api_security_rate_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/costs/summary":{"get":{"summary":"Costs Summary","operationId":"costs_summary_api_costs_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/costs/tasks":{"get":{"summary":"Costs Per Task","operationId":"costs_per_task_api_costs_tasks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/costs/leads":{"get":{"summary":"Costs Per Lead","operationId":"costs_per_lead_api_costs_leads_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/costs/ai-burn":{"get":{"summary":"Ai Burn","operationId":"ai_burn_api_costs_ai_burn_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/costs/record":{"post":{"summary":"Record Cost","operationId":"record_cost_api_costs_record_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue/decisions":{"get":{"summary":"Revenue Decisions","operationId":"revenue_decisions_api_revenue_decisions_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/evaluate/task/{task_id}":{"post":{"summary":"Evaluate Task Revenue","operationId":"evaluate_task_revenue_api_revenue_evaluate_task__task_id__post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/evaluate/agent/{agent_id}":{"post":{"summary":"Evaluate Agent Revenue","operationId":"evaluate_agent_revenue_api_revenue_evaluate_agent__agent_id__post","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/evaluate/campaign":{"post":{"summary":"Evaluate Campaign Revenue","operationId":"evaluate_campaign_revenue_api_revenue_evaluate_campaign_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/qa/create":{"post":{"summary":"Qa Create","operationId":"qa_create_api_qa_create_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/qa/{qa_id}/submit":{"post":{"summary":"Qa Submit","operationId":"qa_submit_api_qa__qa_id__submit_post","parameters":[{"name":"qa_id","in":"path","required":true,"schema":{"type":"string","title":"Qa Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/qa/summary":{"get":{"summary":"Qa Summary","operationId":"qa_summary_api_qa_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/qa/pending":{"get":{"summary":"Qa Pending","operationId":"qa_pending_api_qa_pending_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/qa/task/{task_id}":{"get":{"summary":"Qa By Task","operationId":"qa_by_task_api_qa_task__task_id__get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/qa/escrow/{escrow_id}/can-release":{"get":{"summary":"Qa Can Release","operationId":"qa_can_release_api_qa_escrow__escrow_id__can_release_get","parameters":[{"name":"escrow_id","in":"path","required":true,"schema":{"type":"string","title":"Escrow Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/qa/{qa_id}":{"get":{"summary":"Qa Get","operationId":"qa_get_api_qa__qa_id__get","parameters":[{"name":"qa_id","in":"path","required":true,"schema":{"type":"string","title":"Qa Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/customers/{email}/history":{"get":{"summary":"Customer History","operationId":"customer_history_api_customers__email__history_get","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/customers/{email}/ltv":{"get":{"summary":"Customer Ltv","operationId":"customer_ltv_api_customers__email__ltv_get","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/customers/{email}/suggestions":{"get":{"summary":"Customer Suggestions","operationId":"customer_suggestions_api_customers__email__suggestions_get","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/customers/reengagement/targets":{"get":{"summary":"Reengagement Targets","operationId":"reengagement_targets_api_customers_reengagement_targets_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/customers/event":{"post":{"summary":"Customer Event","operationId":"customer_event_api_customers_event_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/orchestrator/state":{"get":{"summary":"Orchestrator State","operationId":"orchestrator_state_api_orchestrator_state_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/orchestrator/coordinate":{"post":{"summary":"Orchestrator Coordinate","operationId":"orchestrator_coordinate_api_orchestrator_coordinate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/capture/telegram":{"post":{"summary":"Capture Telegram","description":"Telegram webhook endpoint — register with setWebhook.","operationId":"capture_telegram_api_capture_telegram_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/capture/webhook":{"post":{"summary":"Capture Webhook","description":"Generic webhook: {title, description, category, location, budget_cents, email}\nOR {text, email}","operationId":"capture_webhook_api_capture_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/capture/email":{"post":{"summary":"Capture Email","description":"Receive parsed email payload: {subject, body, from_email}","operationId":"capture_email_api_capture_email_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/capture/log":{"get":{"summary":"Capture Log","operationId":"capture_log_api_capture_log_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pricing/estimate":{"get":{"summary":"Pricing Estimate","operationId":"pricing_estimate_api_pricing_estimate_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","default":"General","title":"Category"}},{"name":"location","in":"query","required":false,"schema":{"type":"string","default":"Netherlands","title":"Location"}},{"name":"task_id","in":"query","required":false,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pricing/ab-report":{"get":{"summary":"Pricing Ab Report","operationId":"pricing_ab_report_api_pricing_ab_report_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pricing/mark-converted/{estimate_id}":{"post":{"summary":"Pricing Mark Converted","operationId":"pricing_mark_converted_api_pricing_mark_converted__estimate_id__post","parameters":[{"name":"estimate_id","in":"path","required":true,"schema":{"type":"string","title":"Estimate Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/respond/{task_id}":{"post":{"summary":"Instant Respond","description":"Manually trigger instant response for a task (also sends to Telegram if chat_id given).","operationId":"instant_respond_api_respond__task_id__post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/referral/code/{email}":{"get":{"summary":"Referral Get Code","operationId":"referral_get_code_api_referral_code__email__get","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/referral/balance/{email}":{"get":{"summary":"Referral Balance","operationId":"referral_balance_api_referral_balance__email__get","parameters":[{"name":"email","in":"path","required":true,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/referral/leaderboard":{"get":{"summary":"Referral Leaderboard","operationId":"referral_leaderboard_api_referral_leaderboard_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/liquidity/run":{"post":{"summary":"Liquidity Run","operationId":"liquidity_run_api_liquidity_run_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/liquidity/status":{"get":{"summary":"Liquidity Status","operationId":"liquidity_status_api_liquidity_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue/impact":{"get":{"summary":"Revenue Impact Score","operationId":"revenue_impact_score_api_revenue_impact_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue/impact/daily":{"get":{"summary":"Revenue Impact Daily","operationId":"revenue_impact_daily_api_revenue_impact_daily_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue/roi/{entity_type}/{entity_id}":{"get":{"summary":"Revenue Roi Entity","operationId":"revenue_roi_entity_api_revenue_roi__entity_type___entity_id__get","parameters":[{"name":"entity_type","in":"path","required":true,"schema":{"type":"string","title":"Entity Type"}},{"name":"entity_id","in":"path","required":true,"schema":{"type":"string","title":"Entity Id"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/roi/channel":{"get":{"summary":"Revenue Roi Channels","operationId":"revenue_roi_channels_api_revenue_roi_channel_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/roi/category":{"get":{"summary":"Revenue Roi Categories","operationId":"revenue_roi_categories_api_revenue_roi_category_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/roi/location":{"get":{"summary":"Revenue Roi Locations","operationId":"revenue_roi_locations_api_revenue_roi_location_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/roi/agent":{"get":{"summary":"Revenue Roi Agents","operationId":"revenue_roi_agents_api_revenue_roi_agent_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/roi/hour":{"get":{"summary":"Revenue Roi By Hour","operationId":"revenue_roi_by_hour_api_revenue_roi_hour_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue/impact/event":{"post":{"summary":"Revenue Record Event","description":"Manually record a revenue event.","operationId":"revenue_record_event_api_revenue_impact_event_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue/impact/backfill":{"post":{"summary":"Revenue Backfill","description":"Sync revenue_events from existing tasks/offers/escrow records.","operationId":"revenue_backfill_api_revenue_impact_backfill_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue/impact/history":{"get":{"summary":"Revenue Impact History","operationId":"revenue_impact_history_api_revenue_impact_history_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/market/feed":{"get":{"summary":"Market Feed","description":"Real market feed: validated + AI-priced tasks sorted by value_score DESC.\nFalls back to unvalidated tasks if no priced tasks available.","operationId":"market_feed_market_feed_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","title":"Category"}},{"name":"location","in":"query","required":false,"schema":{"type":"string","title":"Location"}},{"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"}}}}}}},"/market/tasks":{"post":{"summary":"Create Market Task V2","description":"Create marketplace task in economy.db and trigger AI intake pipeline.","operationId":"create_market_task_v2_market_tasks_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/market/tasks/{task_id}/reserve":{"post":{"summary":"Reserve Market Task","description":"Reserve a validated task and get Stripe payment link.","operationId":"reserve_market_task_market_tasks__task_id__reserve_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/market/tasks/{task_id}/intake":{"post":{"summary":"Trigger Intake Pipeline","description":"Re-run AI intake pipeline for an existing task.","operationId":"trigger_intake_pipeline_market_tasks__task_id__intake_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/market/tasks/{task_id}/dispatch":{"post":{"summary":"Dispatch Task Endpoint","description":"Manually dispatch task to matched providers.","operationId":"dispatch_task_endpoint_market_tasks__task_id__dispatch_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Get Dispatch Status Endpoint","description":"Get dispatch history for a task.","operationId":"get_dispatch_status_endpoint_market_tasks__task_id__dispatch_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/chat/v2":{"post":{"summary":"Coordinator Chat V2","description":"Brain-routed chat. Replaces /chat once ASTRANL_CHAT_V2=1.","operationId":"coordinator_chat_v2_chat_v2_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/chat":{"post":{"summary":"Coordinator Chat","description":"Multi-step AI coordinator chat with session state.","operationId":"coordinator_chat_chat_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/tasks/feed":{"get":{"summary":"Tasks Feed","description":"Website task feed with urgency + match_probability heuristics.","operationId":"tasks_feed_tasks_feed_get","parameters":[{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"new","title":"Sort"}},{"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"}},{"name":"category","in":"query","required":false,"schema":{"type":"string","title":"Category"}},{"name":"location","in":"query","required":false,"schema":{"type":"string","title":"Location"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/search/tasks":{"get":{"summary":"Search Tasks","description":"Ranked task search: score = value_score*0.5 + recency*0.3 + relevance*0.2","operationId":"search_tasks_search_tasks_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"new","title":"Sort"}},{"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"}},{"name":"category","in":"query","required":false,"schema":{"type":"string","title":"Category"}},{"name":"location","in":"query","required":false,"schema":{"type":"string","title":"Location"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/notifications":{"get":{"summary":"Get Notifications","description":"Real notifications from DB, last 50 DESC.","operationId":"get_notifications_notifications_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/notifications/{nid}/read":{"post":{"summary":"Mark Notification Read","operationId":"mark_notification_read_notifications__nid__read_post","parameters":[{"name":"nid","in":"path","required":true,"schema":{"type":"integer","title":"Nid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/notifications/read":{"post":{"summary":"Mark All Notifications Read","operationId":"mark_all_notifications_read_notifications_read_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/tasks/{task_id}/complete":{"post":{"summary":"Complete Task","description":"Mark task completed. Creates notification + event log entry.","operationId":"complete_task_tasks__task_id__complete_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tasks/{task_id}/quick-pay":{"post":{"summary":"Quick Pay","description":"Auto-accept best pending offer and return Stripe checkout URL.\nIf an accepted offer + payment link already exists, returns it directly.\nThis closes the money loop for synthetic/auto-generated offers.","operationId":"quick_pay_tasks__task_id__quick_pay_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tasks/{task_id}":{"get":{"summary":"Get Task Detail","description":"Full task detail for task.html frontend.","operationId":"get_task_detail_tasks__task_id__get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"summary":"Delete Task","operationId":"delete_task_tasks__task_id__delete","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tasks/{task_id}/lifecycle":{"get":{"summary":"Get Task Lifecycle","description":"Task lifecycle timeline built from real DB signals.","operationId":"get_task_lifecycle_api_tasks__task_id__lifecycle_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tasks/{task_id}/offers":{"get":{"summary":"Get Task Offers","operationId":"get_task_offers_tasks__task_id__offers_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Submit Offer","operationId":"submit_offer_tasks__task_id__offers_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tasks/{task_id}/offers/{offer_id}/accept":{"post":{"summary":"Accept Offer","operationId":"accept_offer_tasks__task_id__offers__offer_id__accept_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}},{"name":"offer_id","in":"path","required":true,"schema":{"type":"string","title":"Offer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tasks/{task_id}/offers/{offer_id}/reject":{"post":{"summary":"Reject Offer","operationId":"reject_offer_tasks__task_id__offers__offer_id__reject_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}},{"name":"offer_id","in":"path","required":true,"schema":{"type":"string","title":"Offer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tasks/{task_id}/payment/test":{"post":{"summary":"Simulate Payment","description":"Test-mode payment simulation. Advances task to in_progress without real Stripe.","operationId":"simulate_payment_tasks__task_id__payment_test_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tasks/{task_id}/discussion":{"get":{"summary":"Get Discussion","operationId":"get_discussion_tasks__task_id__discussion_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Post Discussion","operationId":"post_discussion_tasks__task_id__discussion_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tasks/{task_id}/publish":{"post":{"summary":"Publish Task","operationId":"publish_task_tasks__task_id__publish_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tasks/{task_id}/agent-log":{"get":{"summary":"Get Agent Log","operationId":"get_agent_log_tasks__task_id__agent_log_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tasks/{task_id}/agents/suggest-offer":{"post":{"summary":"Suggest Offer","operationId":"suggest_offer_tasks__task_id__agents_suggest_offer_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tasks/{task_id}/agents/analyze":{"post":{"summary":"Analyze Task","operationId":"analyze_task_tasks__task_id__agents_analyze_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tasks/{task_id}/agents/{agent_type}":{"post":{"summary":"Run Agent Type","operationId":"run_agent_type_tasks__task_id__agents__agent_type__post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}},{"name":"agent_type","in":"path","required":true,"schema":{"type":"string","title":"Agent Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tasks/{task_id}/agent-log/{action_id}/approve":{"post":{"summary":"Approve Agent Action","operationId":"approve_agent_action_tasks__task_id__agent_log__action_id__approve_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}},{"name":"action_id","in":"path","required":true,"schema":{"type":"integer","title":"Action Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tasks/{task_id}/agent-log/{action_id}/reject":{"post":{"summary":"Reject Agent Action","operationId":"reject_agent_action_tasks__task_id__agent_log__action_id__reject_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}},{"name":"action_id","in":"path","required":true,"schema":{"type":"integer","title":"Action Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tasks/{task_id}/rate":{"post":{"summary":"Rate Task","description":"Real rating: stored in task_ratings + updates provider average.","operationId":"rate_task_tasks__task_id__rate_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tasks/{task_id}/execution":{"get":{"summary":"Get Execution Status","description":"Return current execution state + full event timeline.","operationId":"get_execution_status_tasks__task_id__execution_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tasks/{task_id}/execution/update":{"post":{"summary":"Update Execution","description":"Provider posts a progress update on the task.","operationId":"update_execution_tasks__task_id__execution_update_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tasks/{task_id}/complete-request":{"post":{"summary":"Complete Request","description":"Provider signals work is done. Notifies client to confirm.","operationId":"complete_request_tasks__task_id__complete_request_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tasks/{task_id}/complete-confirm":{"post":{"summary":"Complete Confirm","description":"Client confirms completion → task completed + escrow released.","operationId":"complete_confirm_tasks__task_id__complete_confirm_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/tasks/{task_id}/dispute":{"post":{"summary":"Dispute Task","description":"Client opens a dispute → task→disputed, escrow frozen, notifications sent.","operationId":"dispute_task_tasks__task_id__dispute_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/provider/verify":{"post":{"summary":"Provider Verify","description":"Mark a provider as KvK-verified. Input: provider_id, kvk_number, company_name.","operationId":"provider_verify_provider_verify_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/market/posts":{"get":{"summary":"Market Posts Feed","description":"Open market feed — latest posts sorted newest first.","operationId":"market_posts_feed_market_posts_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","title":"Category"}},{"name":"location","in":"query","required":false,"schema":{"type":"string","title":"Location"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","title":"Q"}},{"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":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/market/post":{"post":{"summary":"Create Market Post","description":"Create a new open market post. Requires X-User-Id header.","operationId":"create_market_post_market_post_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/market/post/{post_id}":{"get":{"summary":"Get Market Post","description":"Full post + replies. Verified provider replies appear first.","operationId":"get_market_post_market_post__post_id__get","parameters":[{"name":"post_id","in":"path","required":true,"schema":{"type":"integer","title":"Post Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/market/post/{post_id}/reply":{"post":{"summary":"Reply To Market Post","description":"Add a reply to a market post. Requires X-User-Id header.\nOptional: provider_id — if set and provider is verified, badge is shown.","operationId":"reply_to_market_post_market_post__post_id__reply_post","parameters":[{"name":"post_id","in":"path","required":true,"schema":{"type":"integer","title":"Post Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/chat":{"post":{"summary":"Chat To Task","description":"Multi-step task intake via task_orchestrator.\n- Incomplete input  → returns clarifying question (no task created)\n- Sufficient input  → creates task in DB, returns result + price range\nSession state is preserved across turns via session_id.","operationId":"chat_to_task_api_chat_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/task-create":{"post":{"summary":"Chat To Task","description":"Multi-step task intake via task_orchestrator.\n- Incomplete input  → returns clarifying question (no task created)\n- Sufficient input  → creates task in DB, returns result + price range\nSession state is preserved across turns via session_id.","operationId":"chat_to_task_task_create_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/public/stats":{"get":{"summary":"Api Public Stats","description":"Aggregated public stats for homepage stats bar.","operationId":"api_public_stats_api_public_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/providers/register":{"post":{"summary":"Api Providers Register","description":"Register a new provider into the coordination network.","operationId":"api_providers_register_api_providers_register_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/providers/tasks":{"get":{"summary":"Api Providers Tasks","description":"Return open tasks relevant for providers, filtered by category/location.","operationId":"api_providers_tasks_api_providers_tasks_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","default":"","title":"Category"}},{"name":"location","in":"query","required":false,"schema":{"type":"string","default":"","title":"Location"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system/status":{"get":{"summary":"System Status","description":"Module availability status.","operationId":"system_status_system_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/system/dashboard":{"get":{"summary":"System Dashboard","description":"Revenue summary + memory insights.","operationId":"system_dashboard_system_dashboard_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/system/pipeline":{"get":{"summary":"System Pipeline","description":"Task pipeline stats from economy.db.","operationId":"system_pipeline_system_pipeline_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/system/actions":{"get":{"summary":"System Actions","description":"Available capabilities from capability_registry.","operationId":"system_actions_system_actions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/system/think":{"get":{"summary":"System Think","description":"Cognitive judgment endpoint.\nReads the world, evaluates all possible actions, returns the single best decision.\nPure observation — does NOT execute anything.","operationId":"system_think_system_think_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/system/think/history":{"get":{"summary":"System Think History","description":"Return the last N decisions from decision_core.db (default 20).","operationId":"system_think_history_system_think_history_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system/think/execute":{"post":{"summary":"System Think Execute","description":"THINK → EXECUTE → VERIFY → LEARN in one call.\n\n1. Calls think() to select the best action.\n2. Calls execute_decision() — safe, bounded, local actions only.\n   Revenue/communication/money actions return requires_human.\n3. Calls verify_execution() to confirm outcome.\n4. Calls learn_from_execution() to update action_stats counters.\n\nReturns the full cycle result: decision + execution + verification + learning.\nNever executes more than one action per call.","operationId":"system_think_execute_system_think_execute_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/system/strategy":{"get":{"summary":"System Strategy","description":"Current strategic focus derived from live pipeline + revenue state.","operationId":"system_strategy_system_strategy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/system/strategy/history":{"get":{"summary":"System Strategy History","description":"Last N strategic focus decisions from strategy_log.","operationId":"system_strategy_history_system_strategy_history_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system/intent":{"get":{"summary":"System Intent","description":"Active system intent: primary objective, secondary objective, constraints.","operationId":"system_intent_system_intent_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/system/intent/history":{"get":{"summary":"System Intent History","description":"Last N intent evaluations from intent_log.","operationId":"system_intent_history_system_intent_history_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system/think/last":{"get":{"summary":"System Think Last","description":"Return the most recent decision from decision_core.db with full execution state.","operationId":"system_think_last_system_think_last_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/system/opportunities":{"get":{"summary":"System Opportunities","description":"Raw opportunity list from live pipeline scan. Never fabricates data.","operationId":"system_opportunities_system_opportunities_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/system/opportunities/summary":{"get":{"summary":"System Opportunities Summary","description":"Human-readable opportunity summary with potential value and top-3.","operationId":"system_opportunities_summary_system_opportunities_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/system/send-action":{"post":{"summary":"System Send Action","description":"Deliver a prepared human_action package to the real channel.\n\nBody (JSON):\n    task_id:   str   — required, must link to a real task\n    action:    str   — decision action label (e.g. \"escalate_payment\")\n    channel:   str   — \"telegram\" | \"email\"\n    message:   str   — message body to send\n    chat_id:   str   — (optional) Telegram chat_id override\n    recipient: str   — (optional) email address override\n\nReturns:\n    { status: \"sent\"|\"failed\"|\"channel_unavailable\"|\"blocked_duplicate\"|\"load_high\", ... }","operationId":"system_send_action_system_send_action_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/system/inbound":{"post":{"summary":"System Inbound","description":"Receive an inbound reply (webhook or manual entry).\n\nBody (JSON):\n    task_id:      str  — related task (optional but recommended)\n    channel:      str  — \"telegram\" | \"email\" | \"manual\"\n    sender:       str  — who sent it (chat_id, email address, etc.)\n    message_text: str  — the actual message content\n\nReturns:\n    { task_id, classification, next_action, logged }","operationId":"system_inbound_system_inbound_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/system/conversation/{task_id}":{"get":{"summary":"System Conversation","description":"Full outbound + inbound message history for a task.","operationId":"system_conversation_system_conversation__task_id__get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system/contact/{task_id}":{"get":{"summary":"System Contact","description":"Resolve best contact channel for a task from real DB data.","operationId":"system_contact_system_contact__task_id__get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/kvk/{kvk_number}":{"get":{"summary":"Api Verify Kvk","description":"Verify a Dutch KVK (Kamer van Koophandel) number via the official KVK API.\nReturns company name, active status, address, SBI activity and registration date.\nResults are cached for 24 h to minimise API usage and cost.\nSet KVK_API_KEY in environment to use the production API;\nomitting it falls back to the KVK test sandbox (no cost, limited data).","operationId":"api_verify_kvk_api_kvk__kvk_number__get","parameters":[{"name":"kvk_number","in":"path","required":true,"schema":{"type":"string","title":"Kvk Number"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/system/coordination":{"get":{"summary":"Coordination State","description":"Full coordination state — both brains.","operationId":"coordination_state_system_coordination_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/system/coordination/events":{"get":{"summary":"Coordination Events","description":"Recent events from both brains.","operationId":"coordination_events_system_coordination_events_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"}}}}}}},"/system/coordination/locks":{"get":{"summary":"Coordination Locks","description":"All active file locks.","operationId":"coordination_locks_system_coordination_locks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/remote/exec":{"post":{"summary":"Remote Exec","description":"Secure remote command execution for Claude.","operationId":"remote_exec_api_remote_exec_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/remote/write":{"post":{"summary":"Remote Write","description":"Secure remote file write for Claude.","operationId":"remote_write_api_remote_write_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/remote/read":{"post":{"summary":"Remote Read","description":"Secure remote file read for Claude.","operationId":"remote_read_api_remote_read_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"summary":"Home","operationId":"home__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue/auto-offer/check/{task_id}":{"post":{"summary":"Api Auto Offer Check","description":"Manually trigger auto-offer check for a task (also called by scheduler).","operationId":"api_auto_offer_check_api_revenue_auto_offer_check__task_id__post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tasks/{task_id}/pricing-suggestion":{"get":{"summary":"Api Pricing Suggestion","description":"Return price suggestion for a task. Uses cached or computes fresh.","operationId":"api_pricing_suggestion_api_tasks__task_id__pricing_suggestion_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/reengage/{task_id}":{"post":{"summary":"Api Reengage Task","description":"Log and trigger re-engagement action for an abandoned task.","operationId":"api_reengage_task_api_revenue_reengage__task_id__post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}},{"name":"stage","in":"query","required":false,"schema":{"type":"string","default":"5m","title":"Stage"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/route-task/{task_id}":{"post":{"summary":"Api Route Task","description":"Score and route task to matching providers. Log routing decisions.","operationId":"api_route_task_api_revenue_route_task__task_id__post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/providers/{provider_id}/notifications":{"get":{"summary":"Api Provider Notifications","description":"Return internal notifications for a provider.","operationId":"api_provider_notifications_api_providers__provider_id__notifications_get","parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","title":"Provider Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/providers/feed":{"get":{"summary":"Api Provider Warm Feed","description":"Warm-start provider task feed. Always returns relevant tasks with context.\nPrioritises: category match → location → newest → highest budget.","operationId":"api_provider_warm_feed_api_providers_feed_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","default":"","title":"Category"}},{"name":"location","in":"query","required":false,"schema":{"type":"string","default":"","title":"Location"}},{"name":"provider_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Provider Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/invoices/from-offer/{offer_id}":{"post":{"summary":"Api Invoice From Offer","description":"Create invoice from accepted offer. Idempotent.","operationId":"api_invoice_from_offer_api_invoices_from_offer__offer_id__post","parameters":[{"name":"offer_id","in":"path","required":true,"schema":{"type":"string","title":"Offer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/invoices/{invoice_id}":{"get":{"summary":"Api Get Invoice","operationId":"api_get_invoice_api_invoices__invoice_id__get","parameters":[{"name":"invoice_id","in":"path","required":true,"schema":{"type":"string","title":"Invoice Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tasks/{task_id}/offers-enhanced":{"get":{"summary":"Api Offers Enhanced","description":"Offers with cheapest/fastest/safest labels + ready_to_pay CTA state.","operationId":"api_offers_enhanced_api_tasks__task_id__offers_enhanced_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tasks/{task_id}/status":{"get":{"summary":"Api Task Status","description":"Light task status with ready_to_pay CTA and next_action.","operationId":"api_task_status_api_tasks__task_id__status_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/patch-status":{"get":{"summary":"Api Revenue Patch Status","description":"Returns live status of all revenue patch levels.","operationId":"api_revenue_patch_status_api_revenue_patch_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/tasks/{task_id}/addons":{"get":{"summary":"Get Task Addons","description":"Return suggested and selected add-ons for a task.","operationId":"get_task_addons_api_tasks__task_id__addons_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tasks/{task_id}/addons/select":{"post":{"summary":"Select Task Addons","description":"Select/deselect add-ons for a task.\n\nBody: { \"addon_types\": [\"materials_delivery\", \"inspection\", ...] }\nPass an empty list to deselect all.","operationId":"select_task_addons_api_tasks__task_id__addons_select_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddonSelectRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tasks/{task_id}/repeat":{"post":{"summary":"Create Repeat Task","description":"Schedule a task to repeat at a given frequency with a discount.","operationId":"create_repeat_task_api_tasks__task_id__repeat_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Get Task Repeat","description":"Return repeat schedule for a task.","operationId":"get_task_repeat_api_tasks__task_id__repeat_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tasks/{task_id}/upsells":{"get":{"summary":"Get Task Upsells","description":"Suggest related services based on task category.","operationId":"get_task_upsells_api_tasks__task_id__upsells_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tasks/{task_id}/fee":{"get":{"summary":"Get Task Fee","description":"Return dynamic platform fee for a task.","operationId":"get_task_fee_api_tasks__task_id__fee_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/providers/{provider_id}/boost":{"post":{"summary":"Boost Provider","description":"Purchase a provider visibility boost.","operationId":"boost_provider_api_providers__provider_id__boost_post","parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","title":"Provider Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Get Provider Boost","description":"Return active boost for a provider.","operationId":"get_provider_boost_api_providers__provider_id__boost_get","parameters":[{"name":"provider_id","in":"path","required":true,"schema":{"type":"string","title":"Provider Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tasks/{task_id}/offers-ranked":{"get":{"summary":"Get Offers Ranked","description":"Return offers sorted by smart ranking score.","operationId":"get_offers_ranked_api_tasks__task_id__offers_ranked_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/metrics":{"get":{"summary":"Get Revenue Metrics","description":"Return key revenue KPIs.","operationId":"get_revenue_metrics_api_revenue_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue/l10-16/status":{"get":{"summary":"Api L10 16 Status","description":"Returns live status of L10-16 revenue patch.","operationId":"api_l10_16_status_api_revenue_l10_16_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/system/tasks/generate":{"post":{"summary":"Api Generate Tasks","description":"Trigger demand analysis and generate system starter tasks.","operationId":"api_generate_tasks_api_system_tasks_generate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/system/tasks/generated":{"get":{"summary":"Api Get Generated Tasks","description":"Return list of system-generated tasks with metadata.","operationId":"api_get_generated_tasks_api_system_tasks_generated_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/system/demand-signals":{"get":{"summary":"Api Demand Signals","description":"Return recent demand signals.","operationId":"api_demand_signals_api_system_demand_signals_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":100,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/gaps":{"get":{"summary":"Api Get Gaps","description":"Return detected market gaps.","operationId":"api_get_gaps_api_revenue_gaps_get","parameters":[{"name":"resolved","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Resolved"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/gaps/refresh":{"post":{"summary":"Api Refresh Gaps","description":"Re-run gap detection and return new gaps.","operationId":"api_refresh_gaps_api_revenue_gaps_refresh_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue/supply/activate":{"post":{"summary":"Api Activate Supply","description":"Trigger supply acquisition for open gaps.","operationId":"api_activate_supply_api_revenue_supply_activate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue/supply/status":{"get":{"summary":"Api Supply Status","description":"Return recent supply acquisition events.","operationId":"api_supply_status_api_revenue_supply_status_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/pricing/insights":{"get":{"summary":"Api Pricing Insights","description":"Return pricing insights from evolution engine.","operationId":"api_pricing_insights_api_revenue_pricing_insights_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string","default":"","title":"Category"}},{"name":"location","in":"query","required":false,"schema":{"type":"string","default":"","title":"Location"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/pricing/recompute":{"post":{"summary":"Api Recompute Pricing","description":"Run price evolution engine and return updated insights.","operationId":"api_recompute_pricing_api_revenue_pricing_recompute_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue/pricing/learn":{"post":{"summary":"Api Record Price Learning","description":"Record a price outcome for machine learning.","operationId":"api_record_price_learning_api_revenue_pricing_learn_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/autonomy/status":{"get":{"summary":"Api Autonomy Status","description":"Returns live status of L17-20 autonomy patch.","operationId":"api_autonomy_status_api_autonomy_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/system/tasks/clone/{task_id}":{"post":{"summary":"Clone Task Endpoint","description":"Manually trigger cloning for a specific task.","operationId":"clone_task_endpoint_api_system_tasks_clone__task_id__post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/system/tasks/clones":{"get":{"summary":"List Clones","description":"List recently cloned tasks.","operationId":"list_clones_api_system_tasks_clones_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/system/tasks/templates":{"get":{"summary":"List Templates","description":"List task templates derived from successful tasks.","operationId":"list_templates_api_system_tasks_templates_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tasks/{task_id}/bundles":{"get":{"summary":"Get Task Bundles","description":"Get bundle recommendations for a task.","operationId":"get_task_bundles_api_tasks__task_id__bundles_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tasks/{task_id}/bundles/select":{"post":{"summary":"Select Bundle Items","description":"Update bundle item selection, returns updated pricing.","operationId":"select_bundle_items_api_tasks__task_id__bundles_select_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/system/bundles/generate":{"post":{"summary":"Generate Bundles Batch","description":"Run auto-bundling batch for open tasks.","operationId":"generate_bundles_batch_api_system_bundles_generate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/tasks/{task_id}/next-best-actions":{"get":{"summary":"Get Next Best Actions","description":"Return intent predictions (next best actions) for a task.","operationId":"get_next_best_actions_api_tasks__task_id__next_best_actions_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/system/intents/recompute":{"post":{"summary":"Recompute Intents","description":"Run intent prediction batch across eligible tasks.","operationId":"recompute_intents_api_system_intents_recompute_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/scale/status":{"get":{"summary":"Scale Status","description":"Health check for Scale Patch L21-23.","operationId":"scale_status_api_scale_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/tasks/{task_id}/negotiation":{"get":{"summary":"Get Negotiation","description":"Return a safe price suggestion for a task.\nNever auto-accepts or modifies prices — suggestion only.","operationId":"get_negotiation_api_tasks__task_id__negotiation_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tasks/{task_id}/negotiation/event":{"post":{"summary":"Record Negotiation Event","description":"Record a user interaction with a negotiation suggestion.\naction_type: 'viewed' | 'price_applied' | 'offer_accepted' | 'dismissed'","operationId":"record_negotiation_event_api_tasks__task_id__negotiation_event_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/cycles":{"get":{"summary":"Get Economic Cycles","description":"Return tracked economic cycles with aggregate stats.","operationId":"get_economic_cycles_api_revenue_cycles_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"completed_only","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Completed Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/cycles/refresh":{"post":{"summary":"Refresh Economic Cycles","description":"Run economic loop scanner to capture new completed cycles.","operationId":"refresh_economic_cycles_api_revenue_cycles_refresh_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/tasks/{task_id}/close-guidance":{"get":{"summary":"Get Close Guidance","description":"Return safe next-step guidance for closing a task.\nHighlights what action will move the deal forward.\nNever auto-acts.","operationId":"get_close_guidance_api_tasks__task_id__close_guidance_get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/close/status":{"get":{"summary":"Close Status","description":"Health check for Close Patch L24-25.","operationId":"close_status_api_close_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/admin/payment-sessions/cleanup":{"post":{"summary":"Cleanup Payment Sessions","description":"Lifecycle maintenance for payment_sessions.\n- orphaned_paid:  task is paid but session still 'pending' → mark 'paid'\n- abandoned:      task unpaid + session >72h → mark 'abandoned'\nSafe to run repeatedly. Called by scheduler or manually.","operationId":"cleanup_payment_sessions_api_admin_payment_sessions_cleanup_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/organism/status":{"get":{"summary":"Organism Status","description":"Canonical organism status. Public endpoint.","operationId":"organism_status_api_organism_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/organism/events":{"get":{"summary":"Organism Events","description":"Recent state transitions (organ went up/down).","operationId":"organism_events_api_organism_events_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/organism/history":{"get":{"summary":"Organism History","description":"Organism snapshots over time.","operationId":"organism_history_api_organism_history_get","parameters":[{"name":"hours","in":"query","required":false,"schema":{"type":"integer","default":24,"title":"Hours"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/public/executor/stripe/start":{"post":{"summary":"Executor Stripe Start","description":"Create Express Connected Account + return Stripe-hosted onboarding URL.\nCalled from /agents/ landing page when provider clicks \"Start earning\".","operationId":"executor_stripe_start_api_public_executor_stripe_start_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/public/executor/stripe/status/{stripe_account_id}":{"get":{"summary":"Executor Stripe Status","description":"Check KYC completion status for a connected account.","operationId":"executor_stripe_status_api_public_executor_stripe_status__stripe_account_id__get","parameters":[{"name":"stripe_account_id","in":"path","required":true,"schema":{"type":"string","title":"Stripe Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/public/executor/stripe/refresh-link":{"post":{"summary":"Executor Stripe Refresh Link","description":"Generate a fresh Stripe onboarding link for an existing account.\n\nCalled by /provider-refresh.html when original AccountLink has expired.\nBody: { stripe_account_id: \"acct_...\" }","operationId":"executor_stripe_refresh_link_api_public_executor_stripe_refresh_link_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/executor/payout/eligibility/{stripe_account_id}":{"get":{"summary":"Executor Payout Eligibility","description":"Return instant payout eligibility + balance for a provider.","operationId":"executor_payout_eligibility_api_executor_payout_eligibility__stripe_account_id__get","parameters":[{"name":"stripe_account_id","in":"path","required":true,"schema":{"type":"string","title":"Stripe Account Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/executor/payout/instant":{"post":{"summary":"Executor Payout Instant","description":"Trigger an instant payout for a connected account.\nBody: { stripe_account_id, amount_cents, charge_fee?: bool }","operationId":"executor_payout_instant_api_executor_payout_instant_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/stripe/connect/webhook":{"post":{"summary":"Stripe Connect Webhook","description":"Dedicated Connect webhook endpoint.\nSigned with STRIPE_CONNECT_WEBHOOK_SECRET (falls back to main secret).","operationId":"stripe_connect_webhook_api_stripe_connect_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/inbound":{"post":{"summary":"Api Inbound","description":"Generic inbound endpoint. Requires founder auth for security.","operationId":"api_inbound_api_inbound_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InboundPayload"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/inbound/unprocessed":{"get":{"summary":"Api Inbound Unprocessed","description":"List unprocessed inbound messages. Founder-only.","operationId":"api_inbound_unprocessed_api_inbound_unprocessed_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/inbound/email/webhook":{"post":{"summary":"Api Inbound Email Webhook","description":"Email ESP webhook endpoint. Supports Brevo Inbound Parse + generic JSON.\n\nAuth: requires INBOUND_WEBHOOK_SECRET env var matched by X-AstraNL-Webhook-Secret\nheader, OR a signature header the ESP provides (Brevo: no signature yet,\nMailgun: X-Mailgun-Signature). For Brevo we fall back to secret header.\n\nAccepts JSON. Canonical fields tried in order:\n  - Brevo: items[0].To, items[0].From, items[0].Subject, items[0].RawHtmlBody / RawTextBody\n  - Generic: from, subject, text / body","operationId":"api_inbound_email_webhook_api_inbound_email_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/{path}":{"get":{"summary":"Static","operationId":"static__path__get","parameters":[{"name":"path","in":"path","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ai/search":{"post":{"summary":"Ai Search Handler","operationId":"ai_search_handler_api_ai_search_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"AddonSelectRequest":{"properties":{"addon_types":{"items":{},"type":"array","title":"Addon Types","default":[]}},"type":"object","title":"AddonSelectRequest"},"ClassifyIn":{"properties":{"intent":{"type":"string","maxLength":10000,"minLength":3,"title":"Intent"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},"type":"object","required":["intent"],"title":"ClassifyIn"},"ExecuteIn":{"properties":{"intent":{"type":"string","maxLength":30000,"minLength":3,"title":"Intent"},"capability_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Capability Id"},"language":{"type":"string","maxLength":5,"title":"Language","default":"en"},"agent_id":{"type":"string","maxLength":100,"title":"Agent Id","default":"anonymous"}},"type":"object","required":["intent"],"title":"ExecuteIn"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InboundPayload":{"properties":{"channel":{"type":"string","title":"Channel"},"from_identifier":{"type":"string","title":"From Identifier"},"body":{"type":"string","title":"Body"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject"},"force":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Force","default":false}},"type":"object","required":["channel","from_identifier","body"],"title":"InboundPayload"},"RouteIn":{"properties":{"intent":{"type":"string","maxLength":10000,"minLength":3,"title":"Intent"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"language":{"type":"string","maxLength":5,"title":"Language","default":"en"}},"type":"object","required":["intent"],"title":"RouteIn"},"RunRequest":{"properties":{"type":{"type":"string","title":"Type","default":"smoke"},"trigger":{"type":"string","title":"Trigger","default":"manual"},"async_run":{"type":"boolean","title":"Async Run","default":true}},"type":"object","title":"RunRequest"},"TopupIn":{"properties":{"amount_cents":{"type":"integer","maximum":50000.0,"minimum":500.0,"title":"Amount Cents"},"success_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Success Url"},"cancel_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancel Url"}},"type":"object","required":["amount_cents"],"title":"TopupIn"},"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"}}}}