{"openapi":"3.1.0","info":{"title":"Aegis Dashboard","description":"Status monitoring for Project Aegis autonomous agent","version":"0.1.0"},"paths":{"/api/content":{"get":{"tags":["Content"],"summary":"List Repurpose History","description":"List recent content repurposing results.\n\nShows processing history with formats and success status.\n\n**Free**: No API costs.","operationId":"list_repurpose_history_api_content_get","security":[{"APIKeyHeader":[]}],"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/content/formats":{"get":{"tags":["Content"],"summary":"List Formats","description":"List available output formats with descriptions.\n\n**No authentication required.**","operationId":"list_formats_api_content_formats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/content/stats":{"get":{"tags":["Content"],"summary":"Get Stats","description":"Get content repurposing statistics.\n\nShows totals, success rates, and format usage.\n\n**Free**: No API costs.","operationId":"get_stats_api_content_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/content/repurpose":{"post":{"tags":["Content"],"summary":"Repurpose Content","description":"Repurpose content for different platforms.\n\nTransforms text or URL content into multiple formats:\n- Social: twitter, twitter_thread, linkedin, instagram, facebook\n- Summaries: summary, key_points, headline, hook, quote\n- Long-form: email_snippet, blog_intro\n- Discovery: hashtags, keywords\n\n**Requires API key.**\n**Credits**: 2 per request + 1 per format generated\n\nExample:\n```json\n{\n    \"content\": \"AI agents are revolutionizing productivity...\",\n    \"formats\": [\"twitter\", \"linkedin\", \"key_points\"],\n    \"tone\": \"professional\"\n}\n```","operationId":"repurpose_content_api_content_repurpose_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepurposeApiRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/content/repurpose/prompt":{"post":{"tags":["Content"],"summary":"Get Repurpose Prompt","description":"Get the LLM prompt for content repurposing without executing.\n\nUseful for:\n- Testing prompts before execution\n- Using with your own LLM\n- Debugging output quality\n\n**Requires API key.**\n**Free**: No credits consumed.","operationId":"get_repurpose_prompt_api_content_repurpose_prompt_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepurposeApiRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/content/parse":{"post":{"tags":["Content"],"summary":"Parse Repurposed Content","description":"Parse LLM response into structured content outputs.\n\nUse this after calling an LLM with the prompt from /repurpose/prompt.\n\n**Requires API key.**\n**Free**: No credits consumed.","operationId":"parse_repurposed_content_api_content_parse_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/content/extract-url":{"post":{"tags":["Content"],"summary":"Extract Url Content","description":"Extract text content from a URL.\n\nFetches the URL and extracts the main text content,\nremoving navigation, scripts, and other non-content elements.\n\n**Requires API key.**\n**Credits**: 1 per extraction","operationId":"extract_url_content_api_content_extract_url_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","title":"Url"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/email/classify":{"post":{"tags":["Email"],"summary":"Classify Email","description":"Quick classification of an email without AI.\n\nBody: {\n    \"subject\": \"string\",\n    \"sender\": \"sender@example.com\",\n    \"snippet\": \"Email preview text...\"\n}\n\nReturns category and priority based on keywords and patterns.","operationId":"classify_email_api_email_classify_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/email/triage":{"post":{"tags":["Email"],"summary":"Triage Email","description":"Generate AI triage prompt for an email. Requires API key.\n\nBody: {\n    \"from\": \"sender@example.com\",\n    \"subject\": \"Email subject\",\n    \"date\": \"2025-12-30\",\n    \"snippet\": \"Email content preview...\"\n}\n\nReturns a prompt ready for an LLM to analyze the email.","operationId":"triage_email_api_email_triage_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/email/parse-triage":{"post":{"tags":["Email"],"summary":"Parse Triage Response","description":"Parse AI triage response into structured data.\n\nBody: {\n    \"response\": \"PRIORITY: HIGH\\nCATEGORY: action_required\\n...\"\n}","operationId":"parse_triage_response_api_email_parse_triage_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/email/digest":{"post":{"tags":["Email"],"summary":"Generate Digest Prompt","description":"Generate prompt for daily email digest. Requires API key.\n\nBody: {\n    \"emails\": [\n        {\"subject\": \"...\", \"sender\": \"...\", \"priority\": \"HIGH\", \"summary\": \"...\"},\n        ...\n    ]\n}","operationId":"generate_digest_prompt_api_email_digest_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/email/ai-triage":{"post":{"tags":["Email"],"summary":"Ai Triage Email","description":"AI-powered triage for a single email using local Ollama models.\n\n**Free**: Uses local models, zero API cost.\n**Fast**: TinyLlama responds in <1 second.\n\nReturns structured triage result with:\n- Priority (CRITICAL/HIGH/MEDIUM/LOW/ARCHIVE)\n- Category (action_required, newsletter, etc.)\n- Summary and action items","operationId":"ai_triage_email_api_email_ai_triage_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SingleEmailTriageRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/email/ai-triage-batch":{"post":{"tags":["Email"],"summary":"Ai Triage Batch","description":"AI-powered batch triage for multiple emails.\n\nProcesses emails in parallel using local Ollama models.\nGroups results by priority for easy action.\n\n**Free**: Uses local models, zero API cost.","operationId":"ai_triage_batch_api_email_ai_triage_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AITriageRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/email/ai-digest":{"post":{"tags":["Email"],"summary":"Ai Generate Digest","description":"Generate an AI-powered email digest from triaged emails.\n\nFirst triages all emails, then generates a summary digest.\n\n**Free**: Uses local models, zero API cost.","operationId":"ai_generate_digest_api_email_ai_digest_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AITriageRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/email/drafts":{"get":{"tags":["Email"],"summary":"List Drafts","description":"List email drafts with optional filtering by status.\n\nQuery params:\n- limit: Max number of drafts to return (default: 20)\n- status: Filter by status (pending, approved, rejected, sent, all)\n\nReturns list of drafts ordered by generated_at desc.","operationId":"list_drafts_api_email_drafts_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"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/email/drafts/{draft_id}":{"get":{"tags":["Email"],"summary":"Get Draft","description":"Get a specific draft by ID.\n\nReturns full draft details including generated body.","operationId":"get_draft_api_email_drafts__draft_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"draft_id","in":"path","required":true,"schema":{"type":"integer","title":"Draft Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/email/drafts/{draft_id}/approve":{"post":{"tags":["Email"],"summary":"Approve Draft","description":"Approve a draft for sending. Requires API key.\n\nUpdates status to 'approved' and queues for sending.","operationId":"approve_draft_api_email_drafts__draft_id__approve_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"draft_id","in":"path","required":true,"schema":{"type":"integer","title":"Draft Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/email/drafts/{draft_id}/reject":{"post":{"tags":["Email"],"summary":"Reject Draft","description":"Reject a draft. Requires API key.\n\nUpdates status to 'rejected' and discards the draft.","operationId":"reject_draft_api_email_drafts__draft_id__reject_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"draft_id","in":"path","required":true,"schema":{"type":"integer","title":"Draft Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/email/drafts/{draft_id}/edit":{"post":{"tags":["Email"],"summary":"Edit Draft","description":"Edit a draft before approval. Requires API key.\n\nStores user edits and updates status to 'edited'.","operationId":"edit_draft_api_email_drafts__draft_id__edit_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"draft_id","in":"path","required":true,"schema":{"type":"integer","title":"Draft Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DraftEditRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/code":{"get":{"tags":["Code Review"],"summary":"List Code Reviews","description":"List recent code reviews.","operationId":"list_code_reviews_api_code_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/code/{review_id}":{"get":{"tags":["Code Review"],"summary":"Get Code Review","description":"Get a specific code review by ID.","operationId":"get_code_review_api_code__review_id__get","parameters":[{"name":"review_id","in":"path","required":true,"schema":{"type":"integer","title":"Review Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/code/review":{"post":{"tags":["Code Review"],"summary":"Review Code","description":"Generate a code review prompt. Requires API key.\n\nBody: {\n    \"code\": \"string\",           # Code to review (required)\n    \"language\": \"python\",       # Language (auto-detected if not specified)\n    \"review_type\": \"full\",      # full, security, performance, or quick\n    \"context\": \"string\",        # Additional context (optional)\n    \"file_path\": \"string\"       # File path for context (optional)\n}\n\nReturns a prompt ready for an LLM to perform the review.","operationId":"review_code_api_code_review_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/code/parse":{"post":{"tags":["Code Review"],"summary":"Parse Review Response","description":"Parse LLM response into structured review data.\n\nBody: {\n    \"response\": \"string\"  # Raw LLM response from code review\n}","operationId":"parse_review_response_api_code_parse_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/github/webhook":{"post":{"tags":["GitHub"],"summary":"Github Webhook","description":"Receive GitHub webhook events.\n\nConfigure this URL in your GitHub repo settings:\nhttps://aegisagent.ai/api/github/webhook","operationId":"github_webhook_api_github_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/github/repos":{"get":{"tags":["GitHub"],"summary":"List Github Repos","description":"List registered GitHub repos for your API key.","operationId":"list_github_repos_api_github_repos_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]},"post":{"tags":["GitHub"],"summary":"Register Github Repo","description":"Register a GitHub repo for automatic PR reviews. Requires API key.\n\nBody: {\n    \"owner\": \"github-username\",\n    \"name\": \"repo-name\",\n    \"auto_review\": true,\n    \"review_type\": \"full\"\n}\n\nReturns webhook setup instructions.","operationId":"register_github_repo_api_github_repos_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/github/jobs":{"get":{"tags":["GitHub"],"summary":"List Review Jobs","description":"List recent PR review jobs.","operationId":"list_review_jobs_api_github_jobs_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/github/jobs/{job_id}":{"get":{"tags":["GitHub"],"summary":"Get Review Job","description":"Get a specific review job by ID.","operationId":"get_review_job_api_github_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"integer","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/github/review/{job_id}":{"post":{"tags":["GitHub"],"summary":"Generate Pr Review Prompt","description":"Generate review prompt for a queued job.\n\nBody: {\n    \"diff\": \"string\"  # The PR diff content\n}\n\nReturns a prompt ready for LLM review.","operationId":"generate_pr_review_prompt_api_github_review__job_id__post","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"integer","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/github/review/{job_id}/complete":{"post":{"tags":["GitHub"],"summary":"Complete Pr Review","description":"Complete a PR review with LLM response.\n\nBody: {\n    \"response\": \"string\",  # Raw LLM response\n    \"post_to_github\": true  # Whether to post comment to GitHub\n}","operationId":"complete_pr_review_api_github_review__job_id__complete_post","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"integer","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/webhooks":{"get":{"tags":["Webhooks"],"summary":"List Webhooks","description":"List your registered webhooks.","operationId":"list_webhooks_api_webhooks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]},"post":{"tags":["Webhooks"],"summary":"Register Webhook","description":"Register a webhook URL to receive async notifications. Requires API key.\n\nBody: {\n    \"url\": \"https://your-server.com/webhook\",\n    \"events\": [\"research.complete\", \"code_review.complete\"]\n}\n\nAvailable events:\n- research.complete: When async research finishes\n- code_review.complete: When code review finishes\n- github.review.complete: When GitHub PR review finishes\n\nReturns a signing secret for verifying webhook authenticity.","operationId":"register_webhook_api_webhooks_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/webhooks/{webhook_id}":{"delete":{"tags":["Webhooks"],"summary":"Delete Webhook","description":"Delete a webhook.","operationId":"delete_webhook_api_webhooks__webhook_id__delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"webhook_id","in":"path","required":true,"schema":{"type":"integer","title":"Webhook Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/webhooks/deliveries":{"get":{"tags":["Webhooks"],"summary":"List Webhook Deliveries","description":"List recent webhook delivery attempts.","operationId":"list_webhook_deliveries_api_webhooks_deliveries_get","security":[{"APIKeyHeader":[]}],"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/webhooks/test":{"post":{"tags":["Webhooks"],"summary":"Test Webhook","description":"Send a test webhook to your registered URLs.\n\nBody: {\n    \"webhook_id\": 1  # Optional - test specific webhook, or all if omitted\n}","operationId":"test_webhook_api_webhooks_test_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/analytics":{"get":{"tags":["Analytics"],"summary":"Get Analytics Dashboard","description":"Get full analytics dashboard data.\n\nReturns aggregate data for all metrics in one call.","operationId":"get_analytics_dashboard_api_analytics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/analytics/summary":{"get":{"tags":["Analytics"],"summary":"Get Analytics Summary","description":"Get usage summary for the last N days.\n\nQuery params: days (default: 7)","operationId":"get_analytics_summary_api_analytics_summary_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/analytics/endpoints":{"get":{"tags":["Analytics"],"summary":"Get Endpoint Analytics","description":"Get per-endpoint request breakdown.\n\nQuery params: limit (default: 20)","operationId":"get_endpoint_analytics_api_analytics_endpoints_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/analytics/trends":{"get":{"tags":["Analytics"],"summary":"Get Analytics Trends","description":"Get request trends over time.\n\nQuery params:\n- period: \"daily\" or \"hourly\" (default: daily)\n- days: Number of days for daily trends (default: 30)\n- hours: Number of hours for hourly trends (default: 24)","operationId":"get_analytics_trends_api_analytics_trends_get","parameters":[{"name":"period","in":"query","required":false,"schema":{"type":"string","default":"daily","title":"Period"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}},{"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/analytics/keys":{"get":{"tags":["Analytics"],"summary":"Get Api Key Analytics","description":"Get usage analytics for your API key. Requires authentication.","operationId":"get_api_key_analytics_api_analytics_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/analytics/features":{"get":{"tags":["Analytics"],"summary":"Get Feature Analytics","description":"Get usage statistics per API product/feature.","operationId":"get_feature_analytics_api_analytics_features_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/analytics/top-users":{"get":{"tags":["Analytics"],"summary":"Get Top Users Analytics","description":"Get most active clients by request count.\n\nQuery params: limit (default: 10)","operationId":"get_top_users_analytics_api_analytics_top_users_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/billing/status":{"get":{"tags":["Billing"],"summary":"Get Billing Status","description":"Get current subscription and quota status. Requires API key.","operationId":"get_billing_status_api_billing_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/billing/tiers":{"get":{"tags":["Billing"],"summary":"Get Billing Tiers","description":"Get available subscription tiers and pricing.","operationId":"get_billing_tiers_api_billing_tiers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/billing/subscribe":{"post":{"tags":["Billing"],"summary":"Create Subscription","description":"Create a Stripe checkout session for subscription. Requires API key.\n\nBody: {\n    \"tier\": \"developer\" | \"pro\" | \"enterprise\",\n    \"success_url\": \"https://your-site.com/success\",\n    \"cancel_url\": \"https://your-site.com/cancel\"\n}","operationId":"create_subscription_api_billing_subscribe_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/billing/portal":{"post":{"tags":["Billing"],"summary":"Create Customer Portal","description":"Create a Stripe Customer Portal session. Requires API key.\n\nBody: {\n    \"return_url\": \"https://your-site.com/dashboard\"\n}","operationId":"create_customer_portal_api_billing_portal_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/billing/usage":{"get":{"tags":["Billing"],"summary":"Get Usage History","description":"Get usage history for current billing period. Requires API key.\n\nQuery params: days (default: 30)","operationId":"get_usage_history_api_billing_usage_get","security":[{"APIKeyHeader":[]}],"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/billing/events":{"get":{"tags":["Billing"],"summary":"Get Billing Events","description":"Get billing events history. Requires API key.\n\nQuery params: limit (default: 20)","operationId":"get_billing_events_api_billing_events_get","security":[{"APIKeyHeader":[]}],"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/billing/webhook":{"post":{"tags":["Billing"],"summary":"Stripe Webhook","description":"Handle Stripe webhook events.\n\nThis endpoint receives events from Stripe for subscription updates,\npayment success/failure, etc.","operationId":"stripe_webhook_api_billing_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/sentiment":{"get":{"tags":["Sentiment"],"summary":"List Sentiment Results","description":"List recent sentiment analysis results.","operationId":"list_sentiment_results_api_sentiment_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/sentiment/{result_id}":{"get":{"tags":["Sentiment"],"summary":"Get Sentiment Result","description":"Get a specific sentiment analysis result.","operationId":"get_sentiment_result_api_sentiment__result_id__get","parameters":[{"name":"result_id","in":"path","required":true,"schema":{"type":"integer","title":"Result Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sentiment/analyze":{"post":{"tags":["Sentiment"],"summary":"Analyze Sentiment","description":"Perform quick sentiment analysis.\n\nReturns immediate results using rule-based analysis.\n\nRequest body:\n    text: str - Text to analyze (required)\n\nReturns:\n    Sentiment classification, confidence, emotions, and keywords","operationId":"analyze_sentiment_api_sentiment_analyze_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/sentiment/prompt":{"post":{"tags":["Sentiment"],"summary":"Get Sentiment Prompt","description":"Generate a prompt for detailed LLM sentiment analysis.\n\nUse this prompt with your preferred LLM, then call /api/sentiment/parse\nwith the response.\n\nRequest body:\n    text: str - Text to analyze (required)\n\nReturns:\n    prompt: str - Prompt for LLM\n    text_preview: str - Preview of text being analyzed","operationId":"get_sentiment_prompt_api_sentiment_prompt_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/sentiment/parse":{"post":{"tags":["Sentiment"],"summary":"Parse Sentiment Response","description":"Parse LLM response into structured sentiment result.\n\nRequest body:\n    text: str - Original text that was analyzed\n    response: str - LLM response (JSON format)\n    save: bool - Whether to save result (default: true)\n\nReturns:\n    Structured sentiment analysis result","operationId":"parse_sentiment_response_api_sentiment_parse_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/meeting":{"get":{"tags":["Meeting"],"summary":"List Meeting Summaries","description":"List recent meeting summaries.\n\nQuery params:\n    limit: Number of results (default: 20)","operationId":"list_meeting_summaries_api_meeting_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/meeting/{summary_id}":{"get":{"tags":["Meeting"],"summary":"Get Meeting Summary","description":"Get a specific meeting summary by ID.","operationId":"get_meeting_summary_api_meeting__summary_id__get","parameters":[{"name":"summary_id","in":"path","required":true,"schema":{"type":"integer","title":"Summary Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/meeting/analyze":{"post":{"tags":["Meeting"],"summary":"Analyze Meeting","description":"Quick analysis of meeting transcript.\n\nReturns detected speakers, potential action items, decisions,\nand questions without needing an LLM.\n\nRequest body:\n    transcript: str - Meeting transcript (required)\n    format: str - Format hint: raw, vtt, srt, speaker_labeled (optional)","operationId":"analyze_meeting_api_meeting_analyze_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/meeting/prompt":{"post":{"tags":["Meeting"],"summary":"Get Meeting Prompt","description":"Generate a prompt for detailed LLM meeting summarization.\n\nRequest body:\n    transcript: str - Meeting transcript (required)\n    meeting_type: str - Type hint (optional): standup, planning, review, etc.","operationId":"get_meeting_prompt_api_meeting_prompt_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/meeting/parse":{"post":{"tags":["Meeting"],"summary":"Parse Meeting Response","description":"Parse LLM response into structured meeting summary.\n\nRequest body:\n    transcript: str - Original transcript (required)\n    response: str - LLM response in JSON format (required)\n    save: bool - Whether to save to database (default: true)","operationId":"parse_meeting_response_api_meeting_parse_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/scheduled-tasks":{"get":{"tags":["Scheduled Tasks"],"summary":"List Scheduled Tasks","description":"List your scheduled tasks.\n\nQuery params:\n    limit: Max results (default: 50)","operationId":"list_scheduled_tasks_api_scheduled_tasks_get","security":[{"APIKeyHeader":[]}],"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"}}}}}},"post":{"tags":["Scheduled Tasks"],"summary":"Create Scheduled Task","description":"Create a new scheduled task.\n\nRequest body:\n    name: str - Task name (required)\n    task_type: str - Type: webhook, research, report, custom (required)\n    schedule: str - When to run: ISO datetime or time pattern (required)\n    recurrence: str - once, hourly, daily, weekly, monthly (default: once)\n    payload: dict - Task-specific parameters (optional)\n    webhook_url: str - URL to call for webhook tasks (optional)\n    priority: int - 1-10, higher = more important (default: 5)","operationId":"create_scheduled_task_api_scheduled_tasks_post","security":[{"APIKeyHeader":[]}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/scheduled-tasks/executions":{"get":{"tags":["Scheduled Tasks"],"summary":"List Scheduled Executions","description":"Get task execution history.","operationId":"list_scheduled_executions_api_scheduled_tasks_executions_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"task_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Task Id"}},{"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/scheduled-tasks/{task_id}":{"get":{"tags":["Scheduled Tasks"],"summary":"Get Scheduled Task","description":"Get a specific task by ID.","operationId":"get_scheduled_task_api_scheduled_tasks__task_id__get","security":[{"APIKeyHeader":[]}],"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"}}}}}},"put":{"tags":["Scheduled Tasks"],"summary":"Update Scheduled Task","description":"Update an existing task.","operationId":"update_scheduled_task_api_scheduled_tasks__task_id__put","security":[{"APIKeyHeader":[]}],"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":{"tags":["Scheduled Tasks"],"summary":"Delete Scheduled Task","description":"Delete a scheduled task.","operationId":"delete_scheduled_task_api_scheduled_tasks__task_id__delete","security":[{"APIKeyHeader":[]}],"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/scheduled-tasks/{task_id}/pause":{"post":{"tags":["Scheduled Tasks"],"summary":"Pause Scheduled Task","description":"Pause a scheduled task.","operationId":"pause_scheduled_task_api_scheduled_tasks__task_id__pause_post","security":[{"APIKeyHeader":[]}],"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/scheduled-tasks/{task_id}/resume":{"post":{"tags":["Scheduled Tasks"],"summary":"Resume Scheduled Task","description":"Resume a paused task.","operationId":"resume_scheduled_task_api_scheduled_tasks__task_id__resume_post","security":[{"APIKeyHeader":[]}],"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/scheduled-tasks/queue":{"post":{"tags":["Scheduled Tasks"],"summary":"Queue Quick Task","description":"Quick task queue - simplified task creation for mobile/chat.\n\nRequest body:\n    task: str - What to do (required)\n    priority: str - low, medium, high (default: medium)\n    when: str - now, soon, later, tomorrow (default: soon)\n\nExamples:\n    {\"task\": \"Research AI agent frameworks\"}\n    {\"task\": \"Review code in aegis-core\", \"priority\": \"high\"}\n    {\"task\": \"Check system health\", \"when\": \"now\"}","operationId":"queue_quick_task_api_scheduled_tasks_queue_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/research":{"get":{"tags":["Research"],"summary":"List Research","description":"List recent research results.","operationId":"list_research_api_research_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"}}}}}},"post":{"tags":["Research"],"summary":"Create Research","description":"Create a new research request. Requires API key.\n\nBody: {\n    \"topic\": \"string\",\n    \"urls\": [\"url1\", \"url2\"],  # optional\n    \"search_query\": \"string\",   # optional\n    \"max_sources\": 5            # optional\n}\n\nNote: This endpoint queues the research request.\nThe actual research is performed asynchronously.","operationId":"create_research_api_research_post","security":[{"APIKeyHeader":[]}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/research/search":{"get":{"tags":["Research"],"summary":"Search Research","description":"Search past research by topic or content.","operationId":"search_research_api_research_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","title":"Q"}},{"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/research/{research_id}":{"get":{"tags":["Research"],"summary":"Get Research","description":"Get a specific research result by ID.","operationId":"get_research_api_research__research_id__get","parameters":[{"name":"research_id","in":"path","required":true,"schema":{"type":"integer","title":"Research Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/research":{"post":{"tags":["Research API"],"summary":"Execute AI Research","description":"Execute AI-powered research on any topic.\n\n## Depth Levels\n\n| Depth | Sources | Time | Credits | Use Case |\n|-------|---------|------|---------|----------|\n| shallow | 3 | ~2 min | 1 | Quick facts, verification |\n| medium | 5-7 | ~5 min | 3 | General research, decisions |\n| deep | 10+ | ~15 min | 10 | Comprehensive investigation |\n\n## Response\n\nReturns structured findings with:\n- Executive summary\n- Key findings (bullet points)\n- Detailed analysis\n- Cited sources\n\n## Caching\n\nResults are cached for 24 hours. Set `use_cache: false` to force fresh research.","operationId":"execute_research_api_v1_research_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchAPIRequest"}}},"required":true},"responses":{"200":{"description":"Research completed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchAPIResponse"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchErrorResponse"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/v1/research/credits":{"get":{"tags":["Research API"],"summary":"Check Credit Balance","description":"Get your current credit balance and usage statistics.","operationId":"get_credits_api_v1_research_credits_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchCreditsResponse"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchErrorResponse"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchErrorResponse"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/v1/research/history":{"get":{"tags":["Research API"],"summary":"Research History","description":"Get your research history.","operationId":"get_history_api_v1_research_history_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResearchListItem"},"title":"Response Get History Api V1 Research History Get"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchErrorResponse"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/research/pricing":{"get":{"tags":["Research API"],"summary":"Pricing Information","description":"Get current pricing tiers and credit costs.","operationId":"get_pricing_api_v1_research_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchErrorResponse"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchErrorResponse"}}}}}}},"/api/v1/research/checkout":{"post":{"tags":["Research API"],"summary":"Create Checkout Session","description":"Create a Stripe checkout session for subscription. No authentication required.","operationId":"create_checkout_api_v1_research_checkout_post","parameters":[{"name":"tier","in":"query","required":true,"schema":{"type":"string","title":"Tier"}},{"name":"email","in":"query","required":false,"schema":{"type":"string","title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchErrorResponse"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/research/{research_id}":{"get":{"tags":["Research API"],"summary":"Get Research Result","description":"Retrieve a specific research result by ID.","operationId":"get_research_api_v1_research__research_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"research_id","in":"path","required":true,"schema":{"type":"string","title":"Research Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchAPIResponse"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchErrorResponse"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/status":{"get":{"tags":["System"],"summary":"Api Status","description":"API endpoint for system status.","operationId":"api_status_api_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/tasks":{"get":{"tags":["System"],"summary":"Api Tasks","description":"API endpoint for task statistics.","operationId":"api_tasks_api_tasks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/ooda":{"get":{"tags":["System"],"summary":"Api Ooda","description":"API endpoint for recent OODA cycles.","operationId":"api_ooda_api_ooda_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/memory/recent":{"get":{"tags":["System"],"summary":"Api Memory Recent","description":"API endpoint for recent episodic memories.","operationId":"api_memory_recent_api_memory_recent_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/health":{"get":{"tags":["System"],"summary":"Health","description":"Health check endpoint.","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/rate-limit":{"get":{"tags":["System"],"summary":"Check Rate Limit Status","description":"Check your current rate limit status.\n\nReturns your remaining requests and reset time.","operationId":"check_rate_limit_status_api_rate_limit_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/llm/models":{"get":{"tags":["LLM"],"summary":"List Models","description":"List available LLM models in the Aegis stack.\n\nReturns local models with their capabilities and recommended use cases.","operationId":"list_models_api_llm_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/llm/query":{"post":{"tags":["LLM"],"summary":"Query Llm","description":"Unified LLM query endpoint with automatic model selection.\n\nSelects the appropriate model based on task_type:\n- vision: qwen3-vl (local)\n- reasoning: deepseek-r1 (local)\n- operational: GLM-4.7 (subscription) or qwen3 (fallback)\n- simple: tinyllama (local, fast)\n- research: Gemini Deep Research (pay-per-use, requires API key)\n\n**Cost Warning**: research task_type uses pay-per-use Gemini API.","operationId":"query_llm_api_llm_query_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/QueryRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/llm/vision":{"post":{"tags":["LLM"],"summary":"Analyze Image","description":"Analyze an image using local vision model (qwen3-vl).\n\nAccepts JSON body with image_base64 or image_url.\nFor file uploads, use /vision/upload endpoint.\n\n**Free**: Uses local Ollama model, no API charges.\n\nBased on: https://markaicode.com/ollama-vision-model-api-guide/","operationId":"analyze_image_api_llm_vision_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/llm/vision/upload":{"post":{"tags":["LLM"],"summary":"Analyze Image Upload","description":"Analyze an uploaded image using local vision model (qwen3-vl).\n\nAccepts multipart form data with file upload.\n\n**Free**: Uses local Ollama model, no API charges.","operationId":"analyze_image_upload_api_llm_vision_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_analyze_image_upload_api_llm_vision_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/llm/reason":{"post":{"tags":["LLM"],"summary":"Chain Of Thought","description":"Chain-of-thought reasoning using DeepSeek-R1.\n\nBest for:\n- Complex problem solving\n- Multi-step reasoning\n- Math and logic problems\n- Analysis requiring step-by-step thinking\n\n**Free**: Uses local Ollama model, no API charges.","operationId":"chain_of_thought_api_llm_reason_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReasoningRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/llm/classify":{"post":{"tags":["LLM"],"summary":"Quick Classify","description":"Quick text classification using TinyLlama.\n\nFast, lightweight classification for:\n- Sentiment (positive/negative/neutral)\n- Topic classification\n- Intent detection\n- Priority assignment\n\n**Free**: Uses local Ollama model, no API charges.\nResponse time: <1 second typically.","operationId":"quick_classify_api_llm_classify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aegis__dashboard__routes__llm__ClassifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/llm/health":{"get":{"tags":["LLM"],"summary":"Llm Health","description":"Check health of LLM services.","operationId":"llm_health_api_llm_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/monitor/analyze":{"post":{"tags":["Monitoring"],"summary":"Analyze Url","description":"Take a screenshot of a URL and analyze it with AI vision.\n\nUses Playwright MCP for screenshots and qwen3-vl for analysis.\nOptionally saves the analysis as a baseline for future comparison.\n\n**Free**: Uses local models, zero API cost.","operationId":"analyze_url_api_monitor_analyze_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/monitor/analyze-screenshot":{"post":{"tags":["Monitoring"],"summary":"Analyze Screenshot","description":"Analyze a provided screenshot with AI vision.\n\nPass a base64-encoded screenshot and receive AI analysis.\n\n**Free**: Uses local qwen3-vl model, zero API cost.","operationId":"analyze_screenshot_api_monitor_analyze_screenshot_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyzeScreenshotRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/monitor/save-baseline":{"post":{"tags":["Monitoring"],"summary":"Save Baseline","description":"Save an analysis as a baseline for future comparison.\n\nBaselines are stored as JSON files with metadata.","operationId":"save_baseline_api_monitor_save_baseline_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","title":"Name"}},{"name":"analysis","in":"query","required":true,"schema":{"type":"string","title":"Analysis"}},{"name":"url","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitor/baseline/{name}":{"get":{"tags":["Monitoring"],"summary":"Get Baseline","description":"Retrieve a saved baseline by name.","operationId":"get_baseline_api_monitor_baseline__name__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Monitoring"],"summary":"Delete Baseline","description":"Delete a saved baseline.","operationId":"delete_baseline_api_monitor_baseline__name__delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitor/baselines":{"get":{"tags":["Monitoring"],"summary":"List Baselines","description":"List all saved monitoring baselines.","operationId":"list_baselines_api_monitor_baselines_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/monitor/compare":{"post":{"tags":["Monitoring"],"summary":"Compare To Baseline","description":"Compare a current analysis against a saved baseline.\n\nUses AI to identify meaningful differences between the\ncurrent state and the baseline.\n\n**Free**: Uses local models, zero API cost.","operationId":"compare_to_baseline_api_monitor_compare_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","title":"Name"}},{"name":"current_analysis","in":"query","required":true,"schema":{"type":"string","title":"Current Analysis"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitor/prompts":{"get":{"tags":["Monitoring"],"summary":"List Health Prompts","description":"List pre-built health check prompts for common monitoring scenarios.","operationId":"list_health_prompts_api_monitor_prompts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/monitor/v2/monitors":{"post":{"tags":["Monitoring"],"summary":"Create Monitor V2","description":"Create a new website monitor.\n\nMonitors are persisted in the database and can be scheduled for\nautomatic checks based on the specified frequency.","operationId":"create_monitor_v2_api_monitor_v2_monitors_post","security":[{"APIKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorCreateBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Create Monitor V2 Api Monitor V2 Monitors Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Monitoring"],"summary":"List Monitors V2","description":"List all website monitors.\n\nReturns monitor summaries with status and statistics.","operationId":"list_monitors_v2_api_monitor_v2_monitors_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Monitors V2 Api Monitor V2 Monitors Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitor/v2/monitors/{monitor_id}":{"get":{"tags":["Monitoring"],"summary":"Get Monitor V2","description":"Get details of a specific monitor.","operationId":"get_monitor_v2_api_monitor_v2_monitors__monitor_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"monitor_id","in":"path","required":true,"schema":{"type":"string","title":"Monitor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Monitor V2 Api Monitor V2 Monitors  Monitor Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Monitoring"],"summary":"Delete Monitor V2","description":"Delete a monitor and all its snapshots.","operationId":"delete_monitor_v2_api_monitor_v2_monitors__monitor_id__delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"monitor_id","in":"path","required":true,"schema":{"type":"string","title":"Monitor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitor/v2/monitors/{monitor_id}/check":{"post":{"tags":["Monitoring"],"summary":"Check Monitor V2","description":"Run a check on a monitor.\n\nTakes a screenshot (or uses provided image), analyzes it,\ncompares with baseline, and sends alerts if changes detected.","operationId":"check_monitor_v2_api_monitor_v2_monitors__monitor_id__check_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"monitor_id","in":"path","required":true,"schema":{"type":"string","title":"Monitor Id"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MonitorCheckBody","default":{"set_baseline":false}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Check Monitor V2 Api Monitor V2 Monitors  Monitor Id  Check Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitor/v2/monitors/{monitor_id}/pause":{"post":{"tags":["Monitoring"],"summary":"Pause Monitor V2","description":"Pause a monitor.","operationId":"pause_monitor_v2_api_monitor_v2_monitors__monitor_id__pause_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"monitor_id","in":"path","required":true,"schema":{"type":"string","title":"Monitor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitor/v2/monitors/{monitor_id}/resume":{"post":{"tags":["Monitoring"],"summary":"Resume Monitor V2","description":"Resume a paused monitor.","operationId":"resume_monitor_v2_api_monitor_v2_monitors__monitor_id__resume_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"monitor_id","in":"path","required":true,"schema":{"type":"string","title":"Monitor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitor/v2/monitors/{monitor_id}/snapshots":{"get":{"tags":["Monitoring"],"summary":"List Snapshots V2","description":"List snapshots for a monitor.","operationId":"list_snapshots_v2_api_monitor_v2_monitors__monitor_id__snapshots_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"monitor_id","in":"path","required":true,"schema":{"type":"string","title":"Monitor Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Snapshots V2 Api Monitor V2 Monitors  Monitor Id  Snapshots Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitor/v2/snapshots/{snapshot_id}/set-baseline":{"post":{"tags":["Monitoring"],"summary":"Set Baseline V2","description":"Set a snapshot as the baseline.","operationId":"set_baseline_v2_api_monitor_v2_snapshots__snapshot_id__set_baseline_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"snapshot_id","in":"path","required":true,"schema":{"type":"string","title":"Snapshot Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitor/v2/alerts":{"get":{"tags":["Monitoring"],"summary":"List Alerts V2","description":"List change alerts with optional filtering.","operationId":"list_alerts_v2_api_monitor_v2_alerts_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"monitor_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Monitor Id"}},{"name":"acknowledged","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Acknowledged"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response List Alerts V2 Api Monitor V2 Alerts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monitor/v2/alerts/{alert_id}/acknowledge":{"post":{"tags":["Monitoring"],"summary":"Acknowledge Alert V2","description":"Acknowledge an alert.","operationId":"acknowledge_alert_v2_api_monitor_v2_alerts__alert_id__acknowledge_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"string","title":"Alert Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/infra/status":{"get":{"tags":["Infrastructure"],"summary":"Get Infra Status","description":"Get current infrastructure monitoring status.\n\nReturns container health, strike counts, and policies.\n\n**Free**: No API costs.","operationId":"get_infra_status_api_infra_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/infra/health":{"get":{"tags":["Infrastructure"],"summary":"Run Health Check","description":"Run a health check cycle on all containers.\n\nChecks health and auto-remediates unhealthy containers\naccording to their policies.\n\n**Free**: No API costs.","operationId":"run_health_check_api_infra_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/infra/remediate":{"post":{"tags":["Infrastructure"],"summary":"Remediate Container","description":"Manually trigger remediation for a container.\n\nUse force=true to bypass policy restrictions.\nRequires API key.","operationId":"remediate_container_api_infra_remediate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemediateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/infra/reset-strikes":{"post":{"tags":["Infrastructure"],"summary":"Reset Container Strikes","description":"Reset strike count for a container.\n\nUse after manual intervention to clear escalation state.\nRequires API key.","operationId":"reset_container_strikes_api_infra_reset_strikes_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"container","in":"query","required":true,"schema":{"type":"string","title":"Container"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/infra/policy":{"post":{"tags":["Infrastructure"],"summary":"Update Policy","description":"Update remediation policy for a container.\n\nPolicies:\n- auto: Auto-restart without approval\n- approval: Require human approval\n- alert: Alert only, no auto-remediation\n\nRequires API key.","operationId":"update_policy_api_infra_policy_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PolicyUpdate"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/infra/containers":{"get":{"tags":["Infrastructure"],"summary":"List Containers","description":"List all Docker containers with health status.\n\nArgs:\n    all: Include stopped containers (default: False)","operationId":"list_containers_api_infra_containers_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"all","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"All"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/infra/anomaly/detect":{"get":{"tags":["Infrastructure"],"summary":"Run Anomaly Detection","description":"Run anomaly detection cycle on all containers.\n\nCollects current metrics, compares against baselines,\nand returns any detected anomalies.\n\n**Free**: No API costs.","operationId":"run_anomaly_detection_api_infra_anomaly_detect_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/infra/anomaly/metrics":{"get":{"tags":["Infrastructure"],"summary":"Get Container Metrics","description":"Get historical metrics for containers.\n\nArgs:\n    container: Container name (optional, returns all if not specified)\n    hours: Hours of history to return (default: 24)\n\n**Free**: No API costs.","operationId":"get_container_metrics_api_infra_anomaly_metrics_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"container","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Container"}},{"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/infra/anomaly/baselines":{"get":{"tags":["Infrastructure"],"summary":"Get Baselines","description":"Get computed baselines for container metrics.\n\nArgs:\n    container: Container name (optional)\n\n**Free**: No API costs.","operationId":"get_baselines_api_infra_anomaly_baselines_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"container","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Container"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/infra/anomaly/baselines/update":{"post":{"tags":["Infrastructure"],"summary":"Update Baselines","description":"Force recalculation of baselines for all containers.\n\nArgs:\n    hours: Hours of data to use for baseline calculation\n\nRequires API key.","operationId":"update_baselines_api_infra_anomaly_baselines_update_post","security":[{"APIKeyHeader":[]}],"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/infra/anomaly/alerts":{"get":{"tags":["Infrastructure"],"summary":"Get Anomaly Alerts","description":"Get recent anomaly alerts.\n\nArgs:\n    container: Filter by container name\n    acknowledged: Filter by acknowledged status\n    limit: Max alerts to return\n\n**Free**: No API costs.","operationId":"get_anomaly_alerts_api_infra_anomaly_alerts_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"container","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Container"}},{"name":"acknowledged","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Acknowledged"}},{"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/infra/anomaly/alerts/{alert_id}/acknowledge":{"post":{"tags":["Infrastructure"],"summary":"Acknowledge Anomaly Alert","description":"Acknowledge an anomaly alert.\n\nRequires API key.","operationId":"acknowledge_anomaly_alert_api_infra_anomaly_alerts__alert_id__acknowledge_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"string","title":"Alert Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/telegram/webhook":{"post":{"tags":["telegram"],"summary":"Telegram Webhook","description":"Receive Telegram webhook updates.\n\nThis endpoint is called by Telegram when messages are received.","operationId":"telegram_webhook_api_telegram_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"delete":{"tags":["telegram"],"summary":"Delete Webhook","description":"Remove the Telegram webhook.","operationId":"delete_webhook_api_telegram_webhook_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/telegram/status":{"get":{"tags":["telegram"],"summary":"Telegram Status","description":"Get Telegram bot status and configuration.","operationId":"telegram_status_api_telegram_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/telegram/send":{"post":{"tags":["telegram"],"summary":"Send Message","description":"Send a message to a Telegram chat.\n\nAdmin endpoint for testing and notifications.","operationId":"send_message_api_telegram_send_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/telegram/sessions":{"get":{"tags":["telegram"],"summary":"List Sessions","description":"List active Telegram sessions.","operationId":"list_sessions_api_telegram_sessions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/telegram/messages":{"get":{"tags":["telegram"],"summary":"List Messages","description":"List recent Telegram messages.","operationId":"list_messages_api_telegram_messages_get","parameters":[{"name":"chat_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Chat Id"}},{"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/telegram/webhook/setup":{"post":{"tags":["telegram"],"summary":"Setup Webhook","description":"Set up the Telegram webhook URL.\n\nCall this once to register your webhook with Telegram.","operationId":"setup_webhook_api_telegram_webhook_setup_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSetupRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/telegram/webhook/info":{"get":{"tags":["telegram"],"summary":"Webhook Info","description":"Get current webhook information.","operationId":"webhook_info_api_telegram_webhook_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/blog/activity":{"get":{"tags":["Blog"],"summary":"Get Recent Activity","description":"Get recent activity that can be used for blog generation.\n\nShows commits, tasks, and events from the specified time range.\n\n**Free**: No API costs.","operationId":"get_recent_activity_api_blog_activity_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/blog/generate":{"post":{"tags":["Blog"],"summary":"Generate Blog Post","description":"Generate a blog post from recent activity.\n\nUses LLM to create content based on commits, tasks, and events.\nReturns a draft that can be reviewed and published.\n\nRequires API key. Uses local LLM (no API cost).","operationId":"generate_blog_post_api_blog_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/blog/drafts":{"get":{"tags":["Blog"],"summary":"List Drafts","description":"List blog post drafts.\n\n**Free**: No API costs.","operationId":"list_drafts_api_blog_drafts_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"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/blog/drafts/{post_id}":{"get":{"tags":["Blog"],"summary":"Get Draft","description":"Get a specific blog post draft with full content.\n\n**Free**: No API costs.","operationId":"get_draft_api_blog_drafts__post_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"post_id","in":"path","required":true,"schema":{"type":"string","title":"Post Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Blog"],"summary":"Delete Draft","description":"Delete a blog post draft.\n\nRequires API key.","operationId":"delete_draft_api_blog_drafts__post_id__delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"post_id","in":"path","required":true,"schema":{"type":"string","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/blog/drafts/{post_id}/publish":{"post":{"tags":["Blog"],"summary":"Publish Draft","description":"Publish a blog post draft to file.\n\nExports as markdown or HTML and updates status to published.\n\nRequires API key.","operationId":"publish_draft_api_blog_drafts__post_id__publish_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"post_id","in":"path","required":true,"schema":{"type":"string","title":"Post Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublishRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/blog/stats":{"get":{"tags":["Blog"],"summary":"Get Blog Stats","description":"Get blog generation statistics.\n\n**Free**: No API costs.","operationId":"get_blog_stats_api_blog_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/marketplace/register":{"post":{"tags":["Marketplace"],"summary":"Register Developer","description":"Register for a free API key.\n\nCreates a new API key with free tier access (50 credits/month).\nThe API key is only shown once - store it securely!\n\n**No authentication required.**","operationId":"register_developer_api_marketplace_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/marketplace/catalog":{"get":{"tags":["Marketplace"],"summary":"Get Catalog","description":"Get API product catalog.\n\nBrowse available APIs with optional filtering by category or tier.\n\n**No authentication required.**","operationId":"get_catalog_api_marketplace_catalog_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"tier","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tier"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/marketplace/catalog/{product_id}":{"get":{"tags":["Marketplace"],"summary":"Get Product Details","description":"Get detailed information about an API product.\n\nIncludes endpoints, pricing, and tier requirements.\n\n**No authentication required.**","operationId":"get_product_details_api_marketplace_catalog__product_id__get","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/marketplace/pricing":{"get":{"tags":["Marketplace"],"summary":"Get Pricing","description":"Get pricing information for all tiers.\n\nShows credit allocations, rate limits, and features per tier.\n\n**No authentication required.**","operationId":"get_pricing_api_marketplace_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/marketplace/categories":{"get":{"tags":["Marketplace"],"summary":"Get Categories","description":"Get available API categories.\n\n**No authentication required.**","operationId":"get_categories_api_marketplace_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/marketplace/developer/profile":{"get":{"tags":["Marketplace"],"summary":"Get Developer Profile","description":"Get developer profile and account status.\n\nIncludes tier, credits, usage stats, and enabled APIs.\n\n**Requires API key.**","operationId":"get_developer_profile_api_marketplace_developer_profile_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]},"patch":{"tags":["Marketplace"],"summary":"Update Developer Profile","description":"Update developer profile.\n\n**Requires API key.**","operationId":"update_developer_profile_api_marketplace_developer_profile_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProfileRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/marketplace/developer/credits":{"get":{"tags":["Marketplace"],"summary":"Get Credits","description":"Get current credit balance and rate limits.\n\n**Requires API key.**","operationId":"get_credits_api_marketplace_developer_credits_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/marketplace/developer/credits/history":{"get":{"tags":["Marketplace"],"summary":"Get Credit History","description":"Get credit transaction history.\n\n**Requires API key.**","operationId":"get_credit_history_api_marketplace_developer_credits_history_get","security":[{"APIKeyHeader":[]}],"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/marketplace/developer/usage":{"get":{"tags":["Marketplace"],"summary":"Get Usage","description":"Get API usage statistics.\n\nShows calls, credits used, and breakdown by API product.\n\n**Requires API key.**","operationId":"get_usage_api_marketplace_developer_usage_get","security":[{"APIKeyHeader":[]}],"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/marketplace/developer/upgrade":{"post":{"tags":["Marketplace"],"summary":"Upgrade Tier","description":"Initiate tier upgrade.\n\nCreates a Stripe checkout session for the selected tier.\n\n**Requires API key.**","operationId":"upgrade_tier_api_marketplace_developer_upgrade_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpgradeTierRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/marketplace/developer/access/{product_id}":{"get":{"tags":["Marketplace"],"summary":"Check Api Access","description":"Check if you have access to a specific API product.\n\n**Requires API key.**","operationId":"check_api_access_api_marketplace_developer_access__product_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/marketplace/stats":{"get":{"tags":["Marketplace"],"summary":"Get Marketplace Stats","description":"Get marketplace statistics.\n\nShows developer counts, usage, and top APIs.\n\n**Public endpoint with optional auth for extended data.**","operationId":"get_marketplace_stats_api_marketplace_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/marketplace/openapi":{"get":{"tags":["Marketplace"],"summary":"Get Openapi Info","description":"Get OpenAPI documentation URLs for all API products.\n\n**No authentication required.**","operationId":"get_openapi_info_api_marketplace_openapi_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/competitor":{"get":{"tags":["Competitor Intelligence"],"summary":"List Competitors","description":"List all tracked competitors.\n\nReturns competitor summaries with change counts.\n\n**Free**: No credits consumed.","operationId":"list_competitors_api_competitor_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"enabled_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Enabled Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Competitor Intelligence"],"summary":"Create Competitor","description":"Create a new competitor to track.\n\nSets up monitoring for specified pages.\n\n**Requires API key.**\n**Credits**: 5 per competitor created","operationId":"create_competitor_api_competitor_post","security":[{"APIKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompetitorApiCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/competitor/stats":{"get":{"tags":["Competitor Intelligence"],"summary":"Get Stats","description":"Get competitor intelligence statistics.\n\nOverview of tracking activity and change detection.\n\n**Free**: No credits consumed.","operationId":"get_stats_api_competitor_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/competitor/changes":{"get":{"tags":["Competitor Intelligence"],"summary":"List Changes","description":"List detected competitor changes.\n\nFilter by competitor, category, or review status.\n\n**Free**: No credits consumed.","operationId":"list_changes_api_competitor_changes_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"competitor_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Competitor Id"}},{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}},{"name":"reviewed","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Reviewed"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/competitor/insights":{"get":{"tags":["Competitor Intelligence"],"summary":"List Insights","description":"List generated competitive insights.\n\nStrategic insights derived from change patterns.\n\n**Free**: No credits consumed.","operationId":"list_insights_api_competitor_insights_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":30,"title":"Days"}},{"name":"acknowledged","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Acknowledged"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/competitor/{competitor_id}":{"get":{"tags":["Competitor Intelligence"],"summary":"Get Competitor","description":"Get competitor details.\n\nFull profile including monitored pages.\n\n**Free**: No credits consumed.","operationId":"get_competitor_api_competitor__competitor_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"competitor_id","in":"path","required":true,"schema":{"type":"string","title":"Competitor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Competitor Intelligence"],"summary":"Update Competitor","description":"Update competitor settings.\n\n**Requires API key.**\n**Free**: No credits consumed.","operationId":"update_competitor_api_competitor__competitor_id__patch","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"competitor_id","in":"path","required":true,"schema":{"type":"string","title":"Competitor Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompetitorApiUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Competitor Intelligence"],"summary":"Delete Competitor","description":"Delete a competitor and stop monitoring.\n\n**Requires API key.**\n**Free**: No credits consumed.","operationId":"delete_competitor_api_competitor__competitor_id__delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"competitor_id","in":"path","required":true,"schema":{"type":"string","title":"Competitor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/competitor/{competitor_id}/pages":{"post":{"tags":["Competitor Intelligence"],"summary":"Add Page","description":"Add a page to monitor for a competitor.\n\n**Requires API key.**\n**Credits**: 2 per page added","operationId":"add_page_api_competitor__competitor_id__pages_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"competitor_id","in":"path","required":true,"schema":{"type":"string","title":"Competitor Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageApiCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/competitor/{competitor_id}/pages/{page_id}":{"delete":{"tags":["Competitor Intelligence"],"summary":"Remove Page","description":"Remove a monitored page.\n\n**Requires API key.**\n**Free**: No credits consumed.","operationId":"remove_page_api_competitor__competitor_id__pages__page_id__delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"competitor_id","in":"path","required":true,"schema":{"type":"string","title":"Competitor Id"}},{"name":"page_id","in":"path","required":true,"schema":{"type":"string","title":"Page Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/competitor/{competitor_id}/check":{"post":{"tags":["Competitor Intelligence"],"summary":"Check Competitor","description":"Trigger a check for competitor changes.\n\nChecks all monitored pages and analyzes any changes.\n\n**Requires API key.**\n**Credits**: 3 per check (all pages)","operationId":"check_competitor_api_competitor__competitor_id__check_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"competitor_id","in":"path","required":true,"schema":{"type":"string","title":"Competitor Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/competitor/check-all":{"post":{"tags":["Competitor Intelligence"],"summary":"Check All Competitors","description":"Check all enabled competitors for changes.\n\n**Requires API key.**\n**Credits**: 3 per competitor checked","operationId":"check_all_competitors_api_competitor_check_all_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/competitor/insights/generate":{"post":{"tags":["Competitor Intelligence"],"summary":"Generate Insights","description":"Generate strategic insights from recent changes.\n\nAnalyzes patterns across competitors.\n\n**Requires API key.**\n**Credits**: 5 per insight generation","operationId":"generate_insights_api_competitor_insights_generate_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Days"}},{"name":"min_changes","in":"query","required":false,"schema":{"type":"integer","default":2,"title":"Min Changes"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/competitor/insights/{insight_id}/acknowledge":{"post":{"tags":["Competitor Intelligence"],"summary":"Acknowledge Insight","description":"Acknowledge an insight.\n\n**Requires API key.**\n**Free**: No credits consumed.","operationId":"acknowledge_insight_api_competitor_insights__insight_id__acknowledge_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"insight_id","in":"path","required":true,"schema":{"type":"string","title":"Insight Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/competitor/report":{"post":{"tags":["Competitor Intelligence"],"summary":"Generate Report","description":"Generate competitive intelligence report.\n\nCreates an executive summary with trends and recommendations.\n\n**Requires API key.**\n**Credits**: 10 per report","operationId":"generate_report_api_competitor_report_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Days"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Competitor Ids"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/competitor/changes/{change_id}":{"get":{"tags":["Competitor Intelligence"],"summary":"Get Change","description":"Get change details.\n\n**Free**: No credits consumed.","operationId":"get_change_api_competitor_changes__change_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"change_id","in":"path","required":true,"schema":{"type":"string","title":"Change Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/competitor/changes/{change_id}/review":{"post":{"tags":["Competitor Intelligence"],"summary":"Mark Change Reviewed","description":"Mark a change as reviewed.\n\n**Requires API key.**\n**Free**: No credits consumed.","operationId":"mark_change_reviewed_api_competitor_changes__change_id__review_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"change_id","in":"path","required":true,"schema":{"type":"string","title":"Change Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/social/sources":{"get":{"tags":["Social Listening"],"summary":"List Sources","description":"List all monitoring sources.","operationId":"list_sources_api_social_sources_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"platform","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by platform","title":"Platform"},"description":"Filter by platform"},{"name":"enabled_only","in":"query","required":false,"schema":{"type":"boolean","description":"Only show enabled sources","default":true,"title":"Enabled Only"},"description":"Only show enabled sources"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SourceResponse"},"title":"Response List Sources Api Social Sources Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Social Listening"],"summary":"Create Source","description":"Add a new monitoring source.","operationId":"create_source_api_social_sources_post","security":[{"APIKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/social/sources/{source_id}":{"get":{"tags":["Social Listening"],"summary":"Get Source","description":"Get a monitoring source by ID.","operationId":"get_source_api_social_sources__source_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"source_id","in":"path","required":true,"schema":{"type":"string","title":"Source Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Social Listening"],"summary":"Update Source","description":"Update a monitoring source.","operationId":"update_source_api_social_sources__source_id__patch","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"source_id","in":"path","required":true,"schema":{"type":"string","title":"Source Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SourceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Social Listening"],"summary":"Delete Source","description":"Delete a monitoring source.","operationId":"delete_source_api_social_sources__source_id__delete","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"source_id","in":"path","required":true,"schema":{"type":"string","title":"Source Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/social/rules/keywords":{"get":{"tags":["Social Listening"],"summary":"List Keyword Rules","description":"List keyword matching rules.","operationId":"list_keyword_rules_api_social_rules_keywords_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"enabled_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Enabled Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/KeywordRuleResponse"},"title":"Response List Keyword Rules Api Social Rules Keywords Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Social Listening"],"summary":"Create Keyword Rule","description":"Create a new keyword matching rule.","operationId":"create_keyword_rule_api_social_rules_keywords_post","security":[{"APIKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeywordRuleCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeywordRuleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/social/rules/sentiment":{"get":{"tags":["Social Listening"],"summary":"List Sentiment Rules","description":"List sentiment-based alert rules.","operationId":"list_sentiment_rules_api_social_rules_sentiment_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"enabled_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Enabled Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SentimentRuleResponse"},"title":"Response List Sentiment Rules Api Social Rules Sentiment Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Social Listening"],"summary":"Create Sentiment Rule","description":"Create a new sentiment-based alert rule.","operationId":"create_sentiment_rule_api_social_rules_sentiment_post","security":[{"APIKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SentimentRuleCreate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SentimentRuleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/social/messages":{"get":{"tags":["Social Listening"],"summary":"List Messages","description":"List tracked messages.","operationId":"list_messages_api_social_messages_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"source_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by source","title":"Source Id"},"description":"Filter by source"},{"name":"mentions_only","in":"query","required":false,"schema":{"type":"boolean","description":"Only show mentions","default":false,"title":"Mentions Only"},"description":"Only show mentions"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"description":"Days to look back","default":7,"title":"Days"},"description":"Days to look back"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"description":"Max results","default":50,"title":"Limit"},"description":"Max results"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MessageResponse"},"title":"Response List Messages Api Social Messages Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/social/messages/{message_id}":{"get":{"tags":["Social Listening"],"summary":"Get Message","description":"Get a tracked message by ID.","operationId":"get_message_api_social_messages__message_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","title":"Message Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/social/alerts":{"get":{"tags":["Social Listening"],"summary":"List Alerts","description":"List alerts.","operationId":"list_alerts_api_social_alerts_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"source_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by source","title":"Source Id"},"description":"Filter by source"},{"name":"priority","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by priority","title":"Priority"},"description":"Filter by priority"},{"name":"acknowledged","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter by acknowledged status","title":"Acknowledged"},"description":"Filter by acknowledged status"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"description":"Days to look back","default":7,"title":"Days"},"description":"Days to look back"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"Max results","default":50,"title":"Limit"},"description":"Max results"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlertResponse"},"title":"Response List Alerts Api Social Alerts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/social/alerts/{alert_id}":{"get":{"tags":["Social Listening"],"summary":"Get Alert","description":"Get an alert by ID.","operationId":"get_alert_api_social_alerts__alert_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"string","title":"Alert Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/social/alerts/{alert_id}/acknowledge":{"post":{"tags":["Social Listening"],"summary":"Acknowledge Alert","description":"Acknowledge an alert.","operationId":"acknowledge_alert_api_social_alerts__alert_id__acknowledge_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"string","title":"Alert Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertAcknowledge"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/social/stats":{"get":{"tags":["Social Listening"],"summary":"Get Stats","description":"Get social listening statistics.","operationId":"get_stats_api_social_stats_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"description":"Days to aggregate","default":7,"title":"Days"},"description":"Days to aggregate"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/social/summary":{"get":{"tags":["Social Listening"],"summary":"Get Summary","description":"Get a comprehensive monitoring summary.","operationId":"get_summary_api_social_summary_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"description":"Days to summarize","default":7,"title":"Days"},"description":"Days to summarize"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/store/products":{"get":{"tags":["Revenue"],"summary":"Get Store Products","description":"Get products available for purchase.\n\nReturns only active/listed products with public information.\nNo authentication required.","operationId":"get_store_products_api_revenue_store_products_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"}}}}}}},"/api/revenue/store/product/{product_id}":{"get":{"tags":["Revenue"],"summary":"Get Store Product","description":"Get details for a specific product.\n\nNo authentication required.","operationId":"get_store_product_api_revenue_store_product__product_id__get","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"integer","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/checkout":{"post":{"tags":["Revenue"],"summary":"Create Checkout","description":"Create a Stripe Checkout session for purchasing a product.\n\nReturns a checkout URL that the customer should be redirected to.\nNo authentication required - anyone can purchase.","operationId":"create_checkout_api_revenue_checkout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aegis__dashboard__routes__revenue__CheckoutRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/download/{sale_id}":{"get":{"tags":["Revenue"],"summary":"Download Product","description":"Download a purchased product.\n\nValidates that the sale is completed before providing the deliverable.\nThe sale_id or a secure token can be used for access.","operationId":"download_product_api_revenue_download__sale_id__get","parameters":[{"name":"sale_id","in":"path","required":true,"schema":{"type":"string","title":"Sale Id"}},{"name":"token","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/revenue/webhook/stripe":{"post":{"tags":["Revenue"],"summary":"Stripe Webhook","description":"Handle Stripe webhook events for payment completion.\n\nUpdates sale status when payment succeeds.","operationId":"stripe_webhook_api_revenue_webhook_stripe_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue/status":{"get":{"tags":["Revenue"],"summary":"Get Revenue Status","description":"Get current revenue engine status.\n\nReturns engine state, budget status, and pending counts.","operationId":"get_revenue_status_api_revenue_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue/dashboard":{"get":{"tags":["Revenue"],"summary":"Get Revenue Dashboard","description":"Get full revenue dashboard data.\n\nReturns comprehensive metrics for all revenue engine components.","operationId":"get_revenue_dashboard_api_revenue_dashboard_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue/budget":{"get":{"tags":["Revenue"],"summary":"Get Budget Status","description":"Get current budget status.\n\nReturns monthly budget consumption and alerts.","operationId":"get_budget_status_api_revenue_budget_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/revenue/products":{"get":{"tags":["Revenue"],"summary":"Get Products","description":"Get revenue products.\n\nQuery params:\n- status: Filter by status (active, draft, retired)\n- limit: Max results (default: 20)","operationId":"get_products_api_revenue_products_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","title":"Status"}},{"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/signals":{"get":{"tags":["Revenue"],"summary":"Get Signals","description":"Get demand signals.\n\nQuery params:\n- status: Filter by status (new, analyzing, actionable, rejected, converted)\n- limit: Max results (default: 20)","operationId":"get_signals_api_revenue_signals_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","title":"Status"}},{"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/sales":{"get":{"tags":["Revenue"],"summary":"Get Sales","description":"Get recent sales.\n\nQuery params:\n- limit: Max results (default: 20)","operationId":"get_sales_api_revenue_sales_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/tickets":{"get":{"tags":["Revenue"],"summary":"Get Tickets","description":"Get support tickets.\n\nQuery params:\n- status: Filter by status (open, in_progress, resolved, closed)\n- limit: Max results (default: 20)","operationId":"get_tickets_api_revenue_tickets_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","title":"Status"}},{"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"}}}}}}},"/revenue":{"get":{"tags":["Revenue Dashboard"],"summary":"Revenue Dashboard Page","description":"Revenue Engine Dashboard - HTML page.","operationId":"revenue_dashboard_page_revenue_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/store":{"get":{"tags":["store-html"],"summary":"Store Page","description":"Public storefront page for browsing products.","operationId":"store_page_store_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/store/success":{"get":{"tags":["store-html"],"summary":"Checkout Success","description":"Post-purchase success page.","operationId":"checkout_success_store_success_get","parameters":[{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/notifications/send":{"post":{"tags":["Notifications"],"summary":"Send Alert","description":"Send a notification with automatic escalation.\n\nPriority levels determine channel escalation:\n- LOW: Discord only\n- NORMAL: Discord, escalate to Telegram on failure\n- HIGH: Discord + Telegram\n- CRITICAL: All channels including phone","operationId":"send_alert_api_notifications_send_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendNotificationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Send Alert Api Notifications Send Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/notifications/sms":{"post":{"tags":["Notifications"],"summary":"Send Sms Message","description":"Send an SMS message via Vonage.\n\nRequires Vonage credentials to be configured.","operationId":"send_sms_message_api_notifications_sms_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendSMSRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Send Sms Message Api Notifications Sms Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/notifications/voice":{"post":{"tags":["Notifications"],"summary":"Make Voice Call Endpoint","description":"Make a voice call with text-to-speech via Vonage.\n\nThe message will be spoken to the recipient.","operationId":"make_voice_call_endpoint_api_notifications_voice_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendVoiceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Make Voice Call Endpoint Api Notifications Voice Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/notifications/critical":{"post":{"tags":["Notifications"],"summary":"Send Critical","description":"Send a critical alert via all channels (SMS + Voice).\n\nUse sparingly - this will call the phone!","operationId":"send_critical_api_notifications_critical_post","parameters":[{"name":"title","in":"query","required":false,"schema":{"type":"string","default":"Critical Alert Test","title":"Title"}},{"name":"message","in":"query","required":false,"schema":{"type":"string","default":"This is a test of the critical alert system.","title":"Message"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Send Critical Api Notifications Critical Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/notifications/balance":{"get":{"tags":["Notifications"],"summary":"Get Vonage Balance","description":"Check Vonage account balance.\n\nReturns current credit balance for SMS/Voice operations.","operationId":"get_vonage_balance_api_notifications_balance_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Vonage Balance Api Notifications Balance Get"}}}}}}},"/api/notifications/slack":{"post":{"tags":["Notifications"],"summary":"Send Slack","description":"Send a message to Slack.\n\nRequires Slack credentials to be configured via environment variables:\n- SLACK_BOT_TOKEN: Bot OAuth token for full API access\n- SLACK_WEBHOOK_URL: Webhook URL for simple messaging\n- SLACK_DEFAULT_CHANNEL: Default channel ID","operationId":"send_slack_api_notifications_slack_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendSlackRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Send Slack Api Notifications Slack Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/notifications/slack/status":{"get":{"tags":["Notifications"],"summary":"Slack Status","description":"Get Slack integration status and configuration.","operationId":"slack_status_api_notifications_slack_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Slack Status Api Notifications Slack Status Get"}}}}}}},"/api/notifications/test":{"post":{"tags":["Notifications"],"summary":"Test Notifications","description":"Send a test notification to verify channel configuration.\n\nChannels:\n- discord: Test Discord webhook\n- telegram: Test Telegram bot\n- slack: Test Slack integration\n- sms: Test SMS delivery\n- phone: Test voice call\n- all: Test all channels","operationId":"test_notifications_api_notifications_test_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestAlertRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Test Notifications Api Notifications Test Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/notifications/channels":{"get":{"tags":["Notifications"],"summary":"List Channels","description":"List available notification channels and their status.","operationId":"list_channels_api_notifications_channels_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Channels Api Notifications Channels Get"}}}}}}},"/api/monetization/customers":{"post":{"tags":["Monetization"],"summary":"Create Customer","description":"Create a new API customer.\n\nReturns the customer record with a newly generated customer_id.","operationId":"create_customer_api_monetization_customers_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCustomerRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monetization/customers/{customer_id}":{"get":{"tags":["Monetization"],"summary":"Get Customer","description":"Get customer details by customer_id.","operationId":"get_customer_api_monetization_customers__customer_id__get","parameters":[{"name":"customer_id","in":"path","required":true,"schema":{"type":"string","title":"Customer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Monetization"],"summary":"Update Customer","description":"Update customer details.","operationId":"update_customer_api_monetization_customers__customer_id__patch","parameters":[{"name":"customer_id","in":"path","required":true,"schema":{"type":"string","title":"Customer Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCustomerRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monetization/customers/email/{email}":{"get":{"tags":["Monetization"],"summary":"Get Customer By Email","description":"Get customer details by email.","operationId":"get_customer_by_email_api_monetization_customers_email__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/monetization/customers/{customer_id}/upgrade":{"post":{"tags":["Monetization"],"summary":"Upgrade Customer Tier","description":"Upgrade customer to a new tier.","operationId":"upgrade_customer_tier_api_monetization_customers__customer_id__upgrade_post","parameters":[{"name":"customer_id","in":"path","required":true,"schema":{"type":"string","title":"Customer Id"}},{"name":"new_tier","in":"query","required":true,"schema":{"type":"string","title":"New Tier"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monetization/customers/{customer_id}/keys":{"post":{"tags":["Monetization"],"summary":"Create Api Key","description":"Generate a new API key for a customer.\n\nIMPORTANT: The raw key is returned only once and cannot be retrieved later.","operationId":"create_api_key_api_monetization_customers__customer_id__keys_post","parameters":[{"name":"customer_id","in":"path","required":true,"schema":{"type":"string","title":"Customer Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAPIKeyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Monetization"],"summary":"List Api Keys","description":"List all API keys for a customer (without revealing key values).","operationId":"list_api_keys_api_monetization_customers__customer_id__keys_get","parameters":[{"name":"customer_id","in":"path","required":true,"schema":{"type":"string","title":"Customer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monetization/keys/validate":{"post":{"tags":["Monetization"],"summary":"Validate Api Key","description":"Validate an API key and return associated customer info.\n\nReturns scopes, rate limits, and customer_id if valid.","operationId":"validate_api_key_api_monetization_keys_validate_post","parameters":[{"name":"api_key","in":"query","required":true,"schema":{"type":"string","title":"Api Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monetization/keys/{key_id}":{"delete":{"tags":["Monetization"],"summary":"Revoke Api Key","description":"Revoke an API key.","operationId":"revoke_api_key_api_monetization_keys__key_id__delete","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monetization/keys/{key_id}/rotate":{"post":{"tags":["Monetization"],"summary":"Rotate Api Key","description":"Rotate an API key (generate new key, invalidate old one).\n\nIMPORTANT: The new raw key is returned only once.","operationId":"rotate_api_key_api_monetization_keys__key_id__rotate_post","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monetization/products":{"post":{"tags":["Monetization"],"summary":"Create Product","description":"Create a new API product in the catalog.","operationId":"create_product_api_monetization_products_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProductRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Monetization"],"summary":"List Products","description":"List all products with optional filtering.","operationId":"list_products_api_monetization_products_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"product_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Type"}},{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Active Only"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monetization/products/{product_id}":{"get":{"tags":["Monetization"],"summary":"Get Product","description":"Get product details by product_id.","operationId":"get_product_api_monetization_products__product_id__get","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["Monetization"],"summary":"Update Product","description":"Update product details.","operationId":"update_product_api_monetization_products__product_id__patch","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProductRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Monetization"],"summary":"Deactivate Product","description":"Deactivate a product (soft delete).","operationId":"deactivate_product_api_monetization_products__product_id__delete","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monetization/pricing":{"post":{"tags":["Monetization"],"summary":"Set Pricing","description":"Set pricing for a product (optionally per tier).","operationId":"set_pricing_api_monetization_pricing_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPricingRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monetization/pricing/{product_id}":{"get":{"tags":["Monetization"],"summary":"Get Pricing","description":"Get pricing for a product (optionally for specific tier).","operationId":"get_pricing_api_monetization_pricing__product_id__get","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"string","title":"Product Id"}},{"name":"tier","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tier"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monetization/pricing/tiers/{tier}":{"get":{"tags":["Monetization"],"summary":"Get Tier Pricing Table","description":"Get pricing for all products in a specific tier.","operationId":"get_tier_pricing_table_api_monetization_pricing_tiers__tier__get","parameters":[{"name":"tier","in":"path","required":true,"schema":{"type":"string","title":"Tier"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monetization/pricing/calculate":{"post":{"tags":["Monetization"],"summary":"Calculate Cost","description":"Calculate cost for a given quantity of product usage.","operationId":"calculate_cost_api_monetization_pricing_calculate_post","parameters":[{"name":"product_id","in":"query","required":true,"schema":{"type":"string","title":"Product Id"}},{"name":"tier","in":"query","required":true,"schema":{"type":"string","title":"Tier"}},{"name":"quantity","in":"query","required":true,"schema":{"type":"integer","title":"Quantity"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monetization/usage/record":{"post":{"tags":["Monetization"],"summary":"Record Usage","description":"Record a usage event for billing. Requires API key.\n\nEvent types: api_call, llm_tokens, research_query, email_draft, etc.","operationId":"record_usage_api_monetization_usage_record_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aegis__dashboard__routes__monetization__RecordUsageRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/monetization/usage/summary/{customer_id}":{"get":{"tags":["Monetization"],"summary":"Get Usage Summary","description":"Get usage summary for a customer over a period.","operationId":"get_usage_summary_api_monetization_usage_summary__customer_id__get","parameters":[{"name":"customer_id","in":"path","required":true,"schema":{"type":"string","title":"Customer 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/monetization/usage/billing/{customer_id}":{"get":{"tags":["Monetization"],"summary":"Get Billable Amount","description":"Calculate billable amount for a customer.","operationId":"get_billable_amount_api_monetization_usage_billing__customer_id__get","parameters":[{"name":"customer_id","in":"path","required":true,"schema":{"type":"string","title":"Customer Id"}},{"name":"tier","in":"query","required":true,"schema":{"type":"string","title":"Tier"}},{"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/monetization/usage/realtime/{customer_id}":{"get":{"tags":["Monetization"],"summary":"Get Realtime Usage","description":"Get real-time usage for rate limiting.","operationId":"get_realtime_usage_api_monetization_usage_realtime__customer_id__get","parameters":[{"name":"customer_id","in":"path","required":true,"schema":{"type":"string","title":"Customer Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/monetization/setup/initialize":{"post":{"tags":["Monetization"],"summary":"Initialize Monetization Tables","description":"Initialize all monetization database tables.","operationId":"initialize_monetization_tables_api_monetization_setup_initialize_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/monetization/setup/seed-products":{"post":{"tags":["Monetization"],"summary":"Seed Default Products","description":"Seed the product catalog with default Aegis API products.","operationId":"seed_default_products_api_monetization_setup_seed_products_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/monetization/setup/seed-pricing":{"post":{"tags":["Monetization"],"summary":"Seed Default Pricing","description":"Seed default pricing for all products across tiers.","operationId":"seed_default_pricing_api_monetization_setup_seed_pricing_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/services/research/generate":{"post":{"tags":["Outcome Services"],"summary":"Generate Research Report","description":"Generate a research report on a given topic.\n\nPricing:\n- basic: $10 - Quick overview with key points\n- standard: $25 - Detailed analysis with sources\n- comprehensive: $50 - In-depth report with recommendations","operationId":"generate_research_report_api_services_research_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchReportRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchReportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/services/research/reports":{"get":{"tags":["Outcome Services"],"summary":"List Research Reports","description":"List previously generated research reports for the customer.","operationId":"list_research_reports_api_services_research_reports_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Research Reports Api Services Research Reports Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/research/reports/{report_id}":{"get":{"tags":["Outcome Services"],"summary":"Get Research Report","description":"Get a specific research report by ID.","operationId":"get_research_report_api_services_research_reports__report_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"report_id","in":"path","required":true,"schema":{"type":"string","title":"Report Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/email/generate":{"post":{"tags":["Outcome Services"],"summary":"Generate Email Draft","description":"Generate a professional email draft.\n\nPricing by length:\n- short: $0.50 - Brief message (1-2 paragraphs)\n- medium: $1.00 - Standard email (3-4 paragraphs)\n- long: $2.00 - Detailed email (5+ paragraphs)","operationId":"generate_email_draft_api_services_email_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDraftRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailDraftResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/services/email/drafts":{"get":{"tags":["Outcome Services"],"summary":"List Email Drafts","description":"List previously generated email drafts for the customer.","operationId":"list_email_drafts_api_services_email_drafts_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"title":"Response List Email Drafts Api Services Email Drafts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/email/drafts/{draft_id}":{"get":{"tags":["Outcome Services"],"summary":"Get Email Draft","description":"Get a specific email draft by ID.","operationId":"get_email_draft_api_services_email_drafts__draft_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"draft_id","in":"path","required":true,"schema":{"type":"string","title":"Draft Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/services/quota":{"get":{"tags":["Outcome Services"],"summary":"Get Service Quota","description":"Get current service quota status for the customer.","operationId":"get_service_quota_api_services_quota_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceQuotaResponse"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/services/pricing":{"get":{"tags":["Outcome Services"],"summary":"Get Service Pricing","description":"Get pricing information for all outcome-based services including payment links.","operationId":"get_service_pricing_api_services_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/vonage/whatsapp/inbound":{"post":{"tags":["vonage"],"summary":"Whatsapp Inbound","description":"Receive inbound WhatsApp messages from Vonage.\n\nVonage sends POST requests here when messages arrive.\nExpected format:\n{\n    \"message_uuid\": \"...\",\n    \"from\": \"447490195079\",\n    \"to\": \"447441443388\",\n    \"timestamp\": \"...\",\n    \"message_type\": \"text\",\n    \"text\": \"status\",\n    \"channel\": \"whatsapp\"\n}","operationId":"whatsapp_inbound_api_vonage_whatsapp_inbound_post","parameters":[{"name":"X-Vonage-Signature","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vonage-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vonage/whatsapp/status":{"post":{"tags":["vonage"],"summary":"Whatsapp Status","description":"Receive message status updates from Vonage.\n\nVonage sends POST requests here for delivery receipts.\nExpected format:\n{\n    \"message_uuid\": \"...\",\n    \"to\": \"447490195079\",\n    \"from\": \"447441443388\",\n    \"timestamp\": \"...\",\n    \"status\": \"delivered\" | \"read\" | \"failed\",\n    \"channel\": \"whatsapp\"\n}","operationId":"whatsapp_status_api_vonage_whatsapp_status_post","parameters":[{"name":"X-Vonage-Signature","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Vonage-Signature"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["vonage"],"summary":"Whatsapp Config Status","description":"Get WhatsApp integration status and configuration.","operationId":"whatsapp_config_status_api_vonage_whatsapp_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/vonage/whatsapp/send":{"post":{"tags":["vonage"],"summary":"Send Whatsapp","description":"Send a WhatsApp message.\n\nAdmin endpoint for testing and notifications.","operationId":"send_whatsapp_api_vonage_whatsapp_send_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendWhatsAppRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vonage/whatsapp/sessions":{"get":{"tags":["vonage"],"summary":"List Whatsapp Sessions","description":"List active WhatsApp sessions.","operationId":"list_whatsapp_sessions_api_vonage_whatsapp_sessions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/vonage/whatsapp/messages":{"get":{"tags":["vonage"],"summary":"List Whatsapp Messages","description":"List recent WhatsApp messages.","operationId":"list_whatsapp_messages_api_vonage_whatsapp_messages_get","parameters":[{"name":"phone_number","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Phone Number"}},{"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/vonage/whatsapp/test":{"post":{"tags":["vonage"],"summary":"Test Whatsapp","description":"Send a test message to verify WhatsApp integration.\n\nSends a test message to the first authorized number.","operationId":"test_whatsapp_api_vonage_whatsapp_test_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/vonage/configure-webhooks":{"post":{"tags":["vonage"],"summary":"Configure Vonage Webhooks","description":"Configure Vonage application webhooks via API.\n\nThis updates the Vonage application to use our webhook URLs.","operationId":"configure_vonage_webhooks_api_vonage_configure_webhooks_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookConfigRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vonage/sms/inbound":{"get":{"tags":["vonage"],"summary":"Sms Inbound Get","description":"Handle GET request for SMS webhook.\n\nVonage's legacy SMS API sends webhooks as GET requests with query parameters.","operationId":"sms_inbound_get_api_vonage_sms_inbound_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["vonage"],"summary":"Sms Inbound","description":"Receive inbound SMS messages from Vonage.\n\nVonage sends POST requests here when SMS messages arrive.\nExpected format (form-encoded or JSON):\n{\n    \"msisdn\": \"447490195079\",  # Sender's number\n    \"to\": \"447441443388\",       # Vonage number\n    \"messageId\": \"...\",\n    \"text\": \"Hello\",\n    \"type\": \"text\",\n    \"keyword\": \"HELLO\",\n    \"message-timestamp\": \"...\"\n}","operationId":"sms_inbound_api_vonage_sms_inbound_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/vonage/sms/status":{"post":{"tags":["vonage"],"summary":"Sms Status","description":"Receive SMS delivery receipts from Vonage.\n\nExpected format:\n{\n    \"msisdn\": \"...\",\n    \"to\": \"...\",\n    \"messageId\": \"...\",\n    \"status\": \"delivered\" | \"failed\" | ...\n}","operationId":"sms_status_api_vonage_sms_status_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/vonage/voice/answer":{"post":{"tags":["vonage-voice"],"summary":"Handle Answer","description":"Handle incoming voice call - return initial NCCO.\n\nVonage calls this URL when a call is answered.","operationId":"handle_answer_api_vonage_voice_answer_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/vonage/voice/input":{"post":{"tags":["vonage-voice"],"summary":"Handle Input","description":"Handle speech recognition or DTMF input result.\n\nVonage calls this URL with ASR or DTMF results.","operationId":"handle_input_api_vonage_voice_input_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/vonage/voice/event":{"post":{"tags":["vonage-voice"],"summary":"Handle Event","description":"Handle call events (started, ringing, answered, completed, etc.)","operationId":"handle_event_api_vonage_voice_event_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/vonage/voice/recording":{"post":{"tags":["vonage-voice"],"summary":"Handle Recording","description":"Handle recording completion webhook.\n\nVonage calls this URL when a recording is ready for download.","operationId":"handle_recording_api_vonage_voice_recording_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/vonage/voice/health":{"get":{"tags":["vonage-voice"],"summary":"Voice Health","description":"Health check for voice interface.","operationId":"voice_health_api_vonage_voice_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/stripe/webhook":{"post":{"tags":["intel"],"summary":"Stripe Webhook","description":"Handle Stripe webhook events for Intel subscriptions.\n\nEvents handled:\n- checkout.session.completed: New subscription created\n- customer.subscription.updated: Subscription modified\n- customer.subscription.deleted: Subscription cancelled\n- invoice.payment_failed: Payment failed","operationId":"stripe_webhook_api_stripe_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/async-tasks":{"post":{"tags":["Async Tasks"],"summary":"Create Task","description":"Create a new async task.\n\nReturns task ID and initial state for polling.","operationId":"create_task_api_async_tasks_post","security":[{"APIKeyHeader":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTaskRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["Async Tasks"],"summary":"List Tasks","description":"List async tasks for the current user.\n\nQuery params:\n    state: Filter by state (working, input_required, completed, failed, cancelled)\n    task_type: Filter by task type\n    limit: Max results (default: 50)","operationId":"list_tasks_api_async_tasks_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"}},{"name":"task_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task 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/async-tasks/awaiting-input":{"get":{"tags":["Async Tasks"],"summary":"Get Tasks Awaiting Input","description":"Get all tasks awaiting user input.\n\nThis is a convenience endpoint for checking if any tasks need attention.","operationId":"get_tasks_awaiting_input_api_async_tasks_awaiting_input_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/async-tasks/stats":{"get":{"tags":["Async Tasks"],"summary":"Get Task Stats","description":"Get task statistics for the current user.","operationId":"get_task_stats_api_async_tasks_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/async-tasks/{task_id}":{"get":{"tags":["Async Tasks"],"summary":"Get Task","description":"Get task status by ID.\n\nReturns full task state including:\n- Current state\n- Progress (if working)\n- Input request (if input_required)\n- Result (if completed)\n- Error (if failed)","operationId":"get_task_api_async_tasks__task_id__get","security":[{"APIKeyHeader":[]}],"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/async-tasks/{task_id}/result":{"get":{"tags":["Async Tasks"],"summary":"Get Task Result","description":"Get task result (only available for completed tasks).\n\nReturns the result data and artifacts.","operationId":"get_task_result_api_async_tasks__task_id__result_get","security":[{"APIKeyHeader":[]}],"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/async-tasks/{task_id}/input":{"post":{"tags":["Async Tasks"],"summary":"Provide Input","description":"Provide input for a task awaiting input.\n\nTransitions the task back to 'working' state.","operationId":"provide_input_api_async_tasks__task_id__input_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvideInputRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/async-tasks/{task_id}/cancel":{"post":{"tags":["Async Tasks"],"summary":"Cancel Task","description":"Cancel a running task.\n\nOnly works for tasks in active states (working, input_required).","operationId":"cancel_task_api_async_tasks__task_id__cancel_post","security":[{"APIKeyHeader":[]}],"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/async-tasks/{task_id}/progress":{"post":{"tags":["Async Tasks"],"summary":"Update Progress","description":"Update task progress (for task workers).\n\nProgress should be 0-100 percentage.","operationId":"update_progress_api_async_tasks__task_id__progress_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProgressRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/async-tasks/{task_id}/request-input":{"post":{"tags":["Async Tasks"],"summary":"Request Input","description":"Request input from user (for task workers).\n\nTransitions task to 'input_required' state.\n\nRequest body:\n    prompt: str - The question to ask the user\n    options: list[str] - Optional predefined choices\n    timeout_seconds: int - Timeout for waiting (default: 300)","operationId":"request_input_api_async_tasks__task_id__request_input_post","security":[{"APIKeyHeader":[]}],"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/async-tasks/{task_id}/complete":{"post":{"tags":["Async Tasks"],"summary":"Complete Task","description":"Mark task as completed (for task workers).","operationId":"complete_task_api_async_tasks__task_id__complete_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteTaskRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/async-tasks/{task_id}/fail":{"post":{"tags":["Async Tasks"],"summary":"Fail Task","description":"Mark task as failed (for task workers).","operationId":"fail_task_api_async_tasks__task_id__fail_post","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FailTaskRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/async-tasks/cleanup":{"post":{"tags":["Async Tasks"],"summary":"Cleanup Tasks","description":"Cleanup expired and stale tasks (admin only).","operationId":"cleanup_tasks_api_async_tasks_cleanup_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/v1/email-triage":{"post":{"tags":["Email Triage API"],"summary":"Triage Single Email","description":"Triage a single email with AI-powered classification.\n\n## Triage Modes\n\n| Mode | Speed | Credits | Features |\n|------|-------|---------|----------|\n| quick | ~100ms | 0.5 | Rule-based classification only |\n| standard | ~2s | 1 | AI classification + action items |\n| deep | ~5s | 3 | Full analysis + response suggestions |\n\n## Response\n\nReturns structured triage results with:\n- Priority (urgent, high, normal, low, archive)\n- Category (action_required, waiting_for, fyi, etc.)\n- Summary (1-2 sentences)\n- Action items (if extracted)\n- Response suggestions (deep mode only)\n\n## Caching\n\nResults are cached for 24 hours based on subject+sender+body hash.\nSet `use_cache: false` to force fresh analysis.","operationId":"triage_single_email_api_v1_email_triage_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageRequest"}}},"required":true},"responses":{"200":{"description":"Email triaged successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageResponse"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageErrorResponse"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/v1/email-triage/batch":{"post":{"tags":["Email Triage API"],"summary":"Triage Multiple Emails","description":"Triage multiple emails in a single request.\n\n## Batch Limits\n\n| Tier | Max Batch Size |\n|------|----------------|\n| free | 10 |\n| starter | 50 |\n| pro | 100 |\n| enterprise | 100 |\n\n## Credits\n\nCredits are charged per email based on mode:\n- quick: 0.5 credits/email\n- standard: 1 credit/email\n- deep: 3 credits/email\n\nCached results don't consume credits.","operationId":"triage_batch_api_v1_email_triage_batch_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BatchEmailTriageRequest"}}},"required":true},"responses":{"200":{"description":"Batch triage completed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageResponse"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageErrorResponse"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/v1/email-triage/credits":{"get":{"tags":["Email Triage API"],"summary":"Check Credit Balance","description":"Get your current credit balance and usage statistics.","operationId":"get_credits_api_v1_email_triage_credits_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageCreditsResponse"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageErrorResponse"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageErrorResponse"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/v1/email-triage/history":{"get":{"tags":["Email Triage API"],"summary":"Triage History","description":"Get your email triage history.","operationId":"get_history_api_v1_email_triage_history_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EmailTriageListItem"},"title":"Response Get History Api V1 Email Triage History Get"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageErrorResponse"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/email-triage/pricing":{"get":{"tags":["Email Triage API"],"summary":"Pricing Information","description":"Get current pricing tiers and credit costs.","operationId":"get_pricing_api_v1_email_triage_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageErrorResponse"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageErrorResponse"}}}}}}},"/api/v1/email-triage/{triage_id}":{"get":{"tags":["Email Triage API"],"summary":"Get Triage Result","description":"Retrieve a specific triage result by ID.","operationId":"get_triage_api_v1_email_triage__triage_id__get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"triage_id","in":"path","required":true,"schema":{"type":"string","title":"Triage Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageResponse"}}}},"401":{"description":"Invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageErrorResponse"}}}},"429":{"description":"Rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageErrorResponse"}}}},"402":{"description":"Insufficient credits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailTriageErrorResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/traces/health":{"get":{"tags":["tracing"],"summary":"Tracing Health","description":"Health check for tracing API.","operationId":"tracing_health_api_traces_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/traces/stats/summary":{"get":{"tags":["tracing"],"summary":"Get Tracing Stats","description":"Get aggregated tracing statistics.","operationId":"get_tracing_stats_api_traces_stats_summary_get","parameters":[{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Start time (defaults to last 24 hours)","title":"Since"},"description":"Start time (defaults to last 24 hours)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TracingStatsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/traces/":{"get":{"tags":["tracing"],"summary":"List Traces","description":"List execution traces with optional filtering.\n\nSupports filtering by status, workflow name, and time range.","operationId":"list_traces_api_traces__get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status","title":"Status"},"description":"Filter by status"},{"name":"workflow_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by workflow name","title":"Workflow Name"},"description":"Filter by workflow name"},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"Start time filter","title":"Since"},"description":"Start time filter"},{"name":"until","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"description":"End time filter","title":"Until"},"description":"End time filter"},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Page size","default":20,"title":"Page Size"},"description":"Page size"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/traces/workflow/{workflow_id}/latest":{"get":{"tags":["tracing"],"summary":"Get Latest Workflow Trace","description":"Get the most recent trace for a specific workflow.","operationId":"get_latest_workflow_trace_api_traces_workflow__workflow_id__latest_get","parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/traces/{trace_id}":{"get":{"tags":["tracing"],"summary":"Get Trace","description":"Get detailed trace information including all spans.","operationId":"get_trace_api_traces__trace_id__get","parameters":[{"name":"trace_id","in":"path","required":true,"schema":{"type":"string","title":"Trace Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TraceDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/intel":{"get":{"tags":["intel"],"summary":"Intel Dashboard","description":"Intel dashboard page (accessible at /intel on main domain).","operationId":"intel_dashboard_intel_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/intel/briefing/{filename}":{"get":{"tags":["intel"],"summary":"Get Briefing","description":"Get a specific briefing content.\n\nSupports two auth methods:\n1. API key via Authorization header: `Authorization: Bearer intel_xxx`\n2. Email query param: `?email=you@example.com`\n\nTier enforcement:\n- Explorer (free): Quick depth briefings only, 3/month\n- Regional ($79/mo): All depths for 1 region\n- Global ($199/mo): All depths for all 5 regions\n- Enterprise ($499/mo): Everything + custom topics","operationId":"get_briefing_api_intel_briefing__filename__get","parameters":[{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}},{"name":"email","in":"query","required":false,"schema":{"type":"string","title":"Email"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/intel/generate":{"post":{"tags":["intel"],"summary":"Generate Briefing","description":"Generate a new intelligence briefing.\n\nThis is a placeholder that returns immediately. The actual generation\nshould be triggered via Claude Code's /geoint skill or Claude Agent SDK.","operationId":"generate_briefing_api_intel_generate_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BriefingRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/intel/briefings":{"get":{"tags":["intel"],"summary":"List Briefings","description":"List all briefings as JSON.","operationId":"list_briefings_api_intel_briefings_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/intel/briefings":{"get":{"tags":["intel"],"summary":"List Briefings V1","description":"List briefings (metered, requires API key).\n\nUsage: `curl -H 'Authorization: Bearer intel_xxx' .../api/v1/intel/briefings`","operationId":"list_briefings_v1_api_v1_intel_briefings_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":20,"title":"Limit"}},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"}},{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/intel/regions":{"get":{"tags":["intel"],"summary":"List Regions V1","description":"List available Intel regions (metered, requires API key).","operationId":"list_regions_v1_api_v1_intel_regions_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/intel/usage":{"get":{"tags":["intel"],"summary":"Get Api Usage","description":"Check your API key usage and limits.","operationId":"get_api_usage_api_v1_intel_usage_get","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/intel/notebooks":{"get":{"tags":["intel"],"summary":"List Notebooks","description":"List available regional notebooks.","operationId":"list_notebooks_api_intel_notebooks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/intel/product":{"get":{"tags":["intel"],"summary":"Intel Product Page","description":"Public-facing intel product landing page.","operationId":"intel_product_page_intel_product_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/intel/subscribe":{"post":{"tags":["intel"],"summary":"Subscribe To Intel","description":"Subscribe email to intel mailing list.","operationId":"subscribe_to_intel_api_intel_subscribe_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscribeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/intel/sample-pdf":{"get":{"tags":["intel"],"summary":"Get Sample Pdf","description":"Download sample intelligence report PDF.","operationId":"get_sample_pdf_api_intel_sample_pdf_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/intel/deep-briefing":{"post":{"tags":["intel"],"summary":"Create Deep Briefing","description":"Generate a comprehensive deep intelligence briefing.\n\nThis endpoint queues a background job to generate an 8,000+ word briefing\nusing either the Perplexity multi-query pipeline (~$1-2) or Gemini Deep\nResearch API (~$3-5).\n\n**Tier Enforcement:**\n- Explorer (free): Not available\n- Regional: 1 deep briefing/month\n- Global/Enterprise: Unlimited deep briefings\n\nReturns a job ID that can be polled for status and results.","operationId":"create_deep_briefing_api_intel_deep_briefing_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeepBriefingRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeepBriefingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/intel/deep-briefing/{job_id}":{"get":{"tags":["intel"],"summary":"Get Deep Briefing Status","description":"Get the status and content of a deep briefing job.\n\nReturns the briefing content when status is 'completed'.","operationId":"get_deep_briefing_status_api_intel_deep_briefing__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/intel/deep-briefings":{"get":{"tags":["intel"],"summary":"List Deep Briefings","description":"List recent deep briefing jobs.","operationId":"list_deep_briefings_api_intel_deep_briefings_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/intel/digest/send":{"post":{"tags":["intel"],"summary":"Send Digests","description":"Send digest emails to all subscribers (admin endpoint).\n\nRequires admin key for security. This endpoint is typically called\nby a cron job but can be triggered manually for testing.\n\n**Usage:**\n    POST /api/intel/digest/send\n    {\n        \"frequency\": \"weekly\",\n        \"admin_key\": \"YOUR_ADMIN_KEY\"\n    }","operationId":"send_digests_api_intel_digest_send_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DigestSendRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/intel/digest/preview":{"get":{"tags":["intel"],"summary":"Preview Digest","description":"Preview digest content without sending.\n\nUseful for testing digest generation before sending to subscribers.\n\n**Usage:**\n    GET /api/intel/digest/preview?frequency=weekly&region=latin-america","operationId":"preview_digest_api_intel_digest_preview_get","parameters":[{"name":"frequency","in":"query","required":false,"schema":{"type":"string","default":"weekly","title":"Frequency"}},{"name":"region","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"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"}}}}}}},"/api/intel/subscribers":{"get":{"tags":["intel"],"summary":"List Subscribers","description":"Get list of all active subscribers (admin endpoint).\n\n**Usage:**\n    GET /api/intel/subscribers","operationId":"list_subscribers_api_intel_subscribers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/intel/region":{"post":{"tags":["intel"],"summary":"Set Region Preference","description":"Set region preference for Regional tier subscribers.\n\nWhen users subscribe to Regional tier, they need to select which region\nthey want briefings for. This endpoint sets that preference.\n\n**Usage:**\n    POST /api/intel/region\n    {\n        \"email\": \"user@example.com\",\n        \"region\": \"latin-america\"\n    }\n\n**Available regions:**\n    - latin-america\n    - africa\n    - asia-pacific\n    - eastern-europe\n    - middle-east","operationId":"set_region_preference_api_intel_region_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegionPreferenceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/robots.txt":{"get":{"tags":["SEO"],"summary":"Robots Txt","description":"Serve robots.txt for search engine crawlers.\n\nAllows all crawlers, points to sitemap.","operationId":"robots_txt_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}}}}},"/sitemap.xml":{"get":{"tags":["SEO"],"summary":"Sitemap Xml","description":"Generate dynamic sitemap.xml with all public pages and blog posts.","operationId":"sitemap_xml_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/orchestration":{"get":{"tags":["orchestration"],"summary":"Get Orchestration Dashboard","description":"Get comprehensive orchestration dashboard data.","operationId":"get_orchestration_dashboard_api_orchestration_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/orchestration/agents":{"get":{"tags":["orchestration"],"summary":"List Agents Endpoint","description":"List live agents with optional filtering.","operationId":"list_agents_endpoint_api_orchestration_agents_get","parameters":[{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by state","title":"State"},"description":"Filter by state"},{"name":"template","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by template","title":"Template"},"description":"Filter by template"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/orchestration/templates":{"get":{"tags":["orchestration"],"summary":"List Templates","description":"List all available templates with performance metrics.","operationId":"list_templates_api_orchestration_templates_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/orchestration/workflows":{"get":{"tags":["orchestration"],"summary":"List Workflows Endpoint","description":"List stored workflows with optional filtering.","operationId":"list_workflows_endpoint_api_orchestration_workflows_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status","title":"Status"},"description":"Filter by status"},{"name":"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/orchestration/workflows/{workflow_id}":{"get":{"tags":["orchestration"],"summary":"Get Workflow Detail","description":"Get detailed state for a specific workflow.","operationId":"get_workflow_detail_api_orchestration_workflows__workflow_id__get","parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/orchestration/metrics/summary":{"get":{"tags":["orchestration"],"summary":"Get Metrics Summary","description":"Get aggregated orchestration metrics.","operationId":"get_metrics_summary_api_orchestration_metrics_summary_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/store/products":{"get":{"tags":["store-api"],"summary":"List Products","description":"List available products for purchase.\n\nArgs:\n    category: Filter by category (research, content, tools, services)\n    product_type: Filter by type (report, package, subscription, analysis)\n    limit: Maximum products to return\n\nReturns:\n    List of products with pricing","operationId":"list_products_api_store_products_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"}},{"name":"product_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product 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/store/product/{product_id}":{"get":{"tags":["store-api"],"summary":"Get Product","description":"Get details for a specific product.\n\nArgs:\n    product_id: Product ID\n\nReturns:\n    Product details including full description","operationId":"get_product_api_store_product__product_id__get","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"integer","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/store/checkout":{"post":{"tags":["store-api"],"summary":"Create Checkout Session","description":"Create a Stripe checkout session for a product.\n\nArgs:\n    checkout: CheckoutRequest with product_id and optional email\n\nReturns:\n    checkout_url: URL to redirect user to Stripe Checkout\n    session_id: Stripe session ID for verification","operationId":"create_checkout_session_api_store_checkout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aegis__dashboard__routes__store__CheckoutRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/store/download":{"get":{"tags":["store-api"],"summary":"Get Download","description":"Get download details for a purchase.\n\nArgs:\n    session_id: Stripe checkout session ID\n\nReturns:\n    Download URL or status if file is pending generation","operationId":"get_download_api_store_download_get","parameters":[{"name":"session_id","in":"query","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/store/checkout/{product_id}":{"get":{"tags":["store-html"],"summary":"Checkout Page","description":"Product checkout page - creates Stripe session and redirects.","operationId":"checkout_page_store_checkout__product_id__get","parameters":[{"name":"product_id","in":"path","required":true,"schema":{"type":"integer","title":"Product Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/store/download":{"get":{"tags":["store-html"],"summary":"Download Page","description":"Download page for purchased products.\nVerifies payment and serves the file.","operationId":"download_page_store_download_get","parameters":[{"name":"session_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/files/share":{"post":{"tags":["Files"],"summary":"Create Share Link","description":"Create a shareable magic link for a file.\n\nThe link expires after the specified hours (default 24, max 168).\nOnly files under ~/memory or aegis-core/data can be shared.\n\nReturns a URL that can be opened on any device without authentication.","operationId":"create_share_link_api_files_share_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/files/share/{token}":{"get":{"tags":["Files"],"summary":"Get Shared File","description":"Access a shared file via magic link token.\n\nBy default, shows a viewer UI with markdown rendering.\nUse ?raw=true for raw content, ?download=true for direct download.","operationId":"get_shared_file_api_files_share__token__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}},{"name":"raw","in":"query","required":false,"schema":{"type":"boolean","description":"Return raw file content","default":false,"title":"Raw"},"description":"Return raw file content"},{"name":"download","in":"query","required":false,"schema":{"type":"boolean","description":"Download file directly","default":false,"title":"Download"},"description":"Download file directly"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["Files"],"summary":"Revoke Share Link","description":"Revoke a share link before it expires.","operationId":"revoke_share_link_api_files_share__token__delete","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/files/shares":{"get":{"tags":["Files"],"summary":"List Active Shares","description":"List all active (non-expired) share links.\n\nReturns metadata only, not the actual tokens for security.","operationId":"list_active_shares_api_files_shares_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/files/annas-archive/{filename}":{"get":{"tags":["Files"],"summary":"Serve Annas Archive File","description":"Serve downloaded books from Anna's Archive directly.\n\nThese files are publicly accessible by filename for WhatsApp attachment sending.\nThe directory is restricted to prevent path traversal.\n\nArgs:\n    filename: The file name within annas-archive directory\n    download: If True, force download; if False, try to display inline","operationId":"serve_annas_archive_file_api_files_annas_archive__filename__get","parameters":[{"name":"filename","in":"path","required":true,"schema":{"type":"string","title":"Filename"}},{"name":"download","in":"query","required":false,"schema":{"type":"boolean","description":"Force download (vs inline view)","default":true,"title":"Download"},"description":"Force download (vs inline view)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/reddit/query/pain-points":{"get":{"tags":["Reddit Intelligence"],"summary":"Get Pain Point Query","description":"Generate a search query for finding pain points about a topic.\n\nReturns a query string optimized for finding complaints, frustrations,\nand negative experiences. Use this query with the Reddit MCP search tool.\n\n**Free**: No credits consumed.\n\nExample: `/api/reddit/query/pain-points?topic=Notion`","operationId":"get_pain_point_query_api_reddit_query_pain_points_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"topic","in":"query","required":true,"schema":{"type":"string","minLength":1,"description":"Product/service/tool name","title":"Topic"},"description":"Product/service/tool name"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchQueryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/reddit/query/demand-signals":{"get":{"tags":["Reddit Intelligence"],"summary":"Get Demand Signal Query","description":"Generate a search query for finding demand signals.\n\nReturns a query optimized for finding \"looking for\", \"need a\",\n\"recommend\" type posts - signals of buying intent.\n\n**Free**: No credits consumed.\n\nExample: `/api/reddit/query/demand-signals?category=changelog%20tool`","operationId":"get_demand_signal_query_api_reddit_query_demand_signals_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"category","in":"query","required":true,"schema":{"type":"string","minLength":1,"description":"Product category (e.g., 'changelog tool')","title":"Category"},"description":"Product category (e.g., 'changelog tool')"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchQueryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/reddit/query/competitor":{"get":{"tags":["Reddit Intelligence"],"summary":"Get Competitor Intel Query","description":"Generate a search query for competitive intelligence.\n\nReturns a query for finding reviews, complaints, comparisons,\nand \"alternative to\" discussions about a competitor.\n\n**Free**: No credits consumed.\n\nExample: `/api/reddit/query/competitor?competitor=Beamer`","operationId":"get_competitor_intel_query_api_reddit_query_competitor_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"competitor","in":"query","required":true,"schema":{"type":"string","minLength":1,"description":"Competitor name","title":"Competitor"},"description":"Competitor name"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchQueryResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/reddit/subreddits":{"get":{"tags":["Reddit Intelligence"],"summary":"List Subreddits","description":"Get recommended subreddits for research.\n\nIf domain is specified, returns subreddits for that domain.\nOtherwise returns all available domains.\n\n**Free**: No credits consumed.","operationId":"list_subreddits_api_reddit_subreddits_get","security":[{"APIKeyHeader":[]}],"parameters":[{"name":"domain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Domain to get subreddits for (tech, ai, saas, marketing, finance, security)","title":"Domain"},"description":"Domain to get subreddits for (tech, ai, saas, marketing, finance, security)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubredditListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/reddit/patterns":{"get":{"tags":["Reddit Intelligence"],"summary":"Get Pain Patterns","description":"Get the list of pain patterns used for opportunity scoring.\n\nThese patterns are used to identify high-intent posts.\n\n**Free**: No credits consumed.","operationId":"get_pain_patterns_api_reddit_patterns_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Pain Patterns Api Reddit Patterns Get"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/reddit":{"get":{"tags":["Reddit Intelligence"],"summary":"Reddit Intel Info","description":"Reddit Intelligence API information.\n\nReturns available endpoints and their purposes.","operationId":"reddit_intel_info_api_reddit_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Reddit Intel Info Api Reddit Get"}}}}},"security":[{"APIKeyHeader":[]}]}},"/api/proactive":{"get":{"tags":["proactive"],"summary":"Proactive Info","description":"Get proactive system overview.","operationId":"proactive_info_api_proactive_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/proactive/status":{"get":{"tags":["proactive"],"summary":"Get Status","description":"Get current proactive system status.","operationId":"get_status_api_proactive_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/proactive/effectiveness":{"get":{"tags":["proactive"],"summary":"Get Effectiveness","description":"Get effectiveness report for past N days.","operationId":"get_effectiveness_api_proactive_effectiveness_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":7,"title":"Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/proactive/patterns":{"get":{"tags":["proactive"],"summary":"List Patterns","description":"List learned patterns.","operationId":"list_patterns_api_proactive_patterns_get","parameters":[{"name":"min_confidence","in":"query","required":false,"schema":{"type":"number","default":0.5,"title":"Min Confidence"}},{"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/proactive/learn":{"post":{"tags":["proactive"],"summary":"Trigger Learning","description":"Trigger pattern learning cycle.","operationId":"trigger_learning_api_proactive_learn_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/proactive/predictions":{"get":{"tags":["proactive"],"summary":"Get Predictions","description":"Get predictions for current time and context.","operationId":"get_predictions_api_proactive_predictions_get","parameters":[{"name":"recent_event","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recent Event"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/proactive/external/scan":{"post":{"tags":["proactive"],"summary":"Run External Scan","description":"Run external opportunity scan with provided data.\n\nThis endpoint processes data that was already fetched via MCP tools.\nUseful for agent-triggered scans.","operationId":"run_external_scan_api_proactive_external_scan_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExternalScanRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/proactive/external/status":{"get":{"tags":["proactive"],"summary":"External Scan Status","description":"Get external scanning status.","operationId":"external_scan_status_api_proactive_external_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/proactive/external/config":{"get":{"tags":["proactive"],"summary":"Get Scan Config","description":"Get current external scan configuration.","operationId":"get_scan_config_api_proactive_external_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/proactive/external/init":{"post":{"tags":["proactive"],"summary":"Init External Tables","description":"Initialize external scanning database tables.","operationId":"init_external_tables_api_proactive_external_init_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/proactive/detect":{"post":{"tags":["proactive"],"summary":"Trigger Detection","description":"Trigger internal opportunity detection cycle.","operationId":"trigger_detection_api_proactive_detect_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/proactive/feedback":{"post":{"tags":["proactive"],"summary":"Process Feedback","description":"Trigger feedback processing cycle.","operationId":"process_feedback_api_proactive_feedback_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/proactive/calendar/sync":{"post":{"tags":["proactive"],"summary":"Sync Calendar","description":"Sync calendar events from Google Workspace data.\n\nPass the result of mcp__google-workspace__calendar_get_events here.","operationId":"sync_calendar_api_proactive_calendar_sync_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CalendarSyncRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/proactive/calendar/status":{"get":{"tags":["proactive"],"summary":"Get Calendar Status","description":"Get calendar sync status and upcoming events.","operationId":"get_calendar_status_api_proactive_calendar_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/proactive/calendar/user":{"get":{"tags":["proactive"],"summary":"Get Calendar User","description":"Get configured calendar user.","operationId":"get_calendar_user_api_proactive_calendar_user_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/proactive/calendar/old":{"delete":{"tags":["proactive"],"summary":"Delete Old Events","description":"Delete calendar events older than N days.","operationId":"delete_old_events_api_proactive_calendar_old_delete","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/webhooks/ideas-to-render":{"post":{"tags":["ideas-webhook"],"summary":"Ideas Webhook","description":"Receive Discord webhook from #ideas-to-render channel.\n\nExpected payload format (from Discord webhook):\n{\n    \"content\": \"message content here\",\n    \"author\": {\n        \"username\": \"username\",\n        \"id\": \"user_id\"\n    },\n    \"channel_id\": \"1461524429145112606\",\n    \"timestamp\": \"2026-01-16T00:00:00.000Z\"\n}\n\nThe webhook processes the content asynchronously and posts results back to the channel.\n\nReturns immediately with 200 OK to acknowledge receipt.","operationId":"ideas_webhook_api_webhooks_ideas_to_render_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/webhooks/ideas-to-render/info":{"get":{"tags":["ideas-webhook"],"summary":"Get Webhook Info","description":"Get webhook configuration information.","operationId":"get_webhook_info_api_webhooks_ideas_to_render_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/webhooks/ideas-to-render/test":{"post":{"tags":["ideas-webhook"],"summary":"Test Webhook","description":"Test the ideas-to-render webhook processing.\n\nBody: {\n    \"content\": \"test content here\"\n}\n\nProcesses synchronously and returns the result.","operationId":"test_webhook_api_webhooks_ideas_to_render_test_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/intel/pricing":{"get":{"summary":"Get Pricing","description":"Get pricing tiers for Intel API access.\n\nReturns available tiers with payment links.","operationId":"get_pricing_api_intel_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/intel/key/create":{"post":{"summary":"Create Api Key","description":"Create a new API key for Intel access.\n\nIn production, this would be called after Stripe payment confirmation.\nFor now, it creates keys freely for testing.","operationId":"create_api_key_api_intel_key_create_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/intel/key/verify":{"get":{"summary":"Verify Api Key","description":"Verify an Intel API key.\n\nReturns key details if valid, 401 if invalid.","operationId":"verify_api_key_api_intel_key_verify_get","parameters":[{"name":"api_key","in":"query","required":true,"schema":{"type":"string","title":"Api Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/intel/keys":{"get":{"summary":"List Api Keys","description":"List all API keys, optionally filtered by email.\n\nFor admin use or customer dashboard.","operationId":"list_api_keys_api_intel_keys_get","parameters":[{"name":"email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/intel/docs":{"get":{"summary":"Get Api Documentation","description":"Get Intel API documentation.","operationId":"get_api_documentation_api_intel_docs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/intel/webhook":{"post":{"summary":"Intel Api Webhook","description":"Handle Stripe webhook events for Intel API subscriptions.\n\nWhen a user purchases an API subscription via Stripe, this endpoint:\n1. Receives the webhook\n2. Verifies the signature\n3. Creates an API key\n4. Emails the key to the customer","operationId":"intel_api_webhook_api_intel_webhook_post","parameters":[{"name":"request","in":"query","required":true,"schema":{"title":"Request"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/profile-analysis/webhook":{"post":{"tags":["profile-analysis"],"summary":"Profile Analysis Webhook","description":"Receive Discord webhook and trigger Twitter profile analysis.\n\nExpected payload from Discord webhook:\n{\n    \"content\": \"Check out @username\",\n    \"author\": {...},\n    \"attachments\": [...]\n}\n\nReturns analysis to Discord via webhook response.","operationId":"profile_analysis_webhook_api_profile_analysis_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/profile-analysis/analyze":{"post":{"tags":["profile-analysis"],"summary":"Analyze Profile","description":"Direct endpoint to analyze a Twitter profile.\n\nBody: {\n    \"username\": \"username\" (with or without @),\n    \"max_tweets\": 100 (optional, default 100)\n}\n\nReturns analysis markdown.","operationId":"analyze_profile_api_profile_analysis_analyze_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/profile-analysis/health":{"get":{"tags":["profile-analysis"],"summary":"Health Check","description":"Health check endpoint.","operationId":"health_check_api_profile_analysis_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/discord/profile-analyzer":{"post":{"tags":["discord","profile-analyzer"],"summary":"Handle Profile Analyzer Webhook","description":"Webhook handler for Discord messages in #profiles-to-analyse channel.\n\nAutomatically triggered when a message is posted containing a Twitter profile link.","operationId":"handle_profile_analyzer_webhook_api_discord_profile_analyzer_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/document/process":{"post":{"tags":["document"],"summary":"Process Document","description":"Process a document and extract structured data.\n\nSupports: PDF, PNG, JPG, JPEG, TIFF, BMP\nDocument types: invoice, receipt, contract, form, bank_statement\n\nReturns extracted fields, tables, and raw OCR text.","operationId":"process_document_api_document_process_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_process_document_api_document_process_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProcessResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/document/schemas":{"get":{"tags":["document"],"summary":"Get Available Schemas","description":"List available extraction schemas.","operationId":"get_available_schemas_api_document_schemas_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/document/schemas/{schema_name}":{"get":{"tags":["document"],"summary":"Get Schema Details","description":"Get details for a specific schema.","operationId":"get_schema_details_api_document_schemas__schema_name__get","parameters":[{"name":"schema_name","in":"path","required":true,"schema":{"type":"string","title":"Schema Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/document/ocr":{"post":{"tags":["document"],"summary":"Ocr Only","description":"Perform OCR only without structured extraction.\n\nReturns raw text and text blocks with positions.","operationId":"ocr_only_api_document_ocr_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_ocr_only_api_document_ocr_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/acquisition/queue":{"get":{"tags":["acquisition"],"summary":"Get Queue","description":"Get the message approval queue.\n\nReturns queued messages waiting for approval or already processed.","operationId":"get_queue_api_acquisition_queue_get","parameters":[{"name":"state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by state: pending, approved, sent, failed","title":"State"},"description":"Filter by state: pending, approved, sent, failed"},{"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/acquisition/queue/stats":{"get":{"tags":["acquisition"],"summary":"Get Queue Stats","description":"Get approval queue statistics.","operationId":"get_queue_stats_api_acquisition_queue_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/acquisition/insights":{"get":{"tags":["acquisition"],"summary":"Get Insights","description":"Get learning pipeline insights.\n\nReturns actionable insights from A/B testing and conversion analysis.","operationId":"get_insights_api_acquisition_insights_get","parameters":[{"name":"type_filter","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by insight type","title":"Type Filter"},"description":"Filter by insight type"},{"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/acquisition/experiments":{"get":{"tags":["acquisition"],"summary":"Get Experiments","description":"Get A/B test experiments.\n\nReturns active and completed experiments with statistical results.","operationId":"get_experiments_api_acquisition_experiments_get","parameters":[{"name":"active_only","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Active Only"}},{"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/acquisition/conversations":{"get":{"tags":["acquisition"],"summary":"Get Conversations","description":"Get tracked conversations.\n\nReturns conversations with intent detection and stage progression.","operationId":"get_conversations_api_acquisition_conversations_get","parameters":[{"name":"stage","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by stage","title":"Stage"},"description":"Filter by stage"},{"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/acquisition/conversations/stats":{"get":{"tags":["acquisition"],"summary":"Get Conversation Stats","description":"Get conversation statistics.","operationId":"get_conversation_stats_api_acquisition_conversations_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/acquisition/pipeline/status":{"get":{"tags":["acquisition"],"summary":"Get Pipeline Status","description":"Get overall acquisition pipeline status.\n\nReturns status of all components: detection, messaging, conversations, closing.","operationId":"get_pipeline_status_api_acquisition_pipeline_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/news/breaking":{"get":{"tags":["news"],"summary":"Get Breaking","description":"Get breaking news from wire services and fast-updating sources.\n\nReturns the most recent news items from major aggregators.","operationId":"get_breaking_api_news_breaking_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/news/region/{region}":{"get":{"tags":["news"],"summary":"Get Regional News","description":"Get news headlines for a specific region.\n\nSupported regions: us, uk, europe, middle_east, asia, world","operationId":"get_regional_news_api_news_region__region__get","parameters":[{"name":"region","in":"path","required":true,"schema":{"type":"string","title":"Region"}},{"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":{"$ref":"#/components/schemas/NewsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/news/aggregate":{"get":{"tags":["news"],"summary":"Aggregate","description":"Aggregate news from all configured RSS feeds.\n\nCategories:\n- ai_tech: AI, ML, tech news\n- wire_services: Major news wires and aggregators\n- regional: Region-specific news (UK, Europe, Middle East, Asia)\n- finance: Business and financial news\n\nSet include_bias=true to add bias/reliability ratings (slower).","operationId":"aggregate_api_news_aggregate_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Category: ai_tech, wire_services, regional, finance","title":"Category"},"description":"Category: ai_tech, wire_services, regional, finance"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"include_bias","in":"query","required":false,"schema":{"type":"boolean","description":"Include bias checking (slower)","default":false,"title":"Include Bias"},"description":"Include bias checking (slower)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewsResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/news/sources":{"get":{"tags":["news"],"summary":"Get Sources","description":"Get list of configured RSS feed sources by category.","operationId":"get_sources_api_news_sources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/vision/analyze":{"post":{"tags":["vision"],"summary":"Analyze","description":"Analyze an image with a custom prompt.\n\nSupports PNG, JPG, JPEG, GIF, WEBP images.","operationId":"analyze_api_vision_analyze_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_analyze_api_vision_analyze_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vision/dashboard":{"post":{"tags":["vision"],"summary":"Analyze Dashboard Ui","description":"Analyze a dashboard/UI screenshot.\n\nExtracts status indicators, metrics, sections, alerts, and navigation.","operationId":"analyze_dashboard_ui_api_vision_dashboard_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_analyze_dashboard_ui_api_vision_dashboard_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vision/error":{"post":{"tags":["vision"],"summary":"Diagnose Error","description":"Diagnose an error screenshot.\n\nExtracts error type, message, stack trace, likely cause, and suggested fix.","operationId":"diagnose_error_api_vision_error_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_diagnose_error_api_vision_error_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vision/ocr":{"post":{"tags":["vision"],"summary":"Extract Text","description":"Extract all readable text from an image (OCR-like).\n\nWorks on screenshots, documents, photos with text.","operationId":"extract_text_api_vision_ocr_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_extract_text_api_vision_ocr_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vision/architecture":{"post":{"tags":["vision"],"summary":"Analyze Architecture","description":"Analyze an architecture or system diagram.\n\nExtracts components, relationships, data flow, technologies, layers, and patterns.","operationId":"analyze_architecture_api_vision_architecture_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_analyze_architecture_api_vision_architecture_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VisionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vision/health-check":{"post":{"tags":["vision"],"summary":"Check Health","description":"Perform a visual health check on a UI screenshot.\n\nReturns health status (healthy/warning/error/unknown), issues found, and metrics observed.","operationId":"check_health_api_vision_health_check_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_check_health_api_vision_health_check_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthCheckResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/vision/models":{"get":{"tags":["vision"],"summary":"Get Available Models","description":"List available vision-capable models.","operationId":"get_available_models_api_vision_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/scout/":{"get":{"tags":["scout"],"summary":"Get Scout Info","description":"Get information about available scanners and configurations.","operationId":"get_scout_info_api_scout__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Scout Info Api Scout  Get"}}}}}}},"/api/scout/opportunities":{"get":{"tags":["scout"],"summary":"Get Opportunities","description":"Get stored opportunities from the database.\n\nReturns ranked opportunities sorted by score.","operationId":"get_opportunities_api_scout_opportunities_get","parameters":[{"name":"source","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by source: reddit, hackernews, trends","title":"Source"},"description":"Filter by source: reddit, hackernews, trends"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status: new, validated, rejected, actioned","title":"Status"},"description":"Filter by status: new, validated, rejected, actioned"},{"name":"min_score","in":"query","required":false,"schema":{"type":"number","maximum":1,"minimum":0,"description":"Minimum opportunity score","default":0.0,"title":"Min Score"},"description":"Minimum opportunity score"},{"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":{"$ref":"#/components/schemas/ScanResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/scout/scan":{"post":{"tags":["scout"],"summary":"Run Scan","description":"Run an opportunity scan on the specified source.\n\nScans Reddit, HackerNews, or Google Trends for business opportunities.\nResults are automatically scored and ranked.","operationId":"run_scan_api_scout_scan_post","parameters":[{"name":"source","in":"query","required":true,"schema":{"type":"string","description":"Scanner to run: reddit, hackernews, trends, all","title":"Source"},"description":"Scanner to run: reddit, hackernews, trends, all"},{"name":"subreddit","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Specific subreddit to scan (reddit only)","title":"Subreddit"},"description":"Specific subreddit to scan (reddit only)"},{"name":"query","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Search query for targeted scanning","title":"Query"},"description":"Search query for targeted scanning"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"save","in":"query","required":false,"schema":{"type":"boolean","description":"Save opportunities to database","default":true,"title":"Save"},"description":"Save opportunities to database"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/scout/score":{"post":{"tags":["scout"],"summary":"Score Opportunity","description":"Score an opportunity based on various factors.\n\nReturns a score between 0 and 1, along with scoring factors\nand a recommendation.","operationId":"score_opportunity_api_scout_score_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScoreRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScoreResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/scout/opportunities/{opportunity_id}/status":{"put":{"tags":["scout"],"summary":"Update Opportunity Status","description":"Update the status of an opportunity.\n\nUsed to track opportunity lifecycle: new -> validated -> actioned (or rejected).","operationId":"update_opportunity_status_api_scout_opportunities__opportunity_id__status_put","parameters":[{"name":"opportunity_id","in":"path","required":true,"schema":{"type":"string","title":"Opportunity Id"}},{"name":"status","in":"query","required":true,"schema":{"type":"string","description":"New status: new, validated, rejected, actioned","title":"Status"},"description":"New status: new, validated, rejected, actioned"},{"name":"notes","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Validation notes","title":"Notes"},"description":"Validation notes"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/scout/subreddits":{"get":{"tags":["scout"],"summary":"Get Subreddits","description":"Get list of subreddits configured for opportunity scanning.","operationId":"get_subreddits_api_scout_subreddits_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/planning/methods":{"get":{"tags":["planning"],"summary":"List Methods","description":"List available decomposition methods.\n\nEach method provides a different template for breaking down goals.","operationId":"list_methods_api_planning_methods_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/planning/decompose":{"post":{"tags":["planning"],"summary":"Decompose Goal","description":"Decompose a goal into a hierarchical task tree.\n\nUses HTN (Hierarchical Task Network) planning to break down\ncomplex goals into manageable subtasks.","operationId":"decompose_goal_api_planning_decompose_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DecomposeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TreeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/planning/tot":{"post":{"tags":["planning"],"summary":"Decompose With Tot","description":"Decompose using Tree of Thoughts multi-path reasoning.\n\nGenerates multiple candidate decompositions, evaluates them\nacross multiple dimensions, and selects the best one.\n\nEvaluation dimensions:\n- Feasibility (35%): Are tasks achievable?\n- Completeness (30%): Does it cover all aspects?\n- Efficiency (20%): Is it non-redundant?\n- Clarity (15%): Are tasks well-defined?","operationId":"decompose_with_tot_api_planning_tot_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToTRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToTResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/planning/cache/stats":{"get":{"tags":["planning"],"summary":"Get Cache Stats","description":"Get solution cache statistics.\n\nThe cache stores successful decompositions for reuse,\ntracking success rates to prefer proven solutions.","operationId":"get_cache_stats_api_planning_cache_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CacheStatsResponse"}}}}}}},"/api/planning/cache/lookup":{"get":{"tags":["planning"],"summary":"Lookup Cached Solution","description":"Look up a cached solution for a goal.\n\nReturns a previously successful decomposition if one exists\nwith sufficient confidence.","operationId":"lookup_cached_solution_api_planning_cache_lookup_get","parameters":[{"name":"goal","in":"query","required":true,"schema":{"type":"string","description":"Goal to look up","title":"Goal"},"description":"Goal to look up"},{"name":"min_confidence","in":"query","required":false,"schema":{"type":"number","maximum":1,"minimum":0,"description":"Minimum confidence threshold","default":0.5,"title":"Min Confidence"},"description":"Minimum confidence threshold"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/planning/execute":{"post":{"tags":["planning"],"summary":"Execute Plan","description":"Execute a decomposed task tree.\n\nRuns tasks in dependency order, tracking progress and outcomes.\nUse dry_run=true to simulate execution without running.","operationId":"execute_plan_api_planning_execute_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecuteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExecutionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/review/":{"get":{"tags":["review"],"summary":"Get Review Info","description":"Get information about the review system.\n\nReturns supported events, configuration, and status.","operationId":"get_review_info_api_review__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/review/webhook":{"post":{"tags":["review"],"summary":"Handle Github Webhook","description":"Receive and process GitHub webhook events.\n\nHandles pull_request events (opened, synchronize, reopened).\nVerifies webhook signature using HMAC-SHA256.","operationId":"handle_github_webhook_api_review_webhook_post","parameters":[{"name":"X-GitHub-Event","in":"header","required":false,"schema":{"type":"string","title":"X-Github-Event"}},{"name":"X-Hub-Signature-256","in":"header","required":false,"schema":{"type":"string","title":"X-Hub-Signature-256"}},{"name":"X-GitHub-Delivery","in":"header","required":false,"schema":{"type":"string","title":"X-Github-Delivery"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/review/trigger":{"post":{"tags":["review"],"summary":"Trigger Review","description":"Manually trigger a PR review.\n\nUse sync=true to wait for the review to complete (may take 30-60s).\nDefault is async - returns immediately with queued status.","operationId":"trigger_review_api_review_trigger_post","parameters":[{"name":"sync","in":"query","required":false,"schema":{"type":"boolean","description":"Wait for review to complete (slow)","default":false,"title":"Sync"},"description":"Wait for review to complete (slow)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/review/status/{review_id}":{"get":{"tags":["review"],"summary":"Get Review Status","description":"Get the status of a specific review.\n\nReturns the review result including findings.","operationId":"get_review_status_api_review_status__review_id__get","parameters":[{"name":"review_id","in":"path","required":true,"schema":{"type":"string","title":"Review Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReviewResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/review/history":{"get":{"tags":["review"],"summary":"Get Review History","description":"Get recent review history.\n\nOptionally filter by repository or status.","operationId":"get_review_history_api_review_history_get","parameters":[{"name":"repo","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by repository (owner/repo)","title":"Repo"},"description":"Filter by repository (owner/repo)"},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status","title":"Status"},"description":"Filter by status"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ReviewHistoryItem"},"title":"Response Get Review History Api Review History Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/review/stats":{"get":{"tags":["review"],"summary":"Get Review Stats","description":"Get aggregate review statistics.\n\nReturns counts by status, severity distribution, and recent activity.","operationId":"get_review_stats_api_review_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/pipeline/":{"get":{"tags":["pipeline"],"summary":"Get Pipeline Info","description":"Get information about the pipeline API.\n\nReturns available endpoints and capabilities.","operationId":"get_pipeline_info_api_pipeline__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/pipeline/classify":{"post":{"tags":["pipeline"],"summary":"Classify Text Intent","description":"Classify the intent of text content.\n\nDetects whether text is complaining, churning, requesting,\npraising, asking, or neutral.\n\nReturns intent classification with confidence score.","operationId":"classify_text_intent_api_pipeline_classify_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/aegis__dashboard__routes__pipeline__ClassifyRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClassifyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pipeline/detect":{"post":{"tags":["pipeline"],"summary":"Detect Complaints In Tweets","description":"Detect complaints from a list of tweets.\n\nAnalyzes tweet content to identify complaints about a competitor,\nscores severity, and extracts pain points.\n\nReturns list of detected complaints with severity breakdown.","operationId":"detect_complaints_in_tweets_api_pipeline_detect_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetectRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DetectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pipeline/competitors":{"get":{"tags":["pipeline"],"summary":"List Known Competitors","description":"List known competitor handles for monitoring.\n\nReturns mapping of competitor names to their social media handles.","operationId":"list_known_competitors_api_pipeline_competitors_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/pipeline/spy":{"post":{"tags":["pipeline"],"summary":"Run Competitor Spy","description":"Run spy workflow on a competitor.\n\nGathers tweets mentioning the competitor, detects complaints,\nscores severity, and generates intelligence insights.\n\nThis is a long-running operation that may take 30-60 seconds.","operationId":"run_competitor_spy_api_pipeline_spy_post","parameters":[{"name":"competitor","in":"query","required":true,"schema":{"type":"string","description":"Competitor name to spy on","title":"Competitor"},"description":"Competitor name to spy on"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":10,"description":"Max tweets to analyze","default":100,"title":"Limit"},"description":"Max tweets to analyze"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntelResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pipeline/prospect/from-complaint":{"post":{"tags":["pipeline"],"summary":"Create Prospect From Complaint Api","description":"Create a prospect from an existing complaint.\n\nConverts a detected complaint into a qualified prospect\nfor sales follow-up.","operationId":"create_prospect_from_complaint_api_api_pipeline_prospect_from_complaint_post","parameters":[{"name":"complaint_id","in":"query","required":true,"schema":{"type":"string","description":"Complaint ID to convert","title":"Complaint Id"},"description":"Complaint ID to convert"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProspectResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/pipeline/severity-patterns":{"get":{"tags":["pipeline"],"summary":"Get Severity Patterns","description":"Get the patterns used for severity scoring.\n\nReturns the keyword patterns that classify complaint severity.","operationId":"get_severity_patterns_api_pipeline_severity_patterns_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/calendar/":{"get":{"tags":["calendar"],"summary":"Get Calendar Info","description":"Get information about the calendar API.\n\nReturns capabilities and default settings.","operationId":"get_calendar_info_api_calendar__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/calendar/upcoming":{"get":{"tags":["calendar"],"summary":"Get Upcoming Events","description":"Get upcoming calendar events.\n\nReturns events from the database within the specified time window.\nEvents must be synced first using POST /api/calendar/sync.","operationId":"get_upcoming_events_api_calendar_upcoming_get","parameters":[{"name":"hours","in":"query","required":false,"schema":{"type":"integer","maximum":168,"minimum":1,"description":"Hours to look ahead","default":24,"title":"Hours"},"description":"Hours to look ahead"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Max events to return","default":20,"title":"Limit"},"description":"Max events to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EventResponse"},"title":"Response Get Upcoming Events Api Calendar Upcoming Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/calendar/prep":{"get":{"tags":["calendar"],"summary":"Get Events Needing Prep","description":"Get events that need preparation.\n\nReturns events starting within the specified time window,\nideal for triggering meeting prep workflows.\n\nDefault window: 1-4 hours from now.","operationId":"get_events_needing_prep_api_calendar_prep_get","parameters":[{"name":"min_hours","in":"query","required":false,"schema":{"type":"integer","maximum":24,"minimum":0,"description":"Min hours until event","default":1,"title":"Min Hours"},"description":"Min hours until event"},{"name":"max_hours","in":"query","required":false,"schema":{"type":"integer","maximum":48,"minimum":1,"description":"Max hours until event","default":4,"title":"Max Hours"},"description":"Max hours until event"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EventResponse"},"title":"Response Get Events Needing Prep Api Calendar Prep Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/calendar/sync":{"post":{"tags":["calendar"],"summary":"Sync Calendar Events","description":"Sync calendar events from Google Calendar.\n\nExpected workflow:\n1. Call mcp__google-workspace__calendar_get_events to fetch events\n2. Pass the events array to this endpoint\n3. Events are stored in the database for querying\n\nThe events parameter should contain event dicts with:\n- id, summary, start, end (from Google Calendar API format)","operationId":"sync_calendar_events_api_calendar_sync_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/calendar/cleanup":{"post":{"tags":["calendar"],"summary":"Cleanup Old Events","description":"Remove old calendar events from the database.\n\nDefault: Delete events older than 30 days.\nThis helps keep the database clean and queries fast.","operationId":"cleanup_old_events_api_calendar_cleanup_post","parameters":[{"name":"days_old","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"description":"Delete events older than N days","default":30,"title":"Days Old"},"description":"Delete events older than N days"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CleanupResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/calendar/stats":{"get":{"tags":["calendar"],"summary":"Get Calendar Stats","description":"Get calendar statistics.\n\nReturns counts of events by time period.","operationId":"get_calendar_stats_api_calendar_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/finance/":{"get":{"tags":["finance"],"summary":"Get Finance Info","description":"Get information about the finance API.\n\nReturns capabilities and budget limits.","operationId":"get_finance_info_api_finance__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/finance/parse/balance":{"post":{"tags":["finance"],"summary":"Parse Balance","description":"Parse raw balance data from Starling MCP.\n\nPass the raw response from mcp__starling__starling_get_balance.\nReturns structured balance with computed fields.","operationId":"parse_balance_api_finance_parse_balance_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseBalanceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BalanceResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/finance/parse/transactions":{"post":{"tags":["finance"],"summary":"Parse Transactions","description":"Parse and analyze transactions from Starling MCP.\n\nPass the transactions array from mcp__starling__starling_get_transactions.\nReturns parsed transactions plus spending summary.","operationId":"parse_transactions_api_finance_parse_transactions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseTransactionsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/finance/budget":{"post":{"tags":["finance"],"summary":"Check Budget","description":"Check spending against budget.\n\nPass transactions from MCP to analyze spending against limits.\nDefault budget is £50/month per CLAUDE.md.","operationId":"check_budget_api_finance_budget_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BudgetCheckRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/aegis__dashboard__routes__finance__BudgetStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/finance/parse/spaces":{"post":{"tags":["finance"],"summary":"Parse Spaces","description":"Parse spaces data from Starling MCP.\n\nPass the spaces array from mcp__starling__starling_get_spaces.","operationId":"parse_spaces_api_finance_parse_spaces_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseSpacesRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/SpaceResponse"},"type":"array","title":"Response Parse Spaces Api Finance Parse Spaces Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/finance/parse/cards":{"post":{"tags":["finance"],"summary":"Parse Cards","description":"Parse cards data from Starling MCP.\n\nPass the cards array from mcp__starling__starling_get_cards.","operationId":"parse_cards_api_finance_parse_cards_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParseCardsRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CardResponse"},"type":"array","title":"Response Parse Cards Api Finance Parse Cards Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/finance/categories":{"get":{"tags":["finance"],"summary":"Get Spending Categories","description":"Get list of spending categories.\n\nReturns all Starling spending categories.","operationId":"get_spending_categories_api_finance_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/costs/":{"get":{"tags":["costs"],"summary":"Get Costs Info","description":"Get information about the costs API.\n\nReturns capabilities and tool cost estimates.","operationId":"get_costs_info_api_costs__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"tags":["costs"],"summary":"Create Budget","description":"Set or update a budget for a task.\n\nCreates a new budget or updates an existing one.","operationId":"create_budget_api_costs__post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetBudgetRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskBudgetResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/costs/active":{"get":{"tags":["costs"],"summary":"Get Active Budgets","description":"Get all active task budgets.\n\nReturns budgets that are still being tracked.","operationId":"get_active_budgets_api_costs_active_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TaskBudgetResponse"},"type":"array","title":"Response Get Active Budgets Api Costs Active Get"}}}}}}},"/api/costs/all":{"get":{"tags":["costs"],"summary":"Get All Budgets","description":"Get all task budgets (including completed/expired).\n\nReturns full budget history.","operationId":"get_all_budgets_api_costs_all_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/TaskBudgetResponse"},"type":"array","title":"Response Get All Budgets Api Costs All Get"}}}}}}},"/api/costs/{task_id}":{"get":{"tags":["costs"],"summary":"Get Budget Status","description":"Get budget status for a specific task.\n\nReturns current usage, burn rate warnings, and recommendations.","operationId":"get_budget_status_api_costs__task_id__get","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/aegis__dashboard__routes__costs__BudgetStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/costs/{task_id}/usage":{"post":{"tags":["costs"],"summary":"Record Task Usage","description":"Record token usage for a task.\n\nUpdates the budget and returns current status.","operationId":"record_task_usage_api_costs__task_id__usage_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/aegis__dashboard__routes__costs__RecordUsageRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/aegis__dashboard__routes__costs__BudgetStatusResponse"},{"type":"null"}],"title":"Response Record Task Usage Api Costs  Task Id  Usage Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/costs/{task_id}/completion":{"put":{"tags":["costs"],"summary":"Update Task Completion","description":"Update completion estimate for a task.\n\nHelps detect burn rate issues (high usage + low completion).","operationId":"update_task_completion_api_costs__task_id__completion_put","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCompletionRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/costs/{task_id}/complete":{"post":{"tags":["costs"],"summary":"Mark Task Complete","description":"Mark a task as complete.\n\nStops tracking and records final status.","operationId":"mark_task_complete_api_costs__task_id__complete_post","parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"string","title":"Task Id"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","description":"Final status (completed, killed, expired)","default":"completed","title":"Status"},"description":"Final status (completed, killed, expired)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/costs/estimate/{tool}":{"get":{"tags":["costs"],"summary":"Estimate Tool Cost","description":"Estimate token cost for a tool.\n\nReturns estimated tokens for a single invocation.","operationId":"estimate_tool_cost_api_costs_estimate__tool__get","parameters":[{"name":"tool","in":"path","required":true,"schema":{"type":"string","title":"Tool"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/costs/cleanup":{"post":{"tags":["costs"],"summary":"Cleanup Expired Budgets","description":"Clean up expired budgets.\n\nRemoves budgets older than max_age_hours that are not active.","operationId":"cleanup_expired_budgets_api_costs_cleanup_post","parameters":[{"name":"max_age_hours","in":"query","required":false,"schema":{"type":"integer","maximum":168,"minimum":1,"description":"Max age in hours","default":24,"title":"Max Age Hours"},"description":"Max age in hours"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ooda/":{"get":{"tags":["ooda"],"summary":"Get Ooda Info","description":"Get information about the OODA API.\n\nReturns capabilities and phase definitions.","operationId":"get_ooda_info_api_ooda__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/ooda/recent":{"get":{"tags":["ooda"],"summary":"Get Recent Cycles","description":"Get recent OODA decision cycles.\n\nReturns cycles ordered by timestamp (most recent first).","operationId":"get_recent_cycles_api_ooda_recent_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Max cycles to return","default":10,"title":"Limit"},"description":"Max cycles to return"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/OODACycleResponse"},"title":"Response Get Recent Cycles Api Ooda Recent Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ooda/stats":{"get":{"tags":["ooda"],"summary":"Get Ooda Stats","description":"Get OODA decision statistics.\n\nReturns success rate, counts, and model usage.","operationId":"get_ooda_stats_api_ooda_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OODAStatsResponse"}}}}}}},"/api/ooda/{cycle_id}":{"get":{"tags":["ooda"],"summary":"Get Cycle","description":"Get a specific OODA cycle by ID.\n\nReturns full cycle details.","operationId":"get_cycle_api_ooda__cycle_id__get","parameters":[{"name":"cycle_id","in":"path","required":true,"schema":{"type":"integer","title":"Cycle Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OODACycleResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ooda/search":{"get":{"tags":["ooda"],"summary":"Search Cycles","description":"Search OODA cycles with filters.\n\nReturns cycles matching the specified criteria.","operationId":"search_cycles_api_ooda_search_get","parameters":[{"name":"success","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"description":"Filter by success status","title":"Success"},"description":"Filter by success status"},{"name":"model","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by model used","title":"Model"},"description":"Filter by model used"},{"name":"task_id","in":"query","required":false,"schema":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"Filter by related task","title":"Task Id"},"description":"Filter by related task"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Max results","default":20,"title":"Limit"},"description":"Max results"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ooda/by-task/{task_id}":{"get":{"tags":["ooda"],"summary":"Get Cycles By Task","description":"Get all OODA cycles for a specific task.\n\nUseful for tracking decision history of a task.","operationId":"get_cycles_by_task_api_ooda_by_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/ralph/":{"get":{"tags":["ralph"],"summary":"Get Ralph Info","description":"Get information about the Ralph API.\n\nReturns capabilities and current status summary.","operationId":"get_ralph_info_api_ralph__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"delete":{"tags":["ralph"],"summary":"Clear Ralph","description":"Clear Ralph state.\n\nRemoves all Ralph state data.","operationId":"clear_ralph_api_ralph__delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/ralph/status":{"get":{"tags":["ralph"],"summary":"Get Status","description":"Get current Ralph status.\n\nReturns summary of Ralph mode state.","operationId":"get_status_api_ralph_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RalphStatusResponse"}}}}}}},"/api/ralph/state":{"get":{"tags":["ralph"],"summary":"Get Full State","description":"Get full Ralph state.\n\nReturns complete state including history.","operationId":"get_full_state_api_ralph_state_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RalphStateResponse"}}}}}}},"/api/ralph/history":{"get":{"tags":["ralph"],"summary":"Get History","description":"Get Ralph iteration history.\n\nReturns list of all recorded iterations.","operationId":"get_history_api_ralph_history_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/ralph/continuation":{"get":{"tags":["ralph"],"summary":"Get Continuation","description":"Get Ralph continuation reason.\n\nReturns the reason for continuing if Ralph is active.\nUsed by hooks to determine if session should continue.","operationId":"get_continuation_api_ralph_continuation_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/ralph/start":{"post":{"tags":["ralph"],"summary":"Start Ralph","description":"Start Ralph mode.\n\nBegins iterative task execution with specified parameters.","operationId":"start_ralph_api_ralph_start_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartRalphRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RalphStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ralph/stop":{"post":{"tags":["ralph"],"summary":"Stop Ralph","description":"Stop Ralph mode.\n\nReturns summary of Ralph session.","operationId":"stop_ralph_api_ralph_stop_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/ralph/iteration":{"post":{"tags":["ralph"],"summary":"Record Iteration","description":"Record an iteration.\n\nRecords what action was taken and its result.","operationId":"record_iteration_api_ralph_iteration_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RecordIterationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ralph/verify":{"post":{"tags":["ralph"],"summary":"Run Verification","description":"Run verification command.\n\nExecutes the verification command and returns result.","operationId":"run_verification_api_ralph_verify_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/ralph/complete":{"post":{"tags":["ralph"],"summary":"Mark Complete","description":"Mark Ralph mode as complete.\n\nEnds Ralph mode with success status.","operationId":"mark_complete_api_ralph_complete_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RalphStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/ralph/fail":{"post":{"tags":["ralph"],"summary":"Mark Failed","description":"Mark Ralph mode as failed.\n\nEnds Ralph mode with failure status.","operationId":"mark_failed_api_ralph_fail_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FailRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RalphStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/watchdog/":{"get":{"tags":["watchdog"],"summary":"Get Watchdog Info","description":"Get information about the WatchDog API.\n\nReturns capabilities and supported sources.","operationId":"get_watchdog_info_api_watchdog__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/watchdog/scan":{"post":{"tags":["watchdog"],"summary":"Scan Competitors","description":"Scan competitors for events.\n\nRuns monitoring across specified sources and returns scored events.","operationId":"scan_competitors_api_watchdog_scan_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompetitorScanRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/watchdog/alerts":{"post":{"tags":["watchdog"],"summary":"Get Alerts","description":"Get alert-worthy events from competitors.\n\nReturns only high-significance events (score > threshold).","operationId":"get_alerts_api_watchdog_alerts_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompetitorScanRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/watchdog/events":{"get":{"tags":["watchdog"],"summary":"Get Events","description":"Get stored event history.\n\nReturns events from the JSONL event log.","operationId":"get_events_api_watchdog_events_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"description":"Days of history","default":7,"title":"Days"},"description":"Days of history"},{"name":"competitor","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by competitor","title":"Competitor"},"description":"Filter by competitor"},{"name":"min_significance","in":"query","required":false,"schema":{"type":"number","maximum":1.0,"minimum":0.0,"description":"Minimum significance","default":0.0,"title":"Min Significance"},"description":"Minimum significance"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"description":"Maximum events","default":50,"title":"Limit"},"description":"Maximum events"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/watchdog/digest":{"post":{"tags":["watchdog"],"summary":"Generate Digest","description":"Generate a digest of competitor activity.\n\nSynthesizes events into a readable summary.","operationId":"generate_digest_api_watchdog_digest_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DigestRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/watchdog/score":{"post":{"tags":["watchdog"],"summary":"Score Events","description":"Score events for significance.\n\nUseful for testing significance scoring without running a full scan.","operationId":"score_events_api_watchdog_score_post","parameters":[{"name":"threshold","in":"query","required":false,"schema":{"type":"number","maximum":1.0,"minimum":0.0,"description":"Alert threshold","default":0.7,"title":"Threshold"},"description":"Alert threshold"}],"requestBody":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true},"default":[],"title":"Events"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/watchdog/sources":{"get":{"tags":["watchdog"],"summary":"List Sources","description":"List available data sources for monitoring.\n\nReturns source capabilities and configuration.","operationId":"list_sources_api_watchdog_sources_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/sessions":{"get":{"tags":["Claude Sessions"],"summary":"List Sessions","description":"List Claude sessions with optional filtering.\n\nStatuses: pending, queued, running, completed, failed, timeout, terminated","operationId":"list_sessions_api_sessions_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by status","title":"Status"},"description":"Filter by status"},{"name":"phone_number","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by phone number","title":"Phone Number"},"description":"Filter by phone number"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SessionSummary"},"title":"Response List Sessions Api Sessions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sessions/stats":{"get":{"tags":["Claude Sessions"],"summary":"Get Session Stats","description":"Get aggregate statistics for all sessions.","operationId":"get_session_stats_api_sessions_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionStats"}}}}}}},"/api/sessions/stream":{"get":{"tags":["Claude Sessions"],"summary":"Stream Sessions","description":"Server-Sent Events stream for real-time session updates.\n\nSends updates every 2 seconds with current session states.","operationId":"stream_sessions_api_sessions_stream_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/sessions/{session_id}":{"get":{"tags":["Claude Sessions"],"summary":"Get Session","description":"Get detailed information about a specific session.","operationId":"get_session_api_sessions__session_id__get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sessions/{session_id}/terminate":{"post":{"tags":["Claude Sessions"],"summary":"Terminate Session","description":"Terminate a running or queued session.\n\nIf hard_kill=True, attempts to kill the worker process (requires PID tracking).\nOtherwise, sets status to 'terminated' which the worker checks periodically.","operationId":"terminate_session_api_sessions__session_id__terminate_post","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TerminateRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sessions/{session_id}/logs":{"get":{"tags":["Claude Sessions"],"summary":"Get Session Logs","description":"Get execution logs for a session.","operationId":"get_session_logs_api_sessions__session_id__logs_get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/sessions/{session_id}/files":{"get":{"tags":["Claude Sessions"],"summary":"Get Session Files","description":"Get file operations performed during a session.\n\nReturns list of files created, modified, or read during the session execution.","operationId":"get_session_files_api_sessions__session_id__files_get","parameters":[{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}},{"name":"operation_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by operation type (create, modify, read)","title":"Operation Type"},"description":"Filter by operation type (create, modify, read)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FileOperation"},"title":"Response Get Session Files Api Sessions  Session Id  Files Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/sessions":{"get":{"tags":["Claude Sessions UI"],"summary":"Sessions Page","description":"Render the sessions monitoring dashboard.","operationId":"sessions_page_sessions_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/meshy/webhook":{"post":{"tags":["meshy"],"summary":"Handle Meshy Webhook","description":"Handle incoming Meshy webhook.\n\nMeshy sends task status updates here when:\n- Task starts processing (IN_PROGRESS)\n- Task completes (SUCCEEDED)\n- Task fails (FAILED)\n\nWe use this to continue the pipeline without polling.","operationId":"handle_meshy_webhook_api_meshy_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/market/quotes":{"get":{"tags":["market"],"summary":"Get Quotes","description":"Get latest quotes for specified or all symbols.\n\nQuery params:\n- symbols: Comma-separated list (e.g., \"META,AAPL,bitcoin\")\n- asset_type: Filter by equity or crypto\n- limit: Max results (default 50)","operationId":"get_quotes_api_market_quotes_get","parameters":[{"name":"symbols","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Comma-separated symbols","title":"Symbols"},"description":"Comma-separated symbols"},{"name":"asset_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by asset type: equity, crypto","title":"Asset Type"},"description":"Filter by asset type: equity, crypto"},{"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/market/quotes/{symbol}":{"get":{"tags":["market"],"summary":"Get Quote","description":"Get detailed quote for a single symbol.","operationId":"get_quote_api_market_quotes__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/market/screening":{"get":{"tags":["market"],"summary":"Get Screening Results","description":"Get screening results with optional filters.\n\nQuery params:\n- tier: blue_chip, growth, speculative, degen\n- action: strong_buy, buy, hold, sell, avoid\n- min_score: Minimum total score\n- limit: Max results (default 50)","operationId":"get_screening_results_api_market_screening_get","parameters":[{"name":"tier","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by tier","title":"Tier"},"description":"Filter by tier"},{"name":"action","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by action (strong_buy, buy, hold, sell, avoid)","title":"Action"},"description":"Filter by action (strong_buy, buy, hold, sell, avoid)"},{"name":"min_score","in":"query","required":false,"schema":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Minimum total score","title":"Min Score"},"description":"Minimum total score"},{"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/market/screening/top-picks":{"get":{"tags":["market"],"summary":"Get Top Picks","description":"Get top investment picks from recent screening.\n\nReturns symbols with strong_buy or buy actions, sorted by score.","operationId":"get_top_picks_api_market_screening_top_picks_get","parameters":[{"name":"tier","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by tier","title":"Tier"},"description":"Filter by tier"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":50,"minimum":1,"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/market/screening/{symbol}":{"get":{"tags":["market"],"summary":"Get Symbol Screening","description":"Get screening history for a specific symbol.\n\nArgs:\n    symbol: Stock/crypto symbol\n    days: Number of days of history (default 30)","operationId":"get_symbol_screening_api_market_screening__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":90,"minimum":1,"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/market/alerts":{"get":{"tags":["market"],"summary":"Get Alerts","description":"Get all active alerts, optionally filtered by symbol.","operationId":"get_alerts_api_market_alerts_get","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["market"],"summary":"Create Alert","description":"Create a new price alert.","operationId":"create_alert_api_market_alerts_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertConfigRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/market/alerts/{alert_id}":{"delete":{"tags":["market"],"summary":"Delete Alert","description":"Deactivate an alert.","operationId":"delete_alert_api_market_alerts__alert_id__delete","parameters":[{"name":"alert_id","in":"path","required":true,"schema":{"type":"integer","title":"Alert Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/market/alerts/history":{"get":{"tags":["market"],"summary":"Get Alert History","description":"Get alert trigger history.","operationId":"get_alert_history_api_market_alerts_history_get","parameters":[{"name":"symbol","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"}},{"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/market/digest/morning":{"get":{"tags":["market"],"summary":"Get Morning Digest","description":"Generate and return the morning market digest.","operationId":"get_morning_digest_api_market_digest_morning_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/market/digest/evening":{"get":{"tags":["market"],"summary":"Get Evening Digest","description":"Generate and return the evening market digest.","operationId":"get_evening_digest_api_market_digest_evening_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/market/digest/send":{"post":{"tags":["market"],"summary":"Send Digest","description":"Generate and send digest to Discord.","operationId":"send_digest_api_market_digest_send_post","parameters":[{"name":"digest_type","in":"query","required":true,"schema":{"type":"string","pattern":"^(morning|evening)$","title":"Digest Type"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/market/watchlists":{"get":{"tags":["market"],"summary":"Get Watchlists","description":"Get all watchlists with their symbols.","operationId":"get_watchlists_api_market_watchlists_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/market/watchlists/{watchlist_id}":{"get":{"tags":["market"],"summary":"Get Watchlist","description":"Get watchlist details with all symbols and their quotes.","operationId":"get_watchlist_api_market_watchlists__watchlist_id__get","parameters":[{"name":"watchlist_id","in":"path","required":true,"schema":{"type":"integer","title":"Watchlist Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/market/watchlists/{watchlist_id}/symbols":{"post":{"tags":["market"],"summary":"Add Symbol To Watchlist","description":"Add a symbol to a watchlist.","operationId":"add_symbol_to_watchlist_api_market_watchlists__watchlist_id__symbols_post","parameters":[{"name":"watchlist_id","in":"path","required":true,"schema":{"type":"integer","title":"Watchlist Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchlistSymbolRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/market/watchlists/{watchlist_id}/symbols/{symbol}":{"delete":{"tags":["market"],"summary":"Remove Symbol From Watchlist","description":"Remove a symbol from a watchlist.","operationId":"remove_symbol_from_watchlist_api_market_watchlists__watchlist_id__symbols__symbol__delete","parameters":[{"name":"watchlist_id","in":"path","required":true,"schema":{"type":"integer","title":"Watchlist Id"}},{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/market/stats":{"get":{"tags":["market"],"summary":"Get Market Stats","description":"Get overall market system statistics.","operationId":"get_market_stats_api_market_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/market/health":{"get":{"tags":["market"],"summary":"Market Health","description":"Health check for market research system.","operationId":"market_health_api_market_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/calibration/summary":{"get":{"tags":["calibration"],"summary":"Get Summary","description":"Get overall calibration summary.","operationId":"get_summary_api_calibration_summary_get","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"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/calibration/curve":{"get":{"tags":["calibration"],"summary":"Get Curve","description":"Get calibration curve data for charting.","operationId":"get_curve_api_calibration_curve_get","parameters":[{"name":"domain","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Domain"}},{"name":"days","in":"query","required":false,"schema":{"type":"integer","maximum":365,"minimum":1,"default":30,"title":"Days"}},{"name":"buckets","in":"query","required":false,"schema":{"type":"integer","maximum":10,"minimum":3,"default":5,"title":"Buckets"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/calibration/drift":{"get":{"tags":["calibration"],"summary":"Get Drift","description":"Get active drift alerts.","operationId":"get_drift_api_calibration_drift_get","parameters":[{"name":"window_days","in":"query","required":false,"schema":{"type":"integer","maximum":30,"minimum":1,"default":7,"title":"Window Days"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/calibration/decisions":{"get":{"tags":["calibration"],"summary":"Get Decisions","description":"Get recent decisions with calibration data.","operationId":"get_decisions_api_calibration_decisions_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"}}}}}}},"/calibration":{"get":{"tags":["calibration-html"],"summary":"Calibration Dashboard","description":"HTML dashboard for decision calibration.","operationId":"calibration_dashboard_calibration_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/agents/directory":{"get":{"tags":["agents-directory"],"summary":"List Agents","description":"List agents from Moltbook directory with optional search.","operationId":"list_agents_api_agents_directory_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Q"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":50,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agents/directory/search":{"get":{"tags":["agents-directory"],"summary":"Search Agents","description":"Search agents by capability, name, or description.","operationId":"search_agents_api_agents_directory_search_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Q"}},{"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/agents/directory/internal":{"get":{"tags":["agents-directory"],"summary":"Get Internal Agents","description":"Get Aegis internal agent templates and registry.","operationId":"get_internal_agents_api_agents_directory_internal_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agents/directory/refresh":{"post":{"tags":["agents-directory"],"summary":"Refresh Directory","description":"Trigger a refresh of the Moltbook agent directory.","operationId":"refresh_directory_api_agents_directory_refresh_post","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"}}}}}}},"/agents/directory":{"get":{"tags":["agents-directory-html"],"summary":"Agents Directory Page","description":"Public agent directory page.","operationId":"agents_directory_page_agents_directory_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/clawk/graph":{"get":{"tags":["clawk"],"summary":"Graph Data","description":"Return full graph data (nodes, edges, meta).","operationId":"graph_data_api_clawk_graph_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/clawk/influencers":{"get":{"tags":["clawk"],"summary":"Influencers","description":"Return top influencers by PageRank score.","operationId":"influencers_api_clawk_influencers_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/clawk/topics":{"get":{"tags":["clawk"],"summary":"Topics","description":"Return trending topics with counts.","operationId":"topics_api_clawk_topics_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"}}}}}}},"/clawk":{"get":{"tags":["clawk-html"],"summary":"Clawk Observatory","description":"Clawk Observatory - interactive agent social graph.","operationId":"clawk_observatory_clawk_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/memory-bench/analyze":{"post":{"tags":["memory-bench"],"summary":"Analyze Architecture","description":"Analyze a memory architecture and return scored results.","operationId":"analyze_architecture_api_memory_bench_analyze_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ArchitectureInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/memory-bench/references":{"get":{"tags":["memory-bench"],"summary":"List References","description":"List all reference architectures with their scores.","operationId":"list_references_api_memory_bench_references_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/memory-bench/dimensions":{"get":{"tags":["memory-bench"],"summary":"List Dimensions","description":"List evaluation dimensions and their weights.","operationId":"list_dimensions_api_memory_bench_dimensions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/memory-bench":{"get":{"tags":["memory-bench-html"],"summary":"Memory Bench Dashboard","description":"Interactive memory architecture comparison tool.","operationId":"memory_bench_dashboard_memory_bench_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/api/a2a/agents":{"get":{"tags":["a2a"],"summary":"List Agents","description":"List available Aegis agent capabilities.","operationId":"list_agents_api_a2a_agents_get","parameters":[{"name":"capability","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Capability"}},{"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/a2a/agents/{agent_id}":{"get":{"tags":["a2a"],"summary":"Get Agent","description":"Get details for a specific agent.","operationId":"get_agent_api_a2a_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/a2a/discover":{"get":{"tags":["a2a"],"summary":"Discover Agents","description":"Search for agents by name, description, or capability.","operationId":"discover_agents_api_a2a_discover_get","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","title":"Q"}},{"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/a2a/pricing":{"get":{"tags":["a2a"],"summary":"Get Pricing","description":"Get pricing information for all Aegis capabilities.","operationId":"get_pricing_api_a2a_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/a2a/request":{"post":{"tags":["a2a"],"summary":"Handle A2A Request","description":"Handle an incoming A2A request from an external agent.\n\nRequires Bearer token authentication (obtained via /api/a2a/register).","operationId":"handle_a2a_request_api_a2a_request_post","parameters":[{"name":"authorization","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/A2ARequestBody"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/a2a/interactions/{interaction_id}":{"get":{"tags":["a2a"],"summary":"Get Interaction","description":"Get the status of an A2A interaction.","operationId":"get_interaction_api_a2a_interactions__interaction_id__get","parameters":[{"name":"interaction_id","in":"path","required":true,"schema":{"type":"string","title":"Interaction Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/a2a/stats":{"get":{"tags":["a2a"],"summary":"Get Stats","description":"Get A2A interaction statistics.","operationId":"get_stats_api_a2a_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/a2a/register":{"post":{"tags":["a2a"],"summary":"Register Requester","description":"Register as an external agent to get an API key.\n\nReturns a one-time API key - store it securely!","operationId":"register_requester_api_a2a_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequesterBody"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/.well-known/agent.json":{"get":{"tags":["a2a-wellknown"],"summary":"Agent Discovery","description":"A2A agent discovery endpoint per Google A2A spec.\n\nReturns Aegis's agent card with capabilities, pricing, and endpoints.","operationId":"agent_discovery__well_known_agent_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/workflows":{"get":{"tags":["workflows"],"summary":"List All Workflows","description":"List all registered workflows with their node counts.","operationId":"list_all_workflows_api_workflows_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/workflows/{workflow_type}/run":{"post":{"tags":["workflows"],"summary":"Start Workflow","description":"Start a registered workflow.","operationId":"start_workflow_api_workflows__workflow_type__run_post","parameters":[{"name":"workflow_type","in":"path","required":true,"schema":{"type":"string","title":"Workflow Type"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowRunRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows/{workflow_type}/{workflow_id}/resume":{"post":{"tags":["workflows"],"summary":"Resume Workflow Endpoint","description":"Resume an interrupted workflow with a user response.","operationId":"resume_workflow_endpoint_api_workflows__workflow_type___workflow_id__resume_post","parameters":[{"name":"workflow_type","in":"path","required":true,"schema":{"type":"string","title":"Workflow Type"}},{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkflowResumeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/workflows/interrupted":{"get":{"tags":["workflows"],"summary":"Get All Interrupted","description":"Get all workflows waiting for user input.","operationId":"get_all_interrupted_api_workflows_interrupted_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/workflows/{workflow_id}/status":{"get":{"tags":["workflows"],"summary":"Get Workflow Status","description":"Get current status of a workflow by ID.","operationId":"get_workflow_status_api_workflows__workflow_id__status_get","parameters":[{"name":"workflow_id","in":"path","required":true,"schema":{"type":"string","title":"Workflow Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bountyboard/posters":{"post":{"tags":["bountyboard"],"summary":"Create Poster","description":"Register a new bounty poster.","operationId":"create_poster_api_bountyboard_posters_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PosterCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PosterResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bountyboard/bounties":{"post":{"tags":["bountyboard"],"summary":"Create Bounty","description":"Create a new bounty.","operationId":"create_bounty_api_bountyboard_bounties_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BountyCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BountyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["bountyboard"],"summary":"List Bounties","description":"List bounties with optional filters.","operationId":"list_bounties_api_bountyboard_bounties_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/BountyCategory"},{"type":"null"}],"title":"Category"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/BountyStatus"},{"type":"null"}],"title":"Status"}},{"name":"min_budget","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Min Budget"}},{"name":"max_budget","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}],"title":"Max Budget"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Page Size"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BountyListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bountyboard/bounties/{bounty_id}":{"get":{"tags":["bountyboard"],"summary":"Get Bounty","description":"Get bounty details by ID.","operationId":"get_bounty_api_bountyboard_bounties__bounty_id__get","parameters":[{"name":"bounty_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Bounty Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BountyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["bountyboard"],"summary":"Update Bounty","description":"Update a bounty (poster only).","operationId":"update_bounty_api_bountyboard_bounties__bounty_id__patch","parameters":[{"name":"bounty_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Bounty Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BountyUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BountyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["bountyboard"],"summary":"Cancel Bounty","description":"Cancel a bounty (poster only).","operationId":"cancel_bounty_api_bountyboard_bounties__bounty_id__delete","parameters":[{"name":"bounty_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Bounty Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bountyboard/bounties/{bounty_id}/submit":{"post":{"tags":["bountyboard"],"summary":"Submit Solution","description":"Submit a solution to a bounty.","operationId":"submit_solution_api_bountyboard_bounties__bounty_id__submit_post","parameters":[{"name":"bounty_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Bounty Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bountyboard/bounties/{bounty_id}/submissions":{"get":{"tags":["bountyboard"],"summary":"List Submissions","description":"List all submissions for a bounty.","operationId":"list_submissions_api_bountyboard_bounties__bounty_id__submissions_get","parameters":[{"name":"bounty_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Bounty Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SubmissionResponse"},"title":"Response List Submissions Api Bountyboard Bounties  Bounty Id  Submissions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bountyboard/submissions/{submission_id}/review":{"patch":{"tags":["bountyboard"],"summary":"Review Submission","description":"Accept, reject, or request revision on a submission.","operationId":"review_submission_api_bountyboard_submissions__submission_id__review_patch","parameters":[{"name":"submission_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Submission Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionReview"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmissionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bountyboard/submissions/{submission_id}/rate":{"post":{"tags":["bountyboard"],"summary":"Rate Agent","description":"Rate an agent after reviewing their submission.","operationId":"rate_agent_api_bountyboard_submissions__submission_id__rate_post","parameters":[{"name":"submission_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Submission Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RatingCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RatingResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bountyboard/agents":{"get":{"tags":["bountyboard"],"summary":"List Agents","description":"List all registered agent profiles.","operationId":"list_agents_api_bountyboard_agents_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/AgentProfileResponse"},"type":"array","title":"Response List Agents Api Bountyboard Agents Get"}}}}}},"post":{"tags":["bountyboard"],"summary":"Create Agent","description":"Register a new agent profile.","operationId":"create_agent_api_bountyboard_agents_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentProfileCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bountyboard/agents/{agent_id}":{"get":{"tags":["bountyboard"],"summary":"Get Agent","description":"Get agent profile with stats.","operationId":"get_agent_api_bountyboard_agents__agent_id__get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentProfileResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bountyboard/agents/{agent_id}/bounties":{"get":{"tags":["bountyboard"],"summary":"Get Agent Bounties","description":"Get bounties completed by an agent.","operationId":"get_agent_bounties_api_bountyboard_agents__agent_id__bounties_get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BountyResponse"},"title":"Response Get Agent Bounties Api Bountyboard Agents  Agent Id  Bounties Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bountyboard/leaderboard":{"get":{"tags":["bountyboard"],"summary":"Get Leaderboard","operationId":"get_leaderboard_api_bountyboard_leaderboard_get","parameters":[{"name":"sort_by","in":"query","required":false,"schema":{"type":"string","default":"reputation","title":"Sort By"}},{"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":{"$ref":"#/components/schemas/LeaderboardResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/bountyboard/categories":{"get":{"tags":["bountyboard"],"summary":"List Categories","description":"List categories with stats.","operationId":"list_categories_api_bountyboard_categories_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/CategoryStats"},"type":"array","title":"Response List Categories Api Bountyboard Categories Get"}}}}}}},"/api/bountyboard/stats":{"get":{"tags":["bountyboard"],"summary":"Get Stats","description":"Platform-wide statistics.","operationId":"get_stats_api_bountyboard_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlatformStats"}}}}}}},"/api/claims/agents":{"post":{"tags":["claims"],"summary":"Create Agent","description":"Register a new agent.","operationId":"create_agent_api_claims_agents_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/agents/{agent_id}/reputation":{"get":{"tags":["claims"],"summary":"Get Agent Reputation","description":"Get detailed reputation breakdown for an agent.","operationId":"get_agent_reputation_api_claims_agents__agent_id__reputation_get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReputationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/agents/{agent_id}/claims":{"get":{"tags":["claims"],"summary":"Get Agent Claims","description":"List claims for a specific agent.","operationId":"get_agent_claims_api_claims_agents__agent_id__claims_get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ClaimStatus"},{"type":"null"}],"title":"Status"}},{"name":"claim_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ClaimType"},{"type":"null"}],"title":"Claim Type"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ClaimResponse"},"title":"Response Get Agent Claims Api Claims Agents  Agent Id  Claims Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/claims":{"post":{"tags":["claims"],"summary":"Submit Claim","description":"Submit a new claim for verification.","operationId":"submit_claim_api_claims_claims_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["claims"],"summary":"List Claims","description":"List claims with optional filters.","operationId":"list_claims_api_claims_claims_get","parameters":[{"name":"agent_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"uuid"},{"type":"null"}],"title":"Agent Id"}},{"name":"claim_type","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ClaimType"},{"type":"null"}],"title":"Claim Type"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"$ref":"#/components/schemas/ClaimStatus"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ClaimResponse"},"title":"Response List Claims Api Claims Claims Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/claims/{claim_id}":{"get":{"tags":["claims"],"summary":"Get Claim","description":"Get a single claim with details.","operationId":"get_claim_api_claims_claims__claim_id__get","parameters":[{"name":"claim_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Claim Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/claims/{claim_id}/verifications":{"get":{"tags":["claims"],"summary":"Get Claim Verifications","description":"Get all verification attempts for a claim.","operationId":"get_claim_verifications_api_claims_claims__claim_id__verifications_get","parameters":[{"name":"claim_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Claim Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/VerificationAttemptResponse"},"title":"Response Get Claim Verifications Api Claims Claims  Claim Id  Verifications Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/claims/{claim_id}/verify":{"post":{"tags":["claims"],"summary":"Trigger Verification","description":"Trigger verification of a pending claim.","operationId":"trigger_verification_api_claims_claims__claim_id__verify_post","parameters":[{"name":"claim_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Claim Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/claims/{claim_id}/revoke":{"post":{"tags":["claims"],"summary":"Revoke Claim","description":"Revoke a claim (admin). Applies a 2x reputation penalty.","operationId":"revoke_claim_api_claims_claims__claim_id__revoke_post","parameters":[{"name":"claim_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Claim Id"}},{"name":"reason","in":"query","required":true,"schema":{"type":"string","minLength":1,"title":"Reason"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/identity-proofs":{"post":{"tags":["claims"],"summary":"Create Identity Proof","description":"Create a new identity proof challenge.","operationId":"create_identity_proof_api_claims_identity_proofs_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityProofCreate"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityProofResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/identity-proofs/{agent_id}":{"get":{"tags":["claims"],"summary":"Get Identity Proofs","description":"Get all identity proofs for an agent.","operationId":"get_identity_proofs_api_claims_identity_proofs__agent_id__get","parameters":[{"name":"agent_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Agent Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/IdentityProofResponse"},"title":"Response Get Identity Proofs Api Claims Identity Proofs  Agent Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/identity-proofs/{proof_id}/verify":{"post":{"tags":["claims"],"summary":"Verify Identity Proof","description":"Verify an identity proof by checking the challenge on the platform.","operationId":"verify_identity_proof_api_claims_identity_proofs__proof_id__verify_post","parameters":[{"name":"proof_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Proof Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IdentityProofResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/leaderboard":{"get":{"tags":["claims"],"summary":"Get Leaderboard","description":"Get the top agents ranked by reputation.","operationId":"get_leaderboard_api_claims_leaderboard_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"default":25,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/aegis__claims__models__LeaderboardEntry"},"title":"Response Get Leaderboard Api Claims Leaderboard Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/claims/stats":{"get":{"tags":["claims"],"summary":"Get Stats","description":"Get system-wide statistics.","operationId":"get_stats_api_claims_stats_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SystemStats"}}}}}}},"/api/moltx/status":{"get":{"tags":["moltx"],"summary":"Get Status","description":"Current MoltX integration status: state, rate limits, posts today.","operationId":"get_status_api_moltx_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Status Api Moltx Status Get"}}}}}}},"/api/moltx/metrics":{"get":{"tags":["moltx"],"summary":"Get Metrics","description":"Daily engagement metrics summary.","operationId":"get_metrics_api_moltx_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Metrics Api Moltx Metrics Get"}}}}}}},"/api/moltx/posts":{"get":{"tags":["moltx"],"summary":"Get Recent Posts","description":"Recent posts from state history.","operationId":"get_recent_posts_api_moltx_posts_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Recent Posts Api Moltx Posts Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/moltx/topics":{"get":{"tags":["moltx"],"summary":"Get Suggested Topics","description":"Get today's suggested content topics.","operationId":"get_suggested_topics_api_moltx_topics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Suggested Topics Api Moltx Topics Get"}}}}}}},"/api/moltx/morning":{"post":{"tags":["moltx"],"summary":"Trigger Morning","description":"Trigger MoltX morning routine. Defaults to dry_run=True for safety.","operationId":"trigger_morning_api_moltx_morning_post","parameters":[{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Dry Run"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Trigger Morning Api Moltx Morning Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/moltx/evening":{"post":{"tags":["moltx"],"summary":"Trigger Evening","description":"Trigger MoltX evening routine. Defaults to dry_run=True for safety.","operationId":"trigger_evening_api_moltx_evening_post","parameters":[{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Dry Run"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Trigger Evening Api Moltx Evening Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/moltx/feed":{"get":{"tags":["moltx"],"summary":"Get Feed","description":"Fetch MoltX feed (proxied through our client).","operationId":"get_feed_api_moltx_feed_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","default":"recent","title":"Sort"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Feed Api Moltx Feed Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fourclaw/status":{"get":{"tags":["fourclaw"],"summary":"Get Status","description":"Current 4claw integration status.","operationId":"get_status_api_fourclaw_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Status Api Fourclaw Status Get"}}}}}}},"/api/fourclaw/metrics":{"get":{"tags":["fourclaw"],"summary":"Get Metrics","description":"Daily engagement metrics summary.","operationId":"get_metrics_api_fourclaw_metrics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Metrics Api Fourclaw Metrics Get"}}}}}}},"/api/fourclaw/threads":{"get":{"tags":["fourclaw"],"summary":"Get Recent Threads","description":"Recent threads from state history.","operationId":"get_recent_threads_api_fourclaw_threads_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Recent Threads Api Fourclaw Threads Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fourclaw/replies":{"get":{"tags":["fourclaw"],"summary":"Get Recent Replies","description":"Recent replies from state history.","operationId":"get_recent_replies_api_fourclaw_replies_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"title":"Limit"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Get Recent Replies Api Fourclaw Replies Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fourclaw/morning":{"post":{"tags":["fourclaw"],"summary":"Trigger Morning","description":"Trigger 4claw morning routine. Defaults to dry_run=True for safety.","operationId":"trigger_morning_api_fourclaw_morning_post","parameters":[{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Dry Run"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Trigger Morning Api Fourclaw Morning Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fourclaw/evening":{"post":{"tags":["fourclaw"],"summary":"Trigger Evening","description":"Trigger 4claw evening routine. Defaults to dry_run=True for safety.","operationId":"trigger_evening_api_fourclaw_evening_post","parameters":[{"name":"dry_run","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Dry Run"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Trigger Evening Api Fourclaw Evening Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/fourclaw/boards":{"get":{"tags":["fourclaw"],"summary":"Get Boards","description":"Fetch available boards from 4claw.","operationId":"get_boards_api_fourclaw_boards_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Get Boards Api Fourclaw Boards Get"}}}}}}},"/":{"get":{"summary":"Landing Page","description":"Public landing page for Aegis APIs.\n\nFor intel subdomain, serves the intel dashboard directly.","operationId":"landing_page__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/products":{"get":{"summary":"Products Page","description":"Products overview page listing all Aegis offerings.","operationId":"products_page_products_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/research":{"get":{"summary":"Research Landing","description":"Research API landing page with pricing and benefits.","operationId":"research_landing_research_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/research/success":{"get":{"summary":"Research Success","description":"Success page after Stripe checkout.","operationId":"research_success_research_success_get","parameters":[{"name":"session_id","in":"query","required":false,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api-docs":{"get":{"summary":"Api Docs","description":"Human-friendly API documentation.","operationId":"api_docs_api_docs_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/share/{token}":{"get":{"summary":"Share File Redirect","description":"Clean URL for accessing shared files via magic link.\n\nShows viewer UI by default. Use ?download=true for direct download.","operationId":"share_file_redirect_share__token__get","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string","title":"Token"}},{"name":"raw","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Raw"}},{"name":"download","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Download"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/dashboard":{"get":{"summary":"Dashboard","description":"Main dashboard page (internal status).","operationId":"dashboard_dashboard_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/analytics":{"get":{"summary":"Analytics Dashboard","description":"Usage analytics dashboard with charts.","operationId":"analytics_dashboard_analytics_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/orchestration":{"get":{"summary":"Orchestration Dashboard","description":"Agent orchestration visualization dashboard.","operationId":"orchestration_dashboard_orchestration_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/market":{"get":{"summary":"Market Dashboard","description":"Market research dashboard with quotes, screening, and alerts.","operationId":"market_dashboard_market_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/blog":{"get":{"summary":"Blog List","description":"List all blog posts.","operationId":"blog_list_blog_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/blog/{slug}":{"get":{"summary":"Blog Post","description":"Display a single blog post.","operationId":"blog_post_blog__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/docs/architecture":{"get":{"summary":"Architecture Docs","description":"System architecture documentation.","operationId":"architecture_docs_docs_architecture_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"A2ARequestBody":{"properties":{"agent_id":{"type":"string","title":"Agent Id"},"action":{"type":"string","title":"Action"},"params":{"additionalProperties":true,"type":"object","title":"Params","default":{}}},"type":"object","required":["agent_id","action"],"title":"A2ARequestBody"},"AITriageRequest":{"properties":{"emails":{"items":{"additionalProperties":true,"type":"object"},"type":"array","minItems":1,"title":"Emails","description":"List of emails to triage"},"model":{"type":"string","title":"Model","description":"Model to use (tinyllama for fast, qwen3 for detailed)","default":"tinyllama:latest"},"alert_threshold":{"type":"string","title":"Alert Threshold","description":"Send alert for emails at or above this priority","default":"HIGH"}},"type":"object","required":["emails"],"title":"AITriageRequest","description":"Request model for AI-powered email triage."},"APIKeyRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"tier":{"type":"string","title":"Tier","default":"basic"}},"type":"object","required":["email"],"title":"APIKeyRequest","description":"Request model for creating API keys."},"APIKeyResponse":{"properties":{"api_key":{"type":"string","title":"Api Key"},"tier":{"type":"string","title":"Tier"},"requests_per_day":{"type":"integer","title":"Requests Per Day"},"expires_at":{"type":"string","title":"Expires At"},"base_url":{"type":"string","title":"Base Url"},"documentation":{"type":"string","title":"Documentation"}},"type":"object","required":["api_key","tier","requests_per_day","expires_at","base_url","documentation"],"title":"APIKeyResponse","description":"Response model for API key creation."},"ActionItem":{"properties":{"action":{"type":"string","title":"Action","description":"The action to take"},"deadline":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Deadline","description":"Deadline if mentioned"},"assignee":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Assignee","description":"Who should do this"},"priority":{"$ref":"#/components/schemas/EmailPriority","default":"normal"}},"type":"object","required":["action"],"title":"ActionItem","description":"An extracted action item from email."},"AgentCreate":{"properties":{"name":{"type":"string","maxLength":128,"title":"Name"},"display_name":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Display Name"},"public_key_pem":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Public Key Pem"},"moltx_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moltx Agent Id"}},"type":"object","required":["name"],"title":"AgentCreate"},"AgentProfileCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"display_name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Display Name"},"moltx_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moltx Agent Id"},"specializations":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Specializations"}},"type":"object","required":["name"],"title":"AgentProfileCreate","description":"Register a new agent profile."},"AgentProfileResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"moltx_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moltx Agent Id"},"name":{"type":"string","title":"Name"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"specializations":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Specializations"},"success_rate":{"type":"number","title":"Success Rate"},"total_earned_cents":{"type":"integer","title":"Total Earned Cents"},"bounties_completed":{"type":"integer","title":"Bounties Completed"},"reputation_score":{"type":"number","title":"Reputation Score"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","moltx_agent_id","name","display_name","specializations","success_rate","total_earned_cents","bounties_completed","reputation_score","created_at"],"title":"AgentProfileResponse","description":"Public agent profile with stats."},"AgentResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"moltx_agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Moltx Agent Id"},"total_reputation":{"type":"number","title":"Total Reputation"},"reputation_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Reputation Updated At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","name","display_name","moltx_agent_id","total_reputation","reputation_updated_at","created_at"],"title":"AgentResponse"},"AlertAcknowledge":{"properties":{"acknowledged_by":{"type":"string","title":"Acknowledged By","description":"Who acknowledged","default":"user"}},"type":"object","title":"AlertAcknowledge","description":"Acknowledge an alert."},"AlertConfigRequest":{"properties":{"symbol":{"type":"string","title":"Symbol"},"alert_type":{"type":"string","title":"Alert Type"},"condition_value":{"type":"number","title":"Condition Value"},"condition_operator":{"type":"string","title":"Condition Operator","default":"gt"},"cooldown_minutes":{"type":"integer","title":"Cooldown Minutes","default":60}},"type":"object","required":["symbol","alert_type","condition_value"],"title":"AlertConfigRequest","description":"Request model for creating alerts."},"AlertResponse":{"properties":{"id":{"type":"string","title":"Id"},"platform":{"type":"string","title":"Platform"},"alert_type":{"type":"string","title":"Alert Type"},"priority":{"type":"string","title":"Priority"},"title":{"type":"string","title":"Title"},"summary":{"type":"string","title":"Summary"},"message_content":{"type":"string","title":"Message Content"},"message_author":{"type":"string","title":"Message Author"},"suggested_response":{"type":"string","title":"Suggested Response"},"acknowledged":{"type":"boolean","title":"Acknowledged"},"acknowledged_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Acknowledged At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","platform","alert_type","priority","title","summary","message_content","message_author","suggested_response","acknowledged","acknowledged_at","created_at"],"title":"AlertResponse","description":"Alert in response."},"AnalyzeScreenshotRequest":{"properties":{"image_base64":{"type":"string","title":"Image Base64","description":"Base64-encoded screenshot"},"prompt":{"type":"string","title":"Prompt","description":"Analysis prompt","default":"Describe what you see in this screenshot. Note any errors, warnings, or issues."}},"type":"object","required":["image_base64"],"title":"AnalyzeScreenshotRequest","description":"Request model for analyzing a provided screenshot."},"ArchitectureInput":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description","default":""},"layers":{"items":{"$ref":"#/components/schemas/LayerInput"},"type":"array","title":"Layers","default":[]},"has_knowledge_graph":{"type":"boolean","title":"Has Knowledge Graph","default":false},"has_consolidation":{"type":"boolean","title":"Has Consolidation","default":false},"has_context_window_management":{"type":"boolean","title":"Has Context Window Management","default":false},"has_cross_session_transfer":{"type":"boolean","title":"Has Cross Session Transfer","default":false},"has_importance_scoring":{"type":"boolean","title":"Has Importance Scoring","default":false},"has_decay_mechanism":{"type":"boolean","title":"Has Decay Mechanism","default":false},"total_storage_gb":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Total Storage Gb"}},"type":"object","required":["name"],"title":"ArchitectureInput"},"BalanceResponse":{"properties":{"cleared":{"type":"string","title":"Cleared"},"effective":{"type":"string","title":"Effective"},"pending":{"type":"string","title":"Pending"},"overdraft":{"type":"string","title":"Overdraft"},"currency":{"type":"string","title":"Currency"},"available":{"type":"string","title":"Available"},"is_overdrawn":{"type":"boolean","title":"Is Overdrawn"}},"type":"object","required":["cleared","effective","pending","overdraft","currency","available","is_overdrawn"],"title":"BalanceResponse","description":"Account balance response."},"BatchEmailTriageRequest":{"properties":{"emails":{"items":{"$ref":"#/components/schemas/EmailInput"},"type":"array","maxItems":100,"minItems":1,"title":"Emails","description":"List of emails to triage (max 100)"},"mode":{"$ref":"#/components/schemas/TriageMode","description":"Triage processing mode","default":"standard"},"extract_action_items":{"type":"boolean","title":"Extract Action Items","description":"Extract action items from emails","default":true},"use_cache":{"type":"boolean","title":"Use Cache","description":"Use cached results if available","default":true}},"type":"object","required":["emails"],"title":"BatchEmailTriageRequest","description":"Request model for batch email triage.","example":{"emails":[{"body":"...","sender":"boss@company.com","subject":"Meeting tomorrow"},{"body":"...","sender":"news@example.com","subject":"Newsletter"}],"extract_action_items":false,"mode":"quick"}},"Body_analyze_api_vision_analyze_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"prompt":{"type":"string","title":"Prompt"},"model":{"type":"string","title":"Model","default":"qwen3-vl:4b"},"use_zai":{"type":"boolean","title":"Use Zai","description":"Use Z.ai Vision (faster, more accurate)","default":false}},"type":"object","required":["file","prompt"],"title":"Body_analyze_api_vision_analyze_post"},"Body_analyze_architecture_api_vision_architecture_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"model":{"type":"string","title":"Model","default":"qwen3-vl:4b"}},"type":"object","required":["file"],"title":"Body_analyze_architecture_api_vision_architecture_post"},"Body_analyze_dashboard_ui_api_vision_dashboard_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"model":{"type":"string","title":"Model","default":"qwen3-vl:4b"}},"type":"object","required":["file"],"title":"Body_analyze_dashboard_ui_api_vision_dashboard_post"},"Body_analyze_image_upload_api_llm_vision_upload_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"prompt":{"type":"string","title":"Prompt","default":"Describe this image in detail"}},"type":"object","required":["file"],"title":"Body_analyze_image_upload_api_llm_vision_upload_post"},"Body_check_health_api_vision_health_check_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"expected_elements":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expected Elements","description":"Comma-separated list of expected elements"},"model":{"type":"string","title":"Model","default":"qwen3-vl:4b"}},"type":"object","required":["file"],"title":"Body_check_health_api_vision_health_check_post"},"Body_diagnose_error_api_vision_error_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"model":{"type":"string","title":"Model","default":"qwen3-vl:4b"}},"type":"object","required":["file"],"title":"Body_diagnose_error_api_vision_error_post"},"Body_extract_text_api_vision_ocr_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"model":{"type":"string","title":"Model","default":"qwen3-vl:4b"}},"type":"object","required":["file"],"title":"Body_extract_text_api_vision_ocr_post"},"Body_ocr_only_api_document_ocr_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"}},"type":"object","required":["file"],"title":"Body_ocr_only_api_document_ocr_post"},"Body_process_document_api_document_process_post":{"properties":{"file":{"type":"string","contentMediaType":"application/octet-stream","title":"File"},"document_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Type"},"extract_tables":{"type":"boolean","title":"Extract Tables","default":true},"auto_rotate":{"type":"boolean","title":"Auto Rotate","default":true}},"type":"object","required":["file"],"title":"Body_process_document_api_document_process_post"},"BountyCategory":{"type":"string","enum":["research","data","code","analysis","content"],"title":"BountyCategory","description":"Categories of work that can be posted as bounties."},"BountyCreate":{"properties":{"title":{"type":"string","maxLength":500,"minLength":5,"title":"Title"},"description":{"type":"string","minLength":20,"title":"Description"},"category":{"$ref":"#/components/schemas/BountyCategory"},"budget_cents":{"type":"integer","exclusiveMinimum":0.0,"title":"Budget Cents","description":"Budget in cents (e.g. 5000 = 0.00)"},"currency":{"type":"string","maxLength":3,"title":"Currency","default":"USD"},"deadline":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deadline"},"acceptance_criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Acceptance Criteria"},"output_format":{"type":"string","maxLength":50,"title":"Output Format","default":"markdown"},"poster_id":{"type":"string","format":"uuid","title":"Poster Id"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"}},"type":"object","required":["title","description","category","budget_cents","poster_id"],"title":"BountyCreate","description":"Create a new bounty."},"BountyListResponse":{"properties":{"bounties":{"items":{"$ref":"#/components/schemas/BountyResponse"},"type":"array","title":"Bounties"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["bounties","total","page","page_size"],"title":"BountyListResponse","description":"Paginated list of bounties."},"BountyResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"category":{"$ref":"#/components/schemas/BountyCategory"},"budget_cents":{"type":"integer","title":"Budget Cents"},"currency":{"type":"string","title":"Currency"},"deadline":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deadline"},"status":{"$ref":"#/components/schemas/BountyStatus"},"acceptance_criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Acceptance Criteria"},"output_format":{"type":"string","title":"Output Format"},"poster_id":{"type":"string","format":"uuid","title":"Poster Id"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"submission_count":{"type":"integer","title":"Submission Count","default":0}},"type":"object","required":["id","title","description","category","budget_cents","currency","deadline","status","acceptance_criteria","output_format","poster_id","tags","created_at","updated_at"],"title":"BountyResponse","description":"Full bounty details returned by the API."},"BountyStatus":{"type":"string","enum":["open","in_progress","completed","cancelled"],"title":"BountyStatus","description":"Lifecycle status of a bounty."},"BountyUpdate":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":500,"minLength":5},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string","minLength":20},{"type":"null"}],"title":"Description"},"category":{"anyOf":[{"$ref":"#/components/schemas/BountyCategory"},{"type":"null"}]},"budget_cents":{"anyOf":[{"type":"integer","exclusiveMinimum":0.0},{"type":"null"}],"title":"Budget Cents"},"deadline":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Deadline"},"acceptance_criteria":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Acceptance Criteria"},"output_format":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Output Format"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"status":{"anyOf":[{"$ref":"#/components/schemas/BountyStatus"},{"type":"null"}]}},"type":"object","title":"BountyUpdate","description":"Partial update for a bounty (poster only)."},"BriefingRequest":{"properties":{"event":{"type":"string","title":"Event"},"depth":{"type":"string","title":"Depth","default":"standard"}},"type":"object","required":["event"],"title":"BriefingRequest","description":"Request to generate a new briefing."},"BudgetCheckRequest":{"properties":{"transactions":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Transactions","description":"Raw transaction array from MCP"},"days":{"type":"integer","title":"Days","description":"Period in days","default":30},"monthly_budget":{"type":"number","title":"Monthly Budget","description":"Monthly budget limit (GBP)","default":50.0}},"type":"object","required":["transactions"],"title":"BudgetCheckRequest","description":"Request to check budget status."},"CacheStatsResponse":{"properties":{"total_solutions":{"type":"integer","title":"Total Solutions"},"total_lookups":{"type":"integer","title":"Total Lookups"},"cache_hits":{"type":"integer","title":"Cache Hits"},"hit_rate":{"type":"number","title":"Hit Rate"},"avg_success_rate":{"type":"number","title":"Avg Success Rate"}},"type":"object","required":["total_solutions","total_lookups","cache_hits","hit_rate","avg_success_rate"],"title":"CacheStatsResponse","description":"Solution cache statistics."},"CalendarSyncRequest":{"properties":{"events":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Events"}},"type":"object","required":["events"],"title":"CalendarSyncRequest","description":"Request body for calendar sync."},"CandidateResponse":{"properties":{"method_name":{"type":"string","title":"Method Name"},"total_score":{"type":"number","title":"Total Score"},"feasibility":{"type":"number","title":"Feasibility"},"completeness":{"type":"number","title":"Completeness"},"efficiency":{"type":"number","title":"Efficiency"},"clarity":{"type":"number","title":"Clarity"},"task_count":{"type":"integer","title":"Task Count"},"is_selected":{"type":"boolean","title":"Is Selected","default":false}},"type":"object","required":["method_name","total_score","feasibility","completeness","efficiency","clarity","task_count"],"title":"CandidateResponse","description":"A candidate decomposition with scores."},"CardResponse":{"properties":{"uid":{"type":"string","title":"Uid"},"last_four":{"type":"string","title":"Last Four"},"enabled":{"type":"boolean","title":"Enabled"},"controls":{"additionalProperties":true,"type":"object","title":"Controls"}},"type":"object","required":["uid","last_four","enabled","controls"],"title":"CardResponse","description":"Card response."},"CategoryStats":{"properties":{"category":{"$ref":"#/components/schemas/BountyCategory"},"total_bounties":{"type":"integer","title":"Total Bounties"},"open_bounties":{"type":"integer","title":"Open Bounties"},"total_budget_cents":{"type":"integer","title":"Total Budget Cents"},"avg_budget_cents":{"type":"integer","title":"Avg Budget Cents"}},"type":"object","required":["category","total_bounties","open_bounties","total_budget_cents","avg_budget_cents"],"title":"CategoryStats","description":"Statistics for a single bounty category."},"ClaimCreate":{"properties":{"agent_id":{"type":"string","format":"uuid","title":"Agent Id"},"claim_type":{"$ref":"#/components/schemas/ClaimType"},"title":{"type":"string","maxLength":512,"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"claim_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Claim Data"},"evidence_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Url"}},"type":"object","required":["agent_id","claim_type","title"],"title":"ClaimCreate"},"ClaimResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"agent_id":{"type":"string","format":"uuid","title":"Agent Id"},"claim_type":{"$ref":"#/components/schemas/ClaimType"},"title":{"type":"string","title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"claim_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Claim Data"},"evidence_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evidence Url"},"status":{"$ref":"#/components/schemas/ClaimStatus"},"reputation_base_value":{"type":"integer","title":"Reputation Base Value"},"reputation_current_value":{"type":"number","title":"Reputation Current Value"},"verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verified At"},"revoked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Revoked At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","agent_id","claim_type","title","description","claim_data","evidence_url","status","reputation_base_value","reputation_current_value","verified_at","revoked_at","created_at"],"title":"ClaimResponse"},"ClaimStatus":{"type":"string","enum":["pending","verified","rejected","revoked","expired"],"title":"ClaimStatus"},"ClaimType":{"type":"string","enum":["code","deployment","analysis","social","custom"],"title":"ClaimType"},"ClassifyResponse":{"properties":{"intent":{"type":"string","title":"Intent"},"confidence":{"type":"number","title":"Confidence"},"text_preview":{"type":"string","title":"Text Preview"}},"type":"object","required":["intent","confidence","text_preview"],"title":"ClassifyResponse","description":"Intent classification response."},"CleanupResponse":{"properties":{"events_deleted":{"type":"integer","title":"Events Deleted"},"cutoff_days":{"type":"integer","title":"Cutoff Days"}},"type":"object","required":["events_deleted","cutoff_days"],"title":"CleanupResponse","description":"Cleanup response."},"CompetitorApiCreate":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name","description":"Competitor name"},"domain":{"type":"string","title":"Domain","description":"Primary domain (e.g., competitor.com)"},"category":{"type":"string","title":"Category","description":"Category: direct, indirect, aspirational, emerging","default":"direct"},"description":{"type":"string","title":"Description","description":"Brief description","default":""},"products":{"items":{"type":"string"},"type":"array","title":"Products","description":"Products they offer"},"target_market":{"type":"string","title":"Target Market","description":"Their target market","default":""},"pages":{"additionalProperties":true,"type":"object","title":"Pages","description":"Page type -> URL mapping (pricing, features, homepage, etc.)"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"priority":{"type":"string","title":"Priority","description":"Tracking priority","default":"medium"}},"type":"object","required":["name","domain"],"title":"CompetitorApiCreate","description":"API request to create a competitor."},"CompetitorApiUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"products":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Products"},"target_market":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Market"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"priority":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Priority"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},"type":"object","title":"CompetitorApiUpdate","description":"API request to update a competitor."},"CompetitorScanRequest":{"properties":{"competitors":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Competitors","description":"List of competitor domains"},"sources":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sources","description":"Sources: twitter, web, github"},"alert_threshold":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Alert Threshold","description":"Alert threshold","default":0.7}},"type":"object","required":["competitors"],"title":"CompetitorScanRequest","description":"Request to scan competitors."},"ComplaintResponse":{"properties":{"id":{"type":"string","title":"Id"},"competitor":{"type":"string","title":"Competitor"},"author_username":{"type":"string","title":"Author Username"},"content":{"type":"string","title":"Content"},"platform":{"type":"string","title":"Platform"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"severity":{"type":"string","title":"Severity"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"pain_points":{"items":{"type":"string"},"type":"array","title":"Pain Points","default":[]},"posted_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Posted At"},"discovered_at":{"type":"string","title":"Discovered At"}},"type":"object","required":["id","competitor","author_username","content","platform","severity","discovered_at"],"title":"ComplaintResponse","description":"Single complaint response."},"CompleteRequest":{"properties":{"summary":{"type":"string","title":"Summary","description":"Completion summary"}},"type":"object","required":["summary"],"title":"CompleteRequest","description":"Request to mark Ralph complete."},"CompleteTaskRequest":{"properties":{"data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Data"},"artifacts":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Artifacts"}},"type":"object","title":"CompleteTaskRequest","description":"Request to complete a task with optional result data."},"CreateAPIKeyRequest":{"properties":{"name":{"type":"string","title":"Name"},"scopes":{"items":{"type":"string"},"type":"array","title":"Scopes","default":["read"]},"rate_limit_per_minute":{"type":"integer","title":"Rate Limit Per Minute","default":60},"rate_limit_per_day":{"type":"integer","title":"Rate Limit Per Day","default":10000},"expires_in_days":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires In Days"}},"type":"object","required":["name"],"title":"CreateAPIKeyRequest"},"CreateCustomerRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"name":{"type":"string","title":"Name"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"tier":{"type":"string","title":"Tier","default":"free"}},"type":"object","required":["email","name"],"title":"CreateCustomerRequest"},"CreateProductRequest":{"properties":{"name":{"type":"string","title":"Name"},"description":{"type":"string","title":"Description"},"product_type":{"type":"string","title":"Product Type"},"category":{"type":"string","title":"Category"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["name","description","product_type","category"],"title":"CreateProductRequest"},"CreateTaskRequest":{"properties":{"task_type":{"type":"string","title":"Task Type","default":"generic"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"context":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Context"},"ttl_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Ttl Ms"},"source_channel":{"type":"string","title":"Source Channel","default":"api"}},"type":"object","title":"CreateTaskRequest","description":"Request to create a new async task."},"DecomposeRequest":{"properties":{"goal":{"type":"string","title":"Goal","description":"The goal to decompose"},"method":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Method","description":"Decomposition method: deploy, research, implement, debug, create, integrate"},"use_llm":{"type":"boolean","title":"Use Llm","description":"Use LLM for intelligent decomposition","default":false}},"type":"object","required":["goal"],"title":"DecomposeRequest","description":"Request to decompose a goal into tasks."},"DeepBriefingRequest":{"properties":{"topic":{"type":"string","title":"Topic"},"location":{"type":"string","title":"Location"},"date":{"type":"string","title":"Date","default":""},"method":{"type":"string","title":"Method","default":"perplexity"},"email":{"type":"string","title":"Email"}},"type":"object","required":["topic","location"],"title":"DeepBriefingRequest","description":"Request to generate a deep intelligence briefing."},"DeepBriefingResponse":{"properties":{"job_id":{"type":"string","title":"Job Id"},"status":{"type":"string","title":"Status"},"topic":{"type":"string","title":"Topic"},"location":{"type":"string","title":"Location"},"method":{"type":"string","title":"Method"},"message":{"type":"string","title":"Message"}},"type":"object","required":["job_id","status","topic","location","method","message"],"title":"DeepBriefingResponse","description":"Response from deep briefing generation."},"DetectRequest":{"properties":{"tweets":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Tweets","description":"List of tweet objects with id, text, author, etc."},"competitor":{"type":"string","title":"Competitor","description":"Competitor name to tag complaints with"}},"type":"object","required":["tweets","competitor"],"title":"DetectRequest","description":"Request to detect complaints from tweets."},"DetectResponse":{"properties":{"complaints":{"items":{"$ref":"#/components/schemas/ComplaintResponse"},"type":"array","title":"Complaints"},"count":{"type":"integer","title":"Count"},"by_severity":{"additionalProperties":true,"type":"object","title":"By Severity"},"top_pain_points":{"items":{"type":"string"},"type":"array","title":"Top Pain Points"}},"type":"object","required":["complaints","count","by_severity","top_pain_points"],"title":"DetectResponse","description":"Complaint detection response."},"DigestRequest":{"properties":{"competitors":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Competitors","description":"Competitors to include"},"days":{"type":"integer","maximum":30.0,"minimum":1.0,"title":"Days","description":"Days to include","default":7}},"type":"object","required":["competitors"],"title":"DigestRequest","description":"Request to generate a digest."},"DigestSendRequest":{"properties":{"frequency":{"type":"string","title":"Frequency","default":"weekly"},"admin_key":{"type":"string","title":"Admin Key"}},"type":"object","required":["admin_key"],"title":"DigestSendRequest","description":"Request to send digests manually."},"DraftEditRequest":{"properties":{"body":{"type":"string","minLength":1,"title":"Body","description":"Edited draft body"},"subject":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subject","description":"Edited subject line"}},"type":"object","required":["body"],"title":"DraftEditRequest","description":"Request to edit a draft before approval."},"EmailCategory":{"type":"string","enum":["action_required","waiting_for","fyi","newsletter","promotional","automated","personal","support","financial","spam"],"title":"EmailCategory","description":"Email category classification."},"EmailDraftRequest":{"properties":{"context":{"type":"string","title":"Context","description":"Context for the email (what it's about)"},"recipient_info":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Recipient Info","description":"Information about the recipient"},"style":{"type":"string","title":"Style","description":"Email style: professional, casual, formal","default":"professional"},"length":{"type":"string","title":"Length","description":"Email length: short ($0.50), medium ($1.00), long ($2.00)","default":"medium"},"tone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tone","description":"Specific tone (e.g., urgent, friendly, apologetic)"}},"type":"object","required":["context"],"title":"EmailDraftRequest","description":"Request to generate an email draft."},"EmailDraftResponse":{"properties":{"draft_id":{"type":"string","title":"Draft Id"},"subject":{"type":"string","title":"Subject"},"body":{"type":"string","title":"Body"},"style":{"type":"string","title":"Style"},"length":{"type":"string","title":"Length"},"cost_cents":{"type":"integer","title":"Cost Cents"},"cost_dollars":{"type":"number","title":"Cost Dollars"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["draft_id","subject","body","style","length","cost_cents","cost_dollars","created_at"],"title":"EmailDraftResponse","description":"Response containing the generated email draft."},"EmailInput":{"properties":{"subject":{"type":"string","maxLength":500,"minLength":1,"title":"Subject","description":"Email subject line"},"sender":{"type":"string","maxLength":200,"title":"Sender","description":"Sender email address or name"},"body":{"type":"string","maxLength":50000,"title":"Body","description":"Email body text (plain text preferred)","default":""},"received_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Received At","description":"When the email was received"},"email_id":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Email Id","description":"External email ID for tracking"}},"type":"object","required":["subject","sender"],"title":"EmailInput","description":"Single email input for triage.","example":{"body":"Please review the attached Q4 budget proposal...","email_id":"msg_123","received_at":"2026-01-04T10:30:00Z","sender":"cfo@company.com","subject":"Q4 Budget Review - Action Required"}},"EmailPriority":{"type":"string","enum":["urgent","high","normal","low","archive"],"title":"EmailPriority","description":"Email priority levels."},"EmailTriageCreditsResponse":{"properties":{"credits_remaining":{"type":"number","title":"Credits Remaining"},"credits_used_today":{"type":"number","title":"Credits Used Today"},"credits_used_month":{"type":"number","title":"Credits Used Month"},"tier":{"type":"string","title":"Tier"},"rate_limit_remaining":{"type":"integer","title":"Rate Limit Remaining"},"rate_limit_reset_at":{"type":"string","format":"date-time","title":"Rate Limit Reset At"}},"type":"object","required":["credits_remaining","credits_used_today","credits_used_month","tier","rate_limit_remaining","rate_limit_reset_at"],"title":"EmailTriageCreditsResponse","description":"Response showing credit balance and usage."},"EmailTriageErrorResponse":{"properties":{"error":{"type":"string","title":"Error"},"error_code":{"type":"string","title":"Error Code"},"details":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Details"}},"type":"object","required":["error","error_code"],"title":"EmailTriageErrorResponse","description":"Error response model.","example":{"details":{"retry_after":60},"error":"Rate limit exceeded","error_code":"RATE_LIMITED"}},"EmailTriageListItem":{"properties":{"id":{"type":"string","title":"Id"},"email_count":{"type":"integer","title":"Email Count"},"mode":{"type":"string","title":"Mode"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"credits_used":{"type":"number","title":"Credits Used"}},"type":"object","required":["id","email_count","mode","status","created_at","credits_used"],"title":"EmailTriageListItem","description":"Summary item for listing triage history."},"EmailTriageRequest":{"properties":{"email":{"$ref":"#/components/schemas/EmailInput","description":"The email to triage"},"mode":{"$ref":"#/components/schemas/TriageMode","description":"Triage processing mode","default":"standard"},"extract_action_items":{"type":"boolean","title":"Extract Action Items","description":"Extract action items from email (requires standard or deep mode)","default":true},"suggest_response":{"type":"boolean","title":"Suggest Response","description":"Generate response suggestions (requires deep mode)","default":false},"use_cache":{"type":"boolean","title":"Use Cache","description":"Use cached results if available","default":true}},"type":"object","required":["email"],"title":"EmailTriageRequest","description":"Request model for single email triage.","example":{"email":{"body":"Hi, the deadline has been moved to next Friday...","sender":"pm@company.com","subject":"Project deadline moved"},"extract_action_items":true,"mode":"standard","suggest_response":false}},"EmailTriageResponse":{"properties":{"id":{"type":"string","title":"Id","description":"Unique triage request ID"},"status":{"type":"string","title":"Status","description":"completed, cached, failed"},"results":{"items":{"$ref":"#/components/schemas/EmailTriageResult"},"type":"array","title":"Results","description":"Triage results for each email"},"total_emails":{"type":"integer","title":"Total Emails","default":0},"by_priority":{"additionalProperties":{"type":"integer"},"type":"object","title":"By Priority"},"by_category":{"additionalProperties":{"type":"integer"},"type":"object","title":"By Category"},"duration_ms":{"type":"integer","title":"Duration Ms","default":0},"created_at":{"type":"string","format":"date-time","title":"Created At"},"credits_used":{"type":"number","title":"Credits Used","default":0},"mode":{"$ref":"#/components/schemas/TriageMode"}},"type":"object","required":["id","status","results","created_at","mode"],"title":"EmailTriageResponse","description":"Response model for Email Triage API.","example":{"by_category":{"action_required":1},"by_priority":{"high":1},"created_at":"2026-01-04T12:00:00Z","credits_used":1.0,"duration_ms":1523,"id":"tri_abc123","mode":"standard","results":[{"action_items":[{"action":"Review Q4 budget","deadline":"Friday"}],"category":"action_required","confidence":0.92,"email_id":"msg_123","priority":"high","summary":"Budget review needed by Friday"}],"status":"completed","total_emails":1}},"EmailTriageResult":{"properties":{"email_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email Id","description":"Input email ID if provided"},"priority":{"$ref":"#/components/schemas/EmailPriority","description":"Assigned priority level"},"category":{"$ref":"#/components/schemas/EmailCategory","description":"Email category"},"summary":{"type":"string","title":"Summary","description":"Brief summary of the email"},"action_items":{"items":{"$ref":"#/components/schemas/ActionItem"},"type":"array","title":"Action Items"},"response_suggestion":{"anyOf":[{"$ref":"#/components/schemas/ResponseSuggestion"},{"type":"null"}]},"cached":{"type":"boolean","title":"Cached","default":false},"confidence":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Confidence","default":0.8}},"type":"object","required":["priority","category","summary"],"title":"EmailTriageResult","description":"Triage result for a single email."},"EventResponse":{"properties":{"event_id":{"type":"string","title":"Event Id"},"title":{"type":"string","title":"Title"},"start_time":{"type":"string","title":"Start Time"},"end_time":{"type":"string","title":"End Time"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"},"attendees":{"items":{"type":"string"},"type":"array","title":"Attendees","default":[]},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata","default":{}}},"type":"object","required":["event_id","title","start_time","end_time"],"title":"EventResponse","description":"Single calendar event response."},"ExecuteRequest":{"properties":{"tree_id":{"type":"string","title":"Tree Id"},"dry_run":{"type":"boolean","title":"Dry Run","description":"Simulate execution without running","default":false}},"type":"object","required":["tree_id"],"title":"ExecuteRequest","description":"Plan execution request."},"ExecutionResponse":{"properties":{"tree_id":{"type":"string","title":"Tree Id"},"status":{"type":"string","title":"Status"},"completed_tasks":{"type":"integer","title":"Completed Tasks"},"failed_tasks":{"type":"integer","title":"Failed Tasks"},"skipped_tasks":{"type":"integer","title":"Skipped Tasks"},"total_tasks":{"type":"integer","title":"Total Tasks"},"duration_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Seconds"}},"type":"object","required":["tree_id","status","completed_tasks","failed_tasks","skipped_tasks","total_tasks"],"title":"ExecutionResponse","description":"Execution result response."},"ExternalScanRequest":{"properties":{"twitter_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Twitter Results"},"news_results":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"News Results"},"balance_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Balance Data"},"transactions":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Transactions"}},"type":"object","title":"ExternalScanRequest","description":"Request body for external scan."},"FailRequest":{"properties":{"reason":{"type":"string","title":"Reason","description":"Failure reason"}},"type":"object","required":["reason"],"title":"FailRequest","description":"Request to mark Ralph failed."},"FailTaskRequest":{"properties":{"error":{"type":"string","title":"Error"}},"type":"object","required":["error"],"title":"FailTaskRequest","description":"Request to fail a task with error message."},"FileOperation":{"properties":{"id":{"type":"integer","title":"Id"},"tool_name":{"type":"string","title":"Tool Name"},"operation_type":{"type":"string","title":"Operation Type"},"file_path":{"type":"string","title":"File Path"},"turn_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Turn Number"},"status":{"type":"string","title":"Status"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","tool_name","operation_type","file_path","status","created_at"],"title":"FileOperation","description":"A file operation performed during a session."},"FindingResponse":{"properties":{"severity":{"type":"string","title":"Severity"},"type":{"type":"string","title":"Type"},"file":{"type":"string","title":"File"},"line":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Line"},"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"suggestion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Suggestion"}},"type":"object","required":["severity","type","file","title","description"],"title":"FindingResponse","description":"Single finding in a review."},"GenerateRequest":{"properties":{"post_type":{"type":"string","title":"Post Type","description":"Type: project_update, weekly_recap, til, technical_deep_dive","default":"project_update"},"time_range_days":{"type":"integer","maximum":90.0,"minimum":1.0,"title":"Time Range Days","default":7},"include_commits":{"type":"boolean","title":"Include Commits","default":true},"include_tasks":{"type":"boolean","title":"Include Tasks","default":true},"include_episodes":{"type":"boolean","title":"Include Episodes","default":true},"target_audience":{"type":"string","title":"Target Audience","default":"developers"},"tone":{"type":"string","title":"Tone","default":"professional"}},"type":"object","title":"GenerateRequest","description":"Request to generate a blog post."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthCheckResponse":{"properties":{"status":{"type":"string","title":"Status"},"summary":{"type":"string","title":"Summary"},"issues":{"items":{"type":"string"},"type":"array","title":"Issues"},"metrics_observed":{"additionalProperties":true,"type":"object","title":"Metrics Observed"},"timestamp":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timestamp"}},"type":"object","required":["status","summary","issues","metrics_observed"],"title":"HealthCheckResponse","description":"Visual health check response."},"IdentityPlatform":{"type":"string","enum":["github","twitter","dns","domain","moltx"],"title":"IdentityPlatform"},"IdentityProofCreate":{"properties":{"agent_id":{"type":"string","format":"uuid","title":"Agent Id"},"platform":{"$ref":"#/components/schemas/IdentityPlatform"},"platform_username":{"type":"string","maxLength":256,"title":"Platform Username"}},"type":"object","required":["agent_id","platform","platform_username"],"title":"IdentityProofCreate"},"IdentityProofResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"agent_id":{"type":"string","format":"uuid","title":"Agent Id"},"platform":{"$ref":"#/components/schemas/IdentityPlatform"},"platform_username":{"type":"string","title":"Platform Username"},"verified":{"type":"boolean","title":"Verified"},"verified_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Verified At"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","agent_id","platform","platform_username","verified","verified_at","created_at"],"title":"IdentityProofResponse"},"IntelResponse":{"properties":{"competitor":{"type":"string","title":"Competitor"},"handles":{"items":{"type":"string"},"type":"array","title":"Handles"},"complaints_count":{"type":"integer","title":"Complaints Count"},"prospects_count":{"type":"integer","title":"Prospects Count"},"total_tweets_analyzed":{"type":"integer","title":"Total Tweets Analyzed"},"severity_breakdown":{"additionalProperties":true,"type":"object","title":"Severity Breakdown"},"top_pain_points":{"items":{"items":{},"type":"array"},"type":"array","title":"Top Pain Points"},"insights":{"items":{"type":"string"},"type":"array","title":"Insights"},"generated_at":{"type":"string","title":"Generated At"}},"type":"object","required":["competitor","handles","complaints_count","prospects_count","total_tweets_analyzed","severity_breakdown","top_pain_points","insights","generated_at"],"title":"IntelResponse","description":"Competitor intelligence response."},"KeywordRuleCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Rule name"},"keywords":{"items":{"type":"string"},"type":"array","title":"Keywords","description":"Keywords to match"},"match_mode":{"type":"string","title":"Match Mode","description":"Match mode: any or all","default":"any"},"alert_priority":{"type":"string","title":"Alert Priority","description":"Alert priority","default":"medium"},"alert_channels":{"items":{"type":"string"},"type":"array","title":"Alert Channels"}},"type":"object","required":["name","keywords"],"title":"KeywordRuleCreate","description":"Create a keyword rule."},"KeywordRuleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"keywords":{"items":{"type":"string"},"type":"array","title":"Keywords"},"match_mode":{"type":"string","title":"Match Mode"},"alert_priority":{"type":"string","title":"Alert Priority"},"enabled":{"type":"boolean","title":"Enabled"},"matches":{"type":"integer","title":"Matches"},"last_match_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Match At"}},"type":"object","required":["id","name","keywords","match_mode","alert_priority","enabled","matches","last_match_at"],"title":"KeywordRuleResponse","description":"Keyword rule in response."},"LayerInput":{"properties":{"name":{"type":"string","title":"Name"},"type":{"type":"string","title":"Type"},"backend":{"type":"string","title":"Backend"},"has_embeddings":{"type":"boolean","title":"Has Embeddings","default":false},"has_ttl":{"type":"boolean","title":"Has Ttl","default":false},"has_indexing":{"type":"boolean","title":"Has Indexing","default":false},"has_compression":{"type":"boolean","title":"Has Compression","default":false},"max_entries":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Entries"},"estimated_latency_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Estimated Latency Ms"}},"type":"object","required":["name","type","backend"],"title":"LayerInput"},"LeaderboardResponse":{"properties":{"entries":{"items":{"$ref":"#/components/schemas/aegis__bountyboard__schemas__LeaderboardEntry"},"type":"array","title":"Entries"},"sort_by":{"type":"string","title":"Sort By"},"total_agents":{"type":"integer","title":"Total Agents"}},"type":"object","required":["entries","sort_by","total_agents"],"title":"LeaderboardResponse","description":"Top agents ranked by earnings or reputation."},"MessageResponse":{"properties":{"id":{"type":"string","title":"Id"},"platform":{"type":"string","title":"Platform"},"message_id":{"type":"string","title":"Message Id"},"content":{"type":"string","title":"Content"},"author_id":{"type":"string","title":"Author Id"},"author_name":{"type":"string","title":"Author Name"},"channel_name":{"type":"string","title":"Channel Name"},"keywords_matched":{"items":{"type":"string"},"type":"array","title":"Keywords Matched"},"sentiment":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sentiment"},"sentiment_score":{"type":"number","title":"Sentiment Score"},"is_mention":{"type":"boolean","title":"Is Mention"},"posted_at":{"type":"string","format":"date-time","title":"Posted At"}},"type":"object","required":["id","platform","message_id","content","author_id","author_name","channel_name","keywords_matched","sentiment","sentiment_score","is_mention","posted_at"],"title":"MessageResponse","description":"Message in response."},"MonitorCheckBody":{"properties":{"set_baseline":{"type":"boolean","title":"Set Baseline","description":"Set result as new baseline","default":false},"image_base64":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Base64","description":"Pre-captured screenshot"}},"type":"object","title":"MonitorCheckBody","description":"Request body for checking a monitor."},"MonitorCreateBody":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name","description":"Unique monitor name"},"url":{"type":"string","title":"Url","description":"URL to monitor"},"frequency":{"type":"string","title":"Frequency","description":"Check frequency: hourly, every_6_hours, daily, weekly, on_demand","default":"daily"},"viewport_width":{"type":"integer","maximum":3840.0,"minimum":320.0,"title":"Viewport Width","default":1920},"viewport_height":{"type":"integer","maximum":2160.0,"minimum":240.0,"title":"Viewport Height","default":1080},"full_page":{"type":"boolean","title":"Full Page","description":"Capture full scrollable page","default":false},"selector":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Selector","description":"CSS selector for specific region"},"ignore_selectors":{"items":{"type":"string"},"type":"array","title":"Ignore Selectors","description":"CSS selectors to ignore"},"analysis_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Analysis Prompt","description":"Custom analysis prompt"},"change_threshold":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Change Threshold","description":"Alert threshold 0-1","default":0.1},"alert_channels":{"items":{"type":"string"},"type":"array","title":"Alert Channels","description":"Alert channels"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags","description":"Tags for organization"}},"type":"object","required":["name","url"],"title":"MonitorCreateBody","description":"Request body for creating a monitor."},"MonitorRequest":{"properties":{"url":{"type":"string","title":"Url","description":"URL to monitor"},"name":{"type":"string","title":"Name","description":"Unique name for this monitor"},"prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt","description":"Custom analysis prompt","default":"Describe what you see on this page. Note any errors, warnings, or unusual content."},"save_baseline":{"type":"boolean","title":"Save Baseline","description":"Save this analysis as the new baseline","default":false}},"type":"object","required":["url","name"],"title":"MonitorRequest","description":"Request model for visual monitoring."},"NewsItemResponse":{"properties":{"title":{"type":"string","title":"Title"},"url":{"type":"string","title":"Url"},"source":{"type":"string","title":"Source"},"source_domain":{"type":"string","title":"Source Domain"},"published":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Published"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"categories":{"items":{"type":"string"},"type":"array","title":"Categories","default":[]},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"bias":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bias"},"reliability":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reliability"}},"type":"object","required":["title","url","source","source_domain"],"title":"NewsItemResponse","description":"News item response."},"NewsResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/NewsItemResponse"},"type":"array","title":"Items"},"count":{"type":"integer","title":"Count"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"fetched_at":{"type":"string","title":"Fetched At"}},"type":"object","required":["items","count","fetched_at"],"title":"NewsResponse","description":"News aggregation response."},"NotificationPriority":{"type":"string","enum":["low","normal","high","critical"],"title":"NotificationPriority"},"OODACycleResponse":{"properties":{"id":{"type":"integer","title":"Id"},"observe_context":{"additionalProperties":true,"type":"object","title":"Observe Context"},"observe_inputs":{"items":{"type":"string"},"type":"array","title":"Observe Inputs"},"orient_analysis":{"type":"string","title":"Orient Analysis"},"orient_constraints":{"additionalProperties":true,"type":"object","title":"Orient Constraints"},"decide_options":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Decide Options"},"decide_choice":{"type":"string","title":"Decide Choice"},"decide_reasoning":{"type":"string","title":"Decide Reasoning"},"act_action":{"type":"string","title":"Act Action"},"act_result":{"additionalProperties":true,"type":"object","title":"Act Result"},"act_success":{"type":"boolean","title":"Act Success"},"cycle_duration_ms":{"type":"integer","title":"Cycle Duration Ms"},"model_used":{"type":"string","title":"Model Used"},"related_task_id":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Related Task Id"},"timestamp":{"type":"string","title":"Timestamp"}},"type":"object","required":["id","observe_context","observe_inputs","orient_analysis","orient_constraints","decide_options","decide_choice","decide_reasoning","act_action","act_result","act_success","cycle_duration_ms","model_used","timestamp"],"title":"OODACycleResponse","description":"OODA cycle response."},"OODAStatsResponse":{"properties":{"total_cycles":{"type":"integer","title":"Total Cycles"},"successful_cycles":{"type":"integer","title":"Successful Cycles"},"failed_cycles":{"type":"integer","title":"Failed Cycles"},"success_rate":{"type":"number","title":"Success Rate"},"avg_duration_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Avg Duration Ms"},"models_used":{"additionalProperties":true,"type":"object","title":"Models Used"}},"type":"object","required":["total_cycles","successful_cycles","failed_cycles","success_rate","models_used"],"title":"OODAStatsResponse","description":"OODA statistics response."},"OpportunityResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id"},"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"source":{"type":"string","title":"Source"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"},"score":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Score"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"keywords":{"items":{"type":"string"},"type":"array","title":"Keywords","default":[]},"validation_notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Validation Notes"},"status":{"type":"string","title":"Status","default":"new"},"created_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Created At"}},"type":"object","required":["title","description","source","score"],"title":"OpportunityResponse","description":"Single opportunity response."},"OutputFormat":{"type":"string","enum":["markdown","json","html"],"title":"OutputFormat","description":"Output format options."},"PageApiCreate":{"properties":{"page_type":{"type":"string","title":"Page Type","description":"Page type: homepage, pricing, features, blog, changelog, careers, about, product, landing, custom"},"url":{"type":"string","title":"Url","description":"URL to monitor"},"analysis_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Analysis Prompt","description":"Custom analysis prompt"},"change_threshold":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Change Threshold","default":0.1}},"type":"object","required":["page_type","url"],"title":"PageApiCreate","description":"API request to add a monitored page."},"ParseBalanceRequest":{"properties":{"data":{"additionalProperties":true,"type":"object","title":"Data","description":"Raw balance data from starling_get_balance MCP"}},"type":"object","required":["data"],"title":"ParseBalanceRequest","description":"Request to parse balance data."},"ParseCardsRequest":{"properties":{"cards":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Cards","description":"Raw cards array from MCP"}},"type":"object","required":["cards"],"title":"ParseCardsRequest","description":"Request to parse cards data."},"ParseRequest":{"properties":{"response":{"type":"string","title":"Response","description":"Raw LLM response to parse"},"formats":{"items":{"type":"string"},"type":"array","title":"Formats","description":"Formats to extract from response","default":["summary","twitter","key_points"]}},"type":"object","required":["response"],"title":"ParseRequest","description":"Request to parse LLM response."},"ParseSpacesRequest":{"properties":{"spaces":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Spaces","description":"Raw spaces array from MCP"}},"type":"object","required":["spaces"],"title":"ParseSpacesRequest","description":"Request to parse spaces data."},"ParseTransactionsRequest":{"properties":{"transactions":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Transactions","description":"Raw transaction array from MCP"},"days":{"type":"integer","title":"Days","description":"Period for spending analysis","default":7}},"type":"object","required":["transactions"],"title":"ParseTransactionsRequest","description":"Request to parse and analyze transactions."},"PlatformStats":{"properties":{"total_bounties":{"type":"integer","title":"Total Bounties"},"open_bounties":{"type":"integer","title":"Open Bounties"},"completed_bounties":{"type":"integer","title":"Completed Bounties"},"total_volume_cents":{"type":"integer","title":"Total Volume Cents"},"total_agents":{"type":"integer","title":"Total Agents"},"total_posters":{"type":"integer","title":"Total Posters"},"total_submissions":{"type":"integer","title":"Total Submissions"},"categories":{"items":{"$ref":"#/components/schemas/CategoryStats"},"type":"array","title":"Categories"}},"type":"object","required":["total_bounties","open_bounties","completed_bounties","total_volume_cents","total_agents","total_posters","total_submissions","categories"],"title":"PlatformStats","description":"Overall platform statistics."},"PolicyUpdate":{"properties":{"container":{"type":"string","title":"Container","description":"Container name"},"policy":{"type":"string","title":"Policy","description":"Policy: auto, approval, or alert"},"max_restarts":{"type":"integer","title":"Max Restarts","description":"Max restarts in window","default":3}},"type":"object","required":["container","policy"],"title":"PolicyUpdate","description":"Update policy for a container."},"PosterCreate":{"properties":{"email":{"type":"string","maxLength":255,"title":"Email"},"name":{"type":"string","maxLength":255,"title":"Name"}},"type":"object","required":["email","name"],"title":"PosterCreate","description":"Create a new bounty poster account."},"PosterResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"email":{"type":"string","title":"Email"},"name":{"type":"string","title":"Name"},"total_spent_cents":{"type":"integer","title":"Total Spent Cents"},"bounties_posted":{"type":"integer","title":"Bounties Posted"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","email","name","total_spent_cents","bounties_posted","created_at"],"title":"PosterResponse","description":"Public representation of a bounty poster."},"ProcessResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"document_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Document Type"},"confidence":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Confidence"},"fields":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Fields"},"tables":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Tables"},"raw_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Raw Text"},"warnings":{"items":{},"type":"array","title":"Warnings","default":[]},"errors":{"items":{},"type":"array","title":"Errors","default":[]},"processing_time_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Processing Time Ms"}},"type":"object","required":["success"],"title":"ProcessResponse","description":"Response from document processing."},"ProspectResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"username":{"type":"string","title":"Username"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"source":{"type":"string","title":"Source"},"source_content":{"type":"string","title":"Source Content"},"signals":{"items":{"type":"string"},"type":"array","title":"Signals","default":[]},"score":{"type":"number","title":"Score"},"status":{"type":"string","title":"Status"},"pain_points":{"items":{"type":"string"},"type":"array","title":"Pain Points","default":[]},"competitor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Competitor"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","name","username","source","source_content","score","status","created_at"],"title":"ProspectResponse","description":"Prospect response."},"ProvideInputRequest":{"properties":{"response":{"type":"string","title":"Response"}},"type":"object","required":["response"],"title":"ProvideInputRequest","description":"Request to provide input for a task awaiting input."},"PublishRequest":{"properties":{"format":{"type":"string","title":"Format","description":"Format: markdown or html","default":"markdown"}},"type":"object","title":"PublishRequest","description":"Request to publish a blog post."},"QueryRequest":{"properties":{"prompt":{"type":"string","minLength":1,"title":"Prompt","description":"The prompt to send to the LLM"},"system":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System","description":"Optional system prompt"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"Specific model to use (overrides auto-selection)"},"task_type":{"$ref":"#/components/schemas/TaskType","description":"Task type for auto-selection","default":"operational"},"temperature":{"type":"number","maximum":2.0,"minimum":0.0,"title":"Temperature","description":"Sampling temperature","default":0.7},"max_tokens":{"type":"integer","maximum":32768.0,"minimum":1.0,"title":"Max Tokens","description":"Max tokens to generate","default":2048}},"type":"object","required":["prompt"],"title":"QueryRequest","description":"Request model for LLM queries."},"RalphStateResponse":{"properties":{"active":{"type":"boolean","title":"Active"},"task":{"type":"string","title":"Task"},"iteration":{"type":"integer","title":"Iteration"},"max_iterations":{"type":"integer","title":"Max Iterations"},"verify_command":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verify Command"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"timeout_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timeout At"},"history":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"History"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"status":{"type":"string","title":"Status"},"files_modified":{"items":{"type":"string"},"type":"array","title":"Files Modified"},"stuck_count":{"type":"integer","title":"Stuck Count"},"last_verification_output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Verification Output"}},"type":"object","required":["active","task","iteration","max_iterations","history","status","files_modified","stuck_count"],"title":"RalphStateResponse","description":"Full Ralph state response."},"RalphStatusResponse":{"properties":{"active":{"type":"boolean","title":"Active"},"task":{"type":"string","title":"Task"},"status":{"type":"string","title":"Status"},"iteration":{"type":"integer","title":"Iteration"},"max_iterations":{"type":"integer","title":"Max Iterations"},"time_remaining_seconds":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Time Remaining Seconds"},"stuck_count":{"type":"integer","title":"Stuck Count"},"last_error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Error"},"files_modified":{"type":"integer","title":"Files Modified"},"history_count":{"type":"integer","title":"History Count"}},"type":"object","required":["active","task","status","iteration","max_iterations","stuck_count","files_modified","history_count"],"title":"RalphStatusResponse","description":"Ralph status response."},"RatingCreate":{"properties":{"poster_id":{"type":"string","format":"uuid","title":"Poster Id"},"score":{"type":"integer","maximum":5.0,"minimum":1.0,"title":"Score"},"feedback":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feedback"}},"type":"object","required":["poster_id","score"],"title":"RatingCreate","description":"Rate an agent after reviewing their submission."},"RatingResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"bounty_id":{"type":"string","format":"uuid","title":"Bounty Id"},"submission_id":{"type":"string","format":"uuid","title":"Submission Id"},"poster_id":{"type":"string","format":"uuid","title":"Poster Id"},"agent_id":{"type":"string","format":"uuid","title":"Agent Id"},"score":{"type":"integer","title":"Score"},"feedback":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feedback"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","bounty_id","submission_id","poster_id","agent_id","score","feedback","created_at"],"title":"RatingResponse","description":"Rating details."},"ReasoningRequest":{"properties":{"problem":{"type":"string","minLength":1,"title":"Problem","description":"The problem to reason through"},"context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Context","description":"Additional context"}},"type":"object","required":["problem"],"title":"ReasoningRequest","description":"Request model for chain-of-thought reasoning."},"RecordIterationRequest":{"properties":{"action":{"type":"string","title":"Action","description":"What action was taken"},"result":{"type":"string","title":"Result","description":"Result of the action"},"files_modified":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Files Modified","description":"Files that were modified"}},"type":"object","required":["action","result"],"title":"RecordIterationRequest","description":"Request to record an iteration."},"RegionPreferenceRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"},"region":{"type":"string","title":"Region"}},"type":"object","required":["email","region"],"title":"RegionPreferenceRequest","description":"Request to set region preference."},"RegisterRequest":{"properties":{"email":{"type":"string","title":"Email","description":"Developer email address"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Developer or application name"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company","description":"Company name"}},"type":"object","required":["email"],"title":"RegisterRequest","description":"Request to register for an API key."},"RegisterRequesterBody":{"properties":{"name":{"type":"string","title":"Name"},"allowed_capabilities":{"items":{"type":"string"},"type":"array","title":"Allowed Capabilities","default":[]},"rate_limit_per_minute":{"type":"integer","title":"Rate Limit Per Minute","default":60},"rate_limit_per_day":{"type":"integer","title":"Rate Limit Per Day","default":1000}},"type":"object","required":["name"],"title":"RegisterRequesterBody"},"RemediateRequest":{"properties":{"container":{"type":"string","title":"Container","description":"Container name"},"force":{"type":"boolean","title":"Force","description":"Force restart regardless of policy","default":false}},"type":"object","required":["container"],"title":"RemediateRequest","description":"Request to remediate a container."},"RepurposeApiRequest":{"properties":{"content":{"type":"string","minLength":10,"title":"Content","description":"Text content or URL to repurpose"},"formats":{"items":{"type":"string"},"type":"array","title":"Formats","description":"Output formats: twitter, twitter_thread, linkedin, instagram, facebook, summary, key_points, headline, hook, quote, email_snippet, blog_intro, hashtags, keywords","default":["summary","twitter","key_points"]},"tone":{"type":"string","title":"Tone","description":"Tone: professional, casual, formal, engaging, inspirational","default":"professional"},"target_audience":{"type":"string","title":"Target Audience","description":"Target audience description","default":"general"},"brand_voice":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Brand Voice","description":"Custom brand voice guidelines"},"include_cta":{"type":"boolean","title":"Include Cta","description":"Include call to action in outputs","default":false},"use_local":{"type":"boolean","title":"Use Local","description":"Use local Ollama model instead of GLM-4.7","default":false}},"type":"object","required":["content"],"title":"RepurposeApiRequest","description":"Request to repurpose content."},"ReputationResponse":{"properties":{"agent_id":{"type":"string","format":"uuid","title":"Agent Id"},"agent_name":{"type":"string","title":"Agent Name"},"total_reputation":{"type":"number","title":"Total Reputation"},"breakdown":{"additionalProperties":{"type":"number"},"type":"object","title":"Breakdown"},"reputation_updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Reputation Updated At"},"verified_claims_count":{"type":"integer","title":"Verified Claims Count"},"identity_proofs_count":{"type":"integer","title":"Identity Proofs Count"}},"type":"object","required":["agent_id","agent_name","total_reputation","breakdown","reputation_updated_at","verified_claims_count","identity_proofs_count"],"title":"ReputationResponse"},"ResearchAPIRequest":{"properties":{"topic":{"type":"string","maxLength":500,"minLength":3,"title":"Topic","description":"The research topic or question"},"depth":{"$ref":"#/components/schemas/ResearchDepth","description":"Research depth level","default":"medium"},"urls":{"items":{"type":"string"},"type":"array","maxItems":20,"title":"Urls","description":"Specific URLs to include in research"},"search_query":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Search Query","description":"Custom search query (auto-generated if not provided)"},"output_format":{"$ref":"#/components/schemas/OutputFormat","description":"Output format","default":"json"},"include_sources":{"type":"boolean","title":"Include Sources","description":"Include source citations","default":true},"use_cache":{"type":"boolean","title":"Use Cache","description":"Use cached results if available (within 24h)","default":true}},"type":"object","required":["topic"],"title":"ResearchAPIRequest","description":"Request model for Research API.","example":{"depth":"medium","include_sources":true,"output_format":"json","topic":"What are the best practices for API rate limiting in 2025?","urls":[],"use_cache":true}},"ResearchAPIResponse":{"properties":{"id":{"type":"string","title":"Id","description":"Unique research ID"},"topic":{"type":"string","title":"Topic"},"status":{"type":"string","title":"Status","description":"completed, cached, failed"},"summary":{"type":"string","title":"Summary","description":"Executive summary (2-3 sentences)"},"key_findings":{"items":{"type":"string"},"type":"array","title":"Key Findings","description":"Main findings as bullet points"},"detailed_analysis":{"type":"string","title":"Detailed Analysis","description":"Full analysis"},"sources":{"items":{"$ref":"#/components/schemas/SourceCitation"},"type":"array","title":"Sources"},"source_count":{"type":"integer","title":"Source Count","default":0},"depth":{"$ref":"#/components/schemas/ResearchDepth"},"cached":{"type":"boolean","title":"Cached","default":false},"cache_hit_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cache Hit Id"},"duration_ms":{"type":"integer","title":"Duration Ms","default":0},"created_at":{"type":"string","format":"date-time","title":"Created At"},"credits_used":{"type":"integer","title":"Credits Used","default":0}},"type":"object","required":["id","topic","status","summary","key_findings","detailed_analysis","depth","created_at"],"title":"ResearchAPIResponse","description":"Response model for Research API.","example":{"cached":false,"created_at":"2025-12-31T12:00:00Z","credits_used":3,"depth":"medium","detailed_analysis":"...","duration_ms":4532,"id":"res_abc123","key_findings":["Token bucket is the most popular algorithm","Sliding window provides better burst control","429 responses should include Retry-After headers"],"source_count":5,"sources":[],"status":"completed","summary":"Modern API rate limiting combines multiple strategies...","topic":"API rate limiting best practices"}},"ResearchCreditsResponse":{"properties":{"credits_remaining":{"type":"integer","title":"Credits Remaining"},"credits_used_today":{"type":"integer","title":"Credits Used Today"},"credits_used_month":{"type":"integer","title":"Credits Used Month"},"tier":{"type":"string","title":"Tier"},"rate_limit_remaining":{"type":"integer","title":"Rate Limit Remaining"},"rate_limit_reset_at":{"type":"string","format":"date-time","title":"Rate Limit Reset At"}},"type":"object","required":["credits_remaining","credits_used_today","credits_used_month","tier","rate_limit_remaining","rate_limit_reset_at"],"title":"ResearchCreditsResponse","description":"Response showing credit balance and usage."},"ResearchDepth":{"type":"string","enum":["shallow","medium","deep"],"title":"ResearchDepth","description":"Research depth levels with associated parameters."},"ResearchErrorResponse":{"properties":{"error":{"type":"string","title":"Error"},"error_code":{"type":"string","title":"Error Code"},"details":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Details"}},"type":"object","required":["error","error_code"],"title":"ResearchErrorResponse","description":"Error response model.","example":{"details":{"retry_after":60},"error":"Rate limit exceeded","error_code":"RATE_LIMITED"}},"ResearchListItem":{"properties":{"id":{"type":"string","title":"Id"},"topic":{"type":"string","title":"Topic"},"status":{"type":"string","title":"Status"},"depth":{"type":"string","title":"Depth"},"source_count":{"type":"integer","title":"Source Count"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"cached":{"type":"boolean","title":"Cached","default":false}},"type":"object","required":["id","topic","status","depth","source_count","created_at"],"title":"ResearchListItem","description":"Summary item for listing research results."},"ResearchReportRequest":{"properties":{"topic":{"type":"string","title":"Topic","description":"Topic to research"},"depth":{"type":"string","title":"Depth","description":"Report depth: basic ($10), standard ($25), comprehensive ($50)","default":"standard"},"additional_context":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Additional Context","description":"Additional context or specific focus areas"}},"type":"object","required":["topic"],"title":"ResearchReportRequest","description":"Request to generate a research report."},"ResearchReportResponse":{"properties":{"report_id":{"type":"string","title":"Report Id"},"topic":{"type":"string","title":"Topic"},"depth":{"type":"string","title":"Depth"},"content":{"type":"string","title":"Content"},"sections":{"items":{"type":"string"},"type":"array","title":"Sections"},"cost_cents":{"type":"integer","title":"Cost Cents"},"cost_dollars":{"type":"number","title":"Cost Dollars"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["report_id","topic","depth","content","sections","cost_cents","cost_dollars","created_at"],"title":"ResearchReportResponse","description":"Response containing the generated research report."},"ResponseSuggestion":{"properties":{"tone":{"type":"string","title":"Tone","description":"Tone of the response (formal, casual, etc.)"},"subject":{"type":"string","title":"Subject","description":"Suggested reply subject"},"body":{"type":"string","title":"Body","description":"Suggested reply body"}},"type":"object","required":["tone","subject","body"],"title":"ResponseSuggestion","description":"A suggested response to the email."},"ReviewHistoryItem":{"properties":{"review_id":{"type":"string","title":"Review Id"},"repo":{"type":"string","title":"Repo"},"pr_number":{"type":"integer","title":"Pr Number"},"pr_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pr Title"},"pr_author":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pr Author"},"status":{"type":"string","title":"Status"},"blockers_count":{"type":"integer","title":"Blockers Count","default":0},"warnings_count":{"type":"integer","title":"Warnings Count","default":0},"suggestions_count":{"type":"integer","title":"Suggestions Count","default":0},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["review_id","repo","pr_number","status","created_at"],"title":"ReviewHistoryItem","description":"Single review in history."},"ReviewRequest":{"properties":{"repo":{"type":"string","title":"Repo","description":"Repository in owner/repo format"},"pr_number":{"type":"integer","minimum":1.0,"title":"Pr Number","description":"Pull request number"},"post_to_github":{"type":"boolean","title":"Post To Github","description":"Post review to GitHub","default":true},"create_check":{"type":"boolean","title":"Create Check","description":"Create GitHub check run","default":false}},"type":"object","required":["repo","pr_number"],"title":"ReviewRequest","description":"Request to review a PR."},"ReviewResponse":{"properties":{"review_id":{"type":"string","title":"Review Id"},"status":{"type":"string","title":"Status"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"blockers_count":{"type":"integer","title":"Blockers Count","default":0},"warnings_count":{"type":"integer","title":"Warnings Count","default":0},"suggestions_count":{"type":"integer","title":"Suggestions Count","default":0},"findings":{"items":{"$ref":"#/components/schemas/FindingResponse"},"type":"array","title":"Findings","default":[]},"llm_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Llm Model"},"tokens_used":{"type":"integer","title":"Tokens Used","default":0},"duration_ms":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration Ms"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"type":"object","required":["review_id","status"],"title":"ReviewResponse","description":"Review result response."},"ScanResponse":{"properties":{"opportunities":{"items":{"$ref":"#/components/schemas/OpportunityResponse"},"type":"array","title":"Opportunities"},"count":{"type":"integer","title":"Count"},"source":{"type":"string","title":"Source"},"scanned_at":{"type":"string","title":"Scanned At"},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query"}},"type":"object","required":["opportunities","count","source","scanned_at"],"title":"ScanResponse","description":"Scan results response."},"ScoreRequest":{"properties":{"title":{"type":"string","title":"Title"},"description":{"type":"string","title":"Description"},"source":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source","default":"manual"},"keywords":{"items":{"type":"string"},"type":"array","title":"Keywords","default":[]}},"type":"object","required":["title","description"],"title":"ScoreRequest","description":"Request to score an opportunity."},"ScoreResponse":{"properties":{"score":{"type":"number","title":"Score"},"factors":{"additionalProperties":true,"type":"object","title":"Factors"},"recommendation":{"type":"string","title":"Recommendation"}},"type":"object","required":["score","factors","recommendation"],"title":"ScoreResponse","description":"Score response."},"SearchQueryResponse":{"properties":{"query":{"type":"string","title":"Query","description":"Query string for mcp__reddit__reddit_search"},"subreddits":{"items":{"type":"string"},"type":"array","title":"Subreddits","description":"Recommended subreddits to search"},"description":{"type":"string","title":"Description","description":"What this query finds","default":""}},"type":"object","required":["query"],"title":"SearchQueryResponse","description":"Generated search query for use with Reddit MCP."},"SendMessageRequest":{"properties":{"chat_id":{"type":"integer","title":"Chat Id"},"text":{"type":"string","title":"Text"},"parse_mode":{"type":"string","title":"Parse Mode","default":"MarkdownV2"}},"type":"object","required":["chat_id","text"],"title":"SendMessageRequest","description":"Request to send a message."},"SendNotificationRequest":{"properties":{"title":{"type":"string","maxLength":200,"minLength":1,"title":"Title"},"message":{"type":"string","maxLength":2000,"minLength":1,"title":"Message"},"priority":{"$ref":"#/components/schemas/NotificationPriority","default":"normal"},"source":{"type":"string","maxLength":50,"title":"Source","default":"api"}},"type":"object","required":["title","message"],"title":"SendNotificationRequest","description":"Request to send a notification."},"SendSMSRequest":{"properties":{"message":{"type":"string","maxLength":1600,"minLength":1,"title":"Message"},"to_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Number","description":"E.164 format, defaults to owner"}},"type":"object","required":["message"],"title":"SendSMSRequest","description":"Request to send an SMS."},"SendSlackRequest":{"properties":{"message":{"type":"string","maxLength":4000,"minLength":1,"title":"Message"},"channel":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Channel","description":"Slack channel ID (uses default if not specified)"}},"type":"object","required":["message"],"title":"SendSlackRequest","description":"Request to send a Slack message."},"SendVoiceRequest":{"properties":{"message":{"type":"string","maxLength":500,"minLength":1,"title":"Message"},"to_number":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"To Number","description":"E.164 format, defaults to owner"},"language":{"type":"string","title":"Language","description":"TTS language","default":"en-GB"}},"type":"object","required":["message"],"title":"SendVoiceRequest","description":"Request to make a voice call."},"SendWhatsAppRequest":{"properties":{"to":{"type":"string","title":"To"},"text":{"type":"string","title":"Text"}},"type":"object","required":["to","text"],"title":"SendWhatsAppRequest","description":"Request to send a WhatsApp message."},"SentimentRuleCreate":{"properties":{"name":{"type":"string","title":"Name","description":"Rule name"},"trigger_sentiment":{"type":"string","title":"Trigger Sentiment","description":"Sentiment to trigger on","default":"negative"},"min_confidence":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Min Confidence","description":"Minimum confidence","default":0.7},"require_keywords":{"items":{"type":"string"},"type":"array","title":"Require Keywords"},"alert_priority":{"type":"string","title":"Alert Priority","description":"Alert priority","default":"high"}},"type":"object","required":["name"],"title":"SentimentRuleCreate","description":"Create a sentiment rule."},"SentimentRuleResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"trigger_sentiment":{"type":"string","title":"Trigger Sentiment"},"min_confidence":{"type":"number","title":"Min Confidence"},"alert_priority":{"type":"string","title":"Alert Priority"},"enabled":{"type":"boolean","title":"Enabled"},"triggers":{"type":"integer","title":"Triggers"},"last_trigger_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Trigger At"}},"type":"object","required":["id","name","trigger_sentiment","min_confidence","alert_priority","enabled","triggers","last_trigger_at"],"title":"SentimentRuleResponse","description":"Sentiment rule in response."},"ServiceQuotaResponse":{"properties":{"customer_id":{"type":"string","title":"Customer Id"},"subscription_plan":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Plan"},"quota_limit":{"type":"integer","title":"Quota Limit"},"quota_used":{"type":"integer","title":"Quota Used"},"quota_remaining":{"type":"integer","title":"Quota Remaining"},"billing_cycle_end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Billing Cycle End"}},"type":"object","required":["customer_id","subscription_plan","quota_limit","quota_used","quota_remaining","billing_cycle_end"],"title":"ServiceQuotaResponse","description":"Response showing service quota status."},"SessionDetail":{"properties":{"session_id":{"type":"string","title":"Session Id"},"phone_number":{"type":"string","title":"Phone Number"},"task_description":{"type":"string","title":"Task Description"},"task_type":{"type":"string","title":"Task Type"},"status":{"type":"string","title":"Status"},"last_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Prompt"},"result_summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Result Summary"},"full_result":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Result"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"turns_used":{"type":"integer","title":"Turns Used"},"tokens_used":{"type":"integer","title":"Tokens Used"},"cost_usd":{"type":"number","title":"Cost Usd"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"},"recent_logs":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Recent Logs","default":[]}},"type":"object","required":["session_id","phone_number","task_description","task_type","status","turns_used","tokens_used","cost_usd","metadata","created_at","updated_at"],"title":"SessionDetail","description":"Detailed view of a Claude session."},"SessionStats":{"properties":{"total":{"type":"integer","title":"Total"},"queued":{"type":"integer","title":"Queued"},"running":{"type":"integer","title":"Running"},"completed":{"type":"integer","title":"Completed"},"failed":{"type":"integer","title":"Failed"},"timeout":{"type":"integer","title":"Timeout"},"terminated":{"type":"integer","title":"Terminated"},"total_cost_usd":{"type":"number","title":"Total Cost Usd"},"total_turns":{"type":"integer","title":"Total Turns"}},"type":"object","required":["total","queued","running","completed","failed","timeout","terminated","total_cost_usd","total_turns"],"title":"SessionStats","description":"Aggregate statistics for sessions."},"SessionSummary":{"properties":{"session_id":{"type":"string","title":"Session Id"},"phone_number":{"type":"string","title":"Phone Number"},"task_description":{"type":"string","title":"Task Description"},"task_type":{"type":"string","title":"Task Type"},"status":{"type":"string","title":"Status"},"turns_used":{"type":"integer","title":"Turns Used"},"cost_usd":{"type":"number","title":"Cost Usd"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At"},"completed_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Completed At"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"}},"type":"object","required":["session_id","phone_number","task_description","task_type","status","turns_used","cost_usd","created_at","updated_at"],"title":"SessionSummary","description":"Summary of a Claude session."},"SetBudgetRequest":{"properties":{"task_id":{"type":"string","title":"Task Id","description":"Unique task identifier"},"token_limit":{"type":"integer","minimum":100.0,"title":"Token Limit","description":"Maximum tokens allowed"},"estimated_completion":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Estimated Completion","description":"Current completion (0-1)","default":0.0},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Optional session ID"},"auto_kill":{"type":"boolean","title":"Auto Kill","description":"Recommend termination when over budget","default":false},"alert_threshold":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Alert Threshold","description":"Alert threshold (0-1)","default":0.8}},"type":"object","required":["task_id","token_limit"],"title":"SetBudgetRequest","description":"Request to set a task budget."},"SetPricingRequest":{"properties":{"product_id":{"type":"string","title":"Product Id"},"tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tier"},"pricing_model":{"type":"string","title":"Pricing Model"},"unit_price_cents":{"type":"integer","title":"Unit Price Cents","default":0},"included_units":{"type":"integer","title":"Included Units","default":0},"tier_brackets":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Tier Brackets"},"currency":{"type":"string","title":"Currency","default":"USD"}},"type":"object","required":["product_id","pricing_model"],"title":"SetPricingRequest"},"ShareRequest":{"properties":{"file_path":{"type":"string","title":"File Path"},"expires_hours":{"type":"integer","title":"Expires Hours","default":24},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"}},"type":"object","required":["file_path"],"title":"ShareRequest","description":"Request to create a share link."},"ShareResponse":{"properties":{"token":{"type":"string","title":"Token"},"url":{"type":"string","title":"Url"},"expires_at":{"type":"string","title":"Expires At"},"file_name":{"type":"string","title":"File Name"}},"type":"object","required":["token","url","expires_at","file_name"],"title":"ShareResponse","description":"Response with share link details."},"SingleEmailTriageRequest":{"properties":{"subject":{"type":"string","title":"Subject","description":"Email subject"},"sender":{"type":"string","title":"Sender","description":"Sender email/name"},"snippet":{"type":"string","title":"Snippet","description":"Email content preview"},"date":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Date","description":"Email date"},"model":{"type":"string","title":"Model","description":"Model to use","default":"tinyllama:latest"}},"type":"object","required":["subject","sender","snippet"],"title":"SingleEmailTriageRequest","description":"Request for triaging a single email."},"SourceCitation":{"properties":{"url":{"type":"string","title":"Url"},"title":{"type":"string","title":"Title"},"snippet":{"type":"string","title":"Snippet","default":""},"relevance_score":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Relevance Score"},"fetched_at":{"type":"string","format":"date-time","title":"Fetched At"}},"type":"object","required":["url","title","relevance_score","fetched_at"],"title":"SourceCitation","description":"A cited source in the research."},"SourceCreate":{"properties":{"platform":{"type":"string","title":"Platform","description":"Platform: discord or telegram"},"source_id":{"type":"string","title":"Source Id","description":"Channel/chat ID to monitor"},"source_name":{"type":"string","title":"Source Name","description":"Display name","default":""},"keywords":{"items":{"type":"string"},"type":"array","title":"Keywords","description":"Keywords to track"},"ignore_bots":{"type":"boolean","title":"Ignore Bots","description":"Ignore bot messages","default":true}},"type":"object","required":["platform","source_id"],"title":"SourceCreate","description":"Create a monitoring source."},"SourceResponse":{"properties":{"id":{"type":"string","title":"Id"},"platform":{"type":"string","title":"Platform"},"source_id":{"type":"string","title":"Source Id"},"source_name":{"type":"string","title":"Source Name"},"enabled":{"type":"boolean","title":"Enabled"},"keywords":{"items":{"type":"string"},"type":"array","title":"Keywords"},"total_messages":{"type":"integer","title":"Total Messages"},"total_mentions":{"type":"integer","title":"Total Mentions"},"last_checked_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Checked At"}},"type":"object","required":["id","platform","source_id","source_name","enabled","keywords","total_messages","total_mentions","last_checked_at"],"title":"SourceResponse","description":"Source in response."},"SourceUpdate":{"properties":{"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"},"keywords":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Keywords"},"source_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Name"}},"type":"object","title":"SourceUpdate","description":"Update source settings."},"SpaceResponse":{"properties":{"uid":{"type":"string","title":"Uid"},"name":{"type":"string","title":"Name"},"balance":{"type":"string","title":"Balance"},"currency":{"type":"string","title":"Currency"},"state":{"type":"string","title":"State"},"has_card":{"type":"boolean","title":"Has Card"}},"type":"object","required":["uid","name","balance","currency","state","has_card"],"title":"SpaceResponse","description":"Space (sub-account) response."},"SpanResponse":{"properties":{"span_id":{"type":"string","title":"Span Id"},"trace_id":{"type":"string","title":"Trace Id"},"parent_span_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Span Id"},"name":{"type":"string","title":"Name"},"kind":{"type":"string","title":"Kind"},"status":{"type":"string","title":"Status"},"start_time":{"type":"string","format":"date-time","title":"Start Time"},"end_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time"},"duration_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Ms"},"inputs":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Inputs"},"outputs":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Outputs"},"reasoning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model"},"tokens_in":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tokens In"},"tokens_out":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Tokens Out"}},"type":"object","required":["span_id","trace_id","parent_span_id","name","kind","status","start_time","end_time","duration_ms","inputs","outputs","reasoning","model","tokens_in","tokens_out"],"title":"SpanResponse","description":"Response model for a single span."},"StartRalphRequest":{"properties":{"task":{"type":"string","title":"Task","description":"Task to work on"},"verify_command":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Verify Command","description":"Command to verify completion"},"max_iterations":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Max Iterations","description":"Maximum iterations","default":10},"timeout_minutes":{"type":"integer","maximum":480.0,"minimum":1.0,"title":"Timeout Minutes","description":"Timeout in minutes","default":60}},"type":"object","required":["task"],"title":"StartRalphRequest","description":"Request to start Ralph mode."},"StatsResponse":{"properties":{"period_days":{"type":"integer","title":"Period Days"},"sources":{"additionalProperties":true,"type":"object","title":"Sources"},"messages":{"additionalProperties":true,"type":"object","title":"Messages"},"alerts":{"additionalProperties":true,"type":"object","title":"Alerts"},"sentiment":{"additionalProperties":true,"type":"object","title":"Sentiment"}},"type":"object","required":["period_days","sources","messages","alerts","sentiment"],"title":"StatsResponse","description":"Statistics response."},"SubmissionCreate":{"properties":{"agent_id":{"type":"string","format":"uuid","title":"Agent Id"},"content":{"type":"string","minLength":10,"title":"Content"},"attachments_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attachments Url"}},"type":"object","required":["agent_id","content"],"title":"SubmissionCreate","description":"Submit a solution to a bounty."},"SubmissionResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"bounty_id":{"type":"string","format":"uuid","title":"Bounty Id"},"agent_id":{"type":"string","format":"uuid","title":"Agent Id"},"content":{"type":"string","title":"Content"},"attachments_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Attachments Url"},"quality_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Quality Score"},"status":{"$ref":"#/components/schemas/SubmissionStatus"},"submitted_at":{"type":"string","format":"date-time","title":"Submitted At"},"reviewed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Reviewed At"},"feedback":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feedback"}},"type":"object","required":["id","bounty_id","agent_id","content","attachments_url","quality_score","status","submitted_at","reviewed_at","feedback"],"title":"SubmissionResponse","description":"Full submission details."},"SubmissionReview":{"properties":{"status":{"$ref":"#/components/schemas/SubmissionStatus"},"feedback":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Feedback"}},"type":"object","required":["status"],"title":"SubmissionReview","description":"Review (accept/reject/request revision) a submission."},"SubmissionStatus":{"type":"string","enum":["pending","accepted","rejected","revision_requested"],"title":"SubmissionStatus","description":"Review status of a submission."},"SubredditListResponse":{"properties":{"domain":{"type":"string","title":"Domain"},"subreddits":{"items":{"type":"string"},"type":"array","title":"Subreddits"},"available_domains":{"items":{"type":"string"},"type":"array","title":"Available Domains"}},"type":"object","required":["domain","subreddits"],"title":"SubredditListResponse","description":"List of subreddits for a domain."},"SubscribeRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"}},"type":"object","required":["email"],"title":"SubscribeRequest","description":"Email subscription request."},"SyncRequest":{"properties":{"events":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Events","description":"Events from calendar_get_events MCP tool"},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","description":"Google Calendar user ID (email)"},"cleanup_old":{"type":"boolean","title":"Cleanup Old","description":"Also cleanup events older than 30 days","default":false}},"type":"object","required":["events"],"title":"SyncRequest","description":"Request to sync calendar events."},"SyncResponse":{"properties":{"events_received":{"type":"integer","title":"Events Received"},"events_parsed":{"type":"integer","title":"Events Parsed"},"events_saved":{"type":"integer","title":"Events Saved"},"events_cleaned":{"type":"integer","title":"Events Cleaned"}},"type":"object","required":["events_received","events_parsed","events_saved","events_cleaned"],"title":"SyncResponse","description":"Calendar sync response."},"SystemStats":{"properties":{"total_agents":{"type":"integer","title":"Total Agents"},"total_claims":{"type":"integer","title":"Total Claims"},"verified_claims":{"type":"integer","title":"Verified Claims"},"pending_claims":{"type":"integer","title":"Pending Claims"},"total_reputation_issued":{"type":"number","title":"Total Reputation Issued"},"claims_by_type":{"additionalProperties":{"type":"integer"},"type":"object","title":"Claims By Type"}},"type":"object","required":["total_agents","total_claims","verified_claims","pending_claims","total_reputation_issued","claims_by_type"],"title":"SystemStats"},"TaskBudgetResponse":{"properties":{"task_id":{"type":"string","title":"Task Id"},"token_limit":{"type":"integer","title":"Token Limit"},"tokens_used":{"type":"integer","title":"Tokens Used"},"estimated_completion":{"type":"number","title":"Estimated Completion"},"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"auto_kill":{"type":"boolean","title":"Auto Kill"},"alert_threshold":{"type":"number","title":"Alert Threshold"},"tool_usage":{"additionalProperties":true,"type":"object","title":"Tool Usage"},"alerts_sent":{"type":"integer","title":"Alerts Sent"},"status":{"type":"string","title":"Status"}},"type":"object","required":["task_id","token_limit","tokens_used","estimated_completion","created_at","updated_at","auto_kill","alert_threshold","tool_usage","alerts_sent","status"],"title":"TaskBudgetResponse","description":"Full task budget response."},"TaskResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"status":{"type":"string","title":"Status"},"task_type":{"type":"string","title":"Task Type"},"agent_role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Role"},"parent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Parent Id"},"depends_on":{"items":{"type":"string"},"type":"array","title":"Depends On","default":[]}},"type":"object","required":["id","name","status","task_type"],"title":"TaskResponse","description":"Single task in a plan."},"TaskType":{"type":"string","enum":["vision","reasoning","operational","simple","research"],"title":"TaskType","description":"Task types for automatic model selection."},"TerminateRequest":{"properties":{"hard_kill":{"type":"boolean","title":"Hard Kill","default":false}},"type":"object","title":"TerminateRequest","description":"Request to terminate a session."},"TestAlertRequest":{"properties":{"channel":{"type":"string","title":"Channel","description":"Channel to test: discord, telegram, slack, sms, phone, all","default":"all"}},"type":"object","title":"TestAlertRequest","description":"Request to send a test alert."},"ToTRequest":{"properties":{"goal":{"type":"string","title":"Goal"},"num_candidates":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"Num Candidates","description":"Number of candidate plans to generate","default":3},"use_llm":{"type":"boolean","title":"Use Llm","description":"Use LLM for candidate generation and evaluation","default":false}},"type":"object","required":["goal"],"title":"ToTRequest","description":"Tree of Thoughts decomposition request."},"ToTResponse":{"properties":{"selected":{"$ref":"#/components/schemas/TreeResponse"},"candidates":{"items":{"$ref":"#/components/schemas/CandidateResponse"},"type":"array","title":"Candidates"},"evaluated_at":{"type":"string","title":"Evaluated At"}},"type":"object","required":["selected","candidates","evaluated_at"],"title":"ToTResponse","description":"Tree of Thoughts response."},"TraceDetailResponse":{"properties":{"trace":{"$ref":"#/components/schemas/TraceResponse"},"spans":{"items":{"$ref":"#/components/schemas/SpanResponse"},"type":"array","title":"Spans"}},"type":"object","required":["trace","spans"],"title":"TraceDetailResponse","description":"Response model for detailed trace with spans."},"TraceListResponse":{"properties":{"traces":{"items":{"$ref":"#/components/schemas/TraceResponse"},"type":"array","title":"Traces"},"total":{"type":"integer","title":"Total"},"page":{"type":"integer","title":"Page"},"page_size":{"type":"integer","title":"Page Size"}},"type":"object","required":["traces","total","page","page_size"],"title":"TraceListResponse","description":"Response model for trace list."},"TraceResponse":{"properties":{"trace_id":{"type":"string","title":"Trace Id"},"workflow_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Id"},"workflow_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workflow Name"},"status":{"type":"string","title":"Status"},"start_time":{"type":"string","format":"date-time","title":"Start Time"},"end_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time"},"duration_ms":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Duration Ms"},"total_spans":{"type":"integer","title":"Total Spans"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"}},"type":"object","required":["trace_id","workflow_id","workflow_name","status","start_time","end_time","duration_ms","total_spans","error_message","metadata"],"title":"TraceResponse","description":"Response model for a single trace."},"TracingStatsResponse":{"properties":{"total_traces":{"type":"integer","title":"Total Traces"},"traces_by_status":{"additionalProperties":true,"type":"object","title":"Traces By Status"},"avg_duration_ms":{"type":"number","title":"Avg Duration Ms"},"total_spans":{"type":"integer","title":"Total Spans"},"spans_by_kind":{"additionalProperties":true,"type":"object","title":"Spans By Kind"},"recent_errors":{"type":"integer","title":"Recent Errors"}},"type":"object","required":["total_traces","traces_by_status","avg_duration_ms","total_spans","spans_by_kind","recent_errors"],"title":"TracingStatsResponse","description":"Response model for tracing statistics."},"TreeResponse":{"properties":{"tree_id":{"type":"string","title":"Tree Id"},"goal":{"type":"string","title":"Goal"},"tasks":{"items":{"$ref":"#/components/schemas/TaskResponse"},"type":"array","title":"Tasks"},"task_count":{"type":"integer","title":"Task Count"},"visualization":{"type":"string","title":"Visualization"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["tree_id","goal","tasks","task_count","visualization","created_at"],"title":"TreeResponse","description":"Task tree response."},"TriageMode":{"type":"string","enum":["quick","standard","deep"],"title":"TriageMode","description":"Triage processing mode."},"UpdateCompletionRequest":{"properties":{"completion":{"type":"number","maximum":1.0,"minimum":0.0,"title":"Completion","description":"Completion estimate (0-1)"}},"type":"object","required":["completion"],"title":"UpdateCompletionRequest","description":"Request to update completion estimate."},"UpdateCustomerRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tier"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","title":"UpdateCustomerRequest"},"UpdateProductRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"product_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Product Type"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"is_active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Active"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","title":"UpdateProductRequest"},"UpdateProfileRequest":{"properties":{"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company"},"webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook Url"}},"type":"object","title":"UpdateProfileRequest","description":"Request to update developer profile."},"UpdateProgressRequest":{"properties":{"progress":{"type":"integer","title":"Progress"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","required":["progress"],"title":"UpdateProgressRequest","description":"Request to update task progress."},"UpgradeTierRequest":{"properties":{"tier":{"type":"string","title":"Tier","description":"Target tier: starter, pro, enterprise"},"success_url":{"type":"string","title":"Success Url","default":"https://aegisagent.ai/billing/success"},"cancel_url":{"type":"string","title":"Cancel Url","default":"https://aegisagent.ai/billing/cancel"}},"type":"object","required":["tier"],"title":"UpgradeTierRequest","description":"Request to upgrade tier."},"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"},"VerificationAttemptResponse":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"claim_id":{"type":"string","format":"uuid","title":"Claim Id"},"method":{"type":"string","title":"Method"},"passed":{"type":"boolean","title":"Passed"},"confidence":{"type":"number","title":"Confidence"},"proof":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Proof"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","claim_id","method","passed","confidence","proof","error","created_at"],"title":"VerificationAttemptResponse"},"VisionRequest":{"properties":{"prompt":{"type":"string","title":"Prompt","description":"Analysis prompt","default":"Describe this image in detail"},"image_base64":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Base64","description":"Base64-encoded image data"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url","description":"URL of image to analyze"}},"type":"object","title":"VisionRequest","description":"Request model for vision analysis."},"VisionResponse":{"properties":{"success":{"type":"boolean","title":"Success"},"response":{"type":"string","title":"Response"},"model":{"type":"string","title":"Model"},"prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prompt"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["success","response","model"],"title":"VisionResponse","description":"Vision analysis response."},"WatchlistSymbolRequest":{"properties":{"symbol":{"type":"string","title":"Symbol"},"tier":{"type":"string","title":"Tier","default":"blue_chip"},"notes":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Notes"}},"type":"object","required":["symbol"],"title":"WatchlistSymbolRequest","description":"Request model for adding symbol to watchlist."},"WebhookConfigRequest":{"properties":{"inbound_url":{"type":"string","title":"Inbound Url"},"status_url":{"type":"string","title":"Status Url"}},"type":"object","required":["inbound_url","status_url"],"title":"WebhookConfigRequest","description":"Request to configure Vonage webhooks."},"WebhookResponse":{"properties":{"status":{"type":"string","title":"Status"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"},"review_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Review Id"},"repo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Repo"},"pr_number":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Pr Number"}},"type":"object","required":["status"],"title":"WebhookResponse","description":"Webhook processing response."},"WebhookSetupRequest":{"properties":{"url":{"type":"string","title":"Url"},"secret_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Secret Token"}},"type":"object","required":["url"],"title":"WebhookSetupRequest","description":"Request to set up webhook."},"WorkflowResumeRequest":{"properties":{"response":{"type":"string","title":"Response"}},"type":"object","required":["response"],"title":"WorkflowResumeRequest","description":"Request to resume an interrupted workflow."},"WorkflowRunRequest":{"properties":{"input":{"additionalProperties":true,"type":"object","title":"Input","default":{}}},"type":"object","title":"WorkflowRunRequest","description":"Request to start a workflow."},"aegis__bountyboard__schemas__LeaderboardEntry":{"properties":{"rank":{"type":"integer","title":"Rank"},"agent_id":{"type":"string","format":"uuid","title":"Agent Id"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"name":{"type":"string","title":"Name"},"total_earned_cents":{"type":"integer","title":"Total Earned Cents"},"bounties_completed":{"type":"integer","title":"Bounties Completed"},"reputation_score":{"type":"number","title":"Reputation Score"},"success_rate":{"type":"number","title":"Success Rate"}},"type":"object","required":["rank","agent_id","display_name","name","total_earned_cents","bounties_completed","reputation_score","success_rate"],"title":"LeaderboardEntry","description":"A single entry on the leaderboard."},"aegis__claims__models__LeaderboardEntry":{"properties":{"rank":{"type":"integer","title":"Rank"},"agent_id":{"type":"string","format":"uuid","title":"Agent Id"},"agent_name":{"type":"string","title":"Agent Name"},"display_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Display Name"},"total_reputation":{"type":"number","title":"Total Reputation"},"verified_claims_count":{"type":"integer","title":"Verified Claims Count"}},"type":"object","required":["rank","agent_id","agent_name","display_name","total_reputation","verified_claims_count"],"title":"LeaderboardEntry"},"aegis__dashboard__routes__costs__BudgetStatusResponse":{"properties":{"task_id":{"type":"string","title":"Task Id"},"token_limit":{"type":"integer","title":"Token Limit"},"tokens_used":{"type":"integer","title":"Tokens Used"},"tokens_remaining":{"type":"integer","title":"Tokens Remaining"},"usage_percent":{"type":"number","title":"Usage Percent"},"estimated_completion":{"type":"number","title":"Estimated Completion"},"running_hot":{"type":"boolean","title":"Running Hot"},"burn_rate_warning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Burn Rate Warning"},"over_budget":{"type":"boolean","title":"Over Budget"},"auto_kill_recommended":{"type":"boolean","title":"Auto Kill Recommended"}},"type":"object","required":["task_id","token_limit","tokens_used","tokens_remaining","usage_percent","estimated_completion","running_hot","over_budget","auto_kill_recommended"],"title":"BudgetStatusResponse","description":"Budget status response."},"aegis__dashboard__routes__costs__RecordUsageRequest":{"properties":{"tokens":{"type":"integer","minimum":0.0,"title":"Tokens","description":"Tokens used"},"tool":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool","description":"Tool name for tracking"}},"type":"object","required":["tokens"],"title":"RecordUsageRequest","description":"Request to record token usage."},"aegis__dashboard__routes__finance__BudgetStatusResponse":{"properties":{"period_budget":{"type":"string","title":"Period Budget"},"spent":{"type":"string","title":"Spent"},"remaining":{"type":"string","title":"Remaining"},"percent_used":{"type":"number","title":"Percent Used"},"on_track":{"type":"boolean","title":"On Track"},"warnings":{"items":{"type":"string"},"type":"array","title":"Warnings"}},"type":"object","required":["period_budget","spent","remaining","percent_used","on_track","warnings"],"title":"BudgetStatusResponse","description":"Budget status response."},"aegis__dashboard__routes__llm__ClassifyRequest":{"properties":{"text":{"type":"string","minLength":1,"title":"Text","description":"Text to classify"},"categories":{"items":{"type":"string"},"type":"array","minItems":2,"title":"Categories","description":"Categories to classify into"}},"type":"object","required":["text","categories"],"title":"ClassifyRequest","description":"Request model for classification."},"aegis__dashboard__routes__monetization__RecordUsageRequest":{"properties":{"event_type":{"type":"string","title":"Event Type"},"quantity":{"type":"integer","title":"Quantity","default":1},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"}},"type":"object","required":["event_type"],"title":"RecordUsageRequest"},"aegis__dashboard__routes__pipeline__ClassifyRequest":{"properties":{"text":{"type":"string","maxLength":5000,"minLength":1,"title":"Text","description":"Text to classify"}},"type":"object","required":["text"],"title":"ClassifyRequest","description":"Request to classify intent."},"aegis__dashboard__routes__revenue__CheckoutRequest":{"properties":{"product_id":{"type":"integer","title":"Product Id","description":"Product database ID"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email","description":"Customer email for receipt"},"success_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Success Url","description":"Redirect URL on success"},"cancel_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cancel Url","description":"Redirect URL on cancel"}},"type":"object","required":["product_id"],"title":"CheckoutRequest","description":"Request to initiate checkout for a product."},"aegis__dashboard__routes__store__CheckoutRequest":{"properties":{"product_id":{"type":"integer","title":"Product Id"},"email":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Email"}},"type":"object","required":["product_id"],"title":"CheckoutRequest","description":"Request body for checkout API."}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"X-API-Key"}}}}