{"openapi":"3.1.0","info":{"title":"CueAPI","description":"Scheduling API for AI agents. Register cues (scheduled tasks), CueAPI fires webhooks or delivers via worker pull at the right time.","version":"1.0.0"},"paths":{"/health":{"get":{"tags":["health"],"summary":"Health Check","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/status":{"get":{"tags":["health"],"summary":"Status Check","description":"Lightweight status endpoint for uptime monitors.\nReturns healthy/degraded/down with HTTP 200 or 503.","operationId":"status_check_status_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/auth/register":{"post":{"tags":["auth"],"summary":"Register","operationId":"register_v1_auth_register_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/key/regenerate":{"post":{"tags":["auth"],"summary":"Regenerate Key","description":"Regenerate API key. Old key is instantly revoked.\n\nLegacy single-key semantic. When the user has exactly one non-\nrevoked ``api_keys`` row, this endpoint rotates it in place\n(the existing key_hash is replaced with a new one and the old\nhash is marked rotated so stale callers get a clear error). If\nthe user has >1 non-revoked keys the semantic is ambiguous and\nwe 409 with guidance to use ``POST /v1/auth/keys`` + ``DELETE``\ninstead.","operationId":"regenerate_key_v1_auth_key_regenerate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegenerateResponse"}}}}}}},"/v1/auth/me":{"get":{"tags":["auth"],"summary":"Get Me","description":"Return current user info with usage stats.","operationId":"get_me_v1_auth_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"delete":{"tags":["gdpr"],"summary":"Request Account Deletion","description":"Request account deletion with 24-hour grace period.\n\nRequires X-Confirm-Destructive: true header.\nSends confirmation email with cancellation link.\nReturns 202 Accepted.","operationId":"request_account_deletion_v1_auth_me_delete","responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"patch":{"tags":["auth"],"summary":"Patch Me","description":"Update user settings.\n\nSupports ``memory_block_enabled`` and ``alert_webhook_url``. At\nleast one field must be provided. ``alert_webhook_url`` is\nSSRF-validated; pass ``\"\"`` to clear.","operationId":"patch_me_v1_auth_me_patch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchMeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/alert-webhook-secret":{"get":{"tags":["auth"],"summary":"Get Alert Webhook Secret","description":"Return the HMAC signing secret for alert webhooks.\n\nLazily generated on first call — a fresh 64-char hex secret is\npersisted to the user row and returned. Subsequent calls return\nthe same value. Rotate via\n``POST /v1/auth/alert-webhook-secret/regenerate``.","operationId":"get_alert_webhook_secret_v1_auth_alert_webhook_secret_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/auth/alert-webhook-secret/regenerate":{"post":{"tags":["auth"],"summary":"Regenerate Alert Webhook Secret","description":"Rotate the alert webhook signing secret.\n\nOld secret is immediately invalidated. Requires\n``X-Confirm-Destructive: true`` — rotation breaks receivers that\nhaven't been updated yet.","operationId":"regenerate_alert_webhook_secret_v1_auth_alert_webhook_secret_regenerate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/auth/session":{"post":{"tags":["auth"],"summary":"Create Session","description":"Exchange a one-time session token for a JWT session.","operationId":"create_session_v1_auth_session_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SessionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/session/refresh":{"post":{"tags":["auth"],"summary":"Refresh Session","description":"Issue a fresh session JWT with a new 1-year expiry.\n\nRequires a valid (non-expired) session token.","operationId":"refresh_session_v1_auth_session_refresh_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/auth/key":{"get":{"tags":["auth"],"summary":"Reveal Key","description":"Reveal the full API key. Requires authentication (API key or session JWT).","operationId":"reveal_key_v1_auth_key_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/auth/keys":{"get":{"tags":["auth"],"summary":"List Keys","description":"List all keys on this user's account (both active and revoked).\n\nScope is the full account: key-auth callers see every key on\ntheir user, not just the one they authenticated with. This is\nintentional — users need to see what's active in order to revoke\nleaked keys.","operationId":"list_keys_v1_auth_keys_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListKeysResponse"}}}}}},"post":{"tags":["auth"],"summary":"Create Key","description":"Mint a new API key. Plaintext returned ONCE.\n\nRate-limited: 10/user/hour. Audit-logged.","operationId":"create_key_v1_auth_keys_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKeyRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/keys/{key_id}":{"patch":{"tags":["auth"],"summary":"Rename Key","description":"Rename a key (label only). Cannot change any other field.","operationId":"rename_key_v1_auth_keys__key_id__patch","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchKeyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["auth"],"summary":"Revoke Key","description":"Soft-delete a key (sets ``revoked_at``). Hard delete happens\n30 days later via the cleanup task.\n\nRefuses to revoke the user's last non-revoked key (lockout\nprotection). Users without any other credential should rotate\nvia ``POST /v1/auth/keys`` first.","operationId":"revoke_key_v1_auth_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":{"$ref":"#/components/schemas/DeleteKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/mcp-exchange":{"post":{"tags":["auth"],"summary":"Mcp Exchange","description":"Exchange a one-time session_token + approved client_id for a\nfresh, scoped API key.\n\n**No bearer auth.** The session_token is the credential and is\nconsumed on exchange (single-use, matching\n``POST /v1/auth/session``'s semantic).","operationId":"mcp_exchange_v1_auth_mcp_exchange_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpExchangeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/McpExchangeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/device-code":{"post":{"tags":["auth"],"summary":"Create Device Code Endpoint","operationId":"create_device_code_endpoint_v1_auth_device_code_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceCodeRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/device-code/poll":{"post":{"tags":["auth"],"summary":"Poll Device Code Endpoint","operationId":"poll_device_code_endpoint_v1_auth_device_code_poll_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PollRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/device-code/submit-email":{"post":{"tags":["auth"],"summary":"Submit Email Endpoint","operationId":"submit_email_endpoint_v1_auth_device_code_submit_email_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubmitEmailRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/verify":{"get":{"tags":["auth"],"summary":"Verify Endpoint","operationId":"verify_endpoint_v1_auth_verify_get","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","title":"Token"}},{"name":"device_code","in":"query","required":true,"schema":{"type":"string","title":"Device Code"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/device":{"get":{"tags":["auth-pages"],"summary":"Device Page","operationId":"device_page_auth_device_get","parameters":[{"name":"code","in":"query","required":true,"schema":{"type":"string","title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/cues":{"post":{"tags":["cues"],"summary":"Create","operationId":"create_v1_cues_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CueCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["cues"],"summary":"List All","operationId":"list_all_v1_cues_get","parameters":[{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CueListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/cues/{cue_id}":{"get":{"tags":["cues"],"summary":"Get One","operationId":"get_one_v1_cues__cue_id__get","parameters":[{"name":"cue_id","in":"path","required":true,"schema":{"type":"string","title":"Cue Id"}},{"name":"execution_limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":10,"title":"Execution Limit"}},{"name":"execution_offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Execution Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CueDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["cues"],"summary":"Update","operationId":"update_v1_cues__cue_id__patch","parameters":[{"name":"cue_id","in":"path","required":true,"schema":{"type":"string","title":"Cue Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CueUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CueResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["cues"],"summary":"Delete","operationId":"delete_v1_cues__cue_id__delete","parameters":[{"name":"cue_id","in":"path","required":true,"schema":{"type":"string","title":"Cue Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/cues/{cue_id}/fire":{"post":{"tags":["cues"],"summary":"Fire Cue","description":"Manually fire a cue — creates an execution immediately regardless of schedule.","operationId":"fire_cue_v1_cues__cue_id__fire_post","parameters":[{"name":"cue_id","in":"path","required":true,"schema":{"type":"string","title":"Cue Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/executions":{"get":{"tags":["executions"],"summary":"List Executions","description":"List executions with optional filters.","operationId":"list_executions_v1_executions_get","parameters":[{"name":"cue_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cue Id"}},{"name":"status","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"}},{"name":"outcome_state","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Outcome State"}},{"name":"result_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Result Type"}},{"name":"has_evidence","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Has Evidence"}},{"name":"triggered_by","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Triggered By"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"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":"object","title":"Response List Executions V1 Executions Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/executions/{execution_id}/outcome":{"post":{"tags":["executions"],"summary":"Report Outcome","operationId":"report_outcome_v1_executions__execution_id__outcome_post","parameters":[{"name":"execution_id","in":"path","required":true,"schema":{"type":"string","title":"Execution Id"}},{"name":"x-worker-id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutcomeRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutcomeResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/executions/claimable":{"get":{"tags":["executions"],"summary":"Get Claimable","description":"List pending/retry-ready worker-transport executions available for claiming.","operationId":"get_claimable_v1_executions_claimable_get","parameters":[{"name":"task","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by payload.task","title":"Task"},"description":"Filter by payload.task"},{"name":"agent","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by payload.agent","title":"Agent"},"description":"Filter by payload.agent"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimableListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/executions/{execution_id}":{"get":{"tags":["executions"],"summary":"Get Execution","description":"Get a single execution by ID.","operationId":"get_execution_v1_executions__execution_id__get","parameters":[{"name":"execution_id","in":"path","required":true,"schema":{"type":"string","title":"Execution Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","title":"Response Get Execution V1 Executions  Execution Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/executions/claim":{"post":{"tags":["executions"],"summary":"Claim Next Execution","description":"Claim the next available worker-transport execution.\n\nPicks the oldest pending execution belonging to the user's worker cues.\nUses conditional UPDATE WHERE status='pending' to prevent race conditions.\nReturns 409 if no executions are available for claiming.","operationId":"claim_next_execution_v1_executions_claim_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimRequest"}}},"required":true},"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"}}}}}}},"/v1/executions/{execution_id}/heartbeat":{"post":{"tags":["executions"],"summary":"Execution Heartbeat","description":"Worker sends heartbeat to extend claim lease during long-running jobs.","operationId":"execution_heartbeat_v1_executions__execution_id__heartbeat_post","parameters":[{"name":"execution_id","in":"path","required":true,"schema":{"type":"string","title":"Execution Id"}},{"name":"x-worker-id","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Worker-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/executions/{execution_id}/claim":{"post":{"tags":["executions"],"summary":"Claim Execution","description":"Claim a specific pending worker-transport execution for processing.\n\nUses conditional UPDATE WHERE status='pending' to prevent race conditions.\nReturns 409 if already claimed or not eligible.","operationId":"claim_execution_v1_executions__execution_id__claim_post","parameters":[{"name":"execution_id","in":"path","required":true,"schema":{"type":"string","title":"Execution Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClaimRequest"}}}},"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"}}}}}}},"/v1/executions/{execution_id}/replay":{"post":{"tags":["executions"],"summary":"Replay Execution","description":"Replay an execution — creates a new execution with the same cue and payload.","operationId":"replay_execution_v1_executions__execution_id__replay_post","parameters":[{"name":"execution_id","in":"path","required":true,"schema":{"type":"string","title":"Execution Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/executions/{execution_id}/verify":{"post":{"tags":["executions"],"summary":"Verify Execution","description":"Mark an execution outcome as verified or verification-failed.\n\nBody: ``{valid: bool = true, reason: str?}``. ``valid=true``\ntransitions the execution to ``verified_success`` (the legacy\ndefault when no body is sent). ``valid=false`` transitions to\n``verification_failed`` and appends ``reason`` onto\n``evidence_summary`` (capped at 500 chars).\n\nAccepted starting states: ``reported_success``,\n``reported_failure``, ``verification_pending``. Other states\nreturn 409.","operationId":"verify_execution_v1_executions__execution_id__verify_post","parameters":[{"name":"execution_id","in":"path","required":true,"schema":{"type":"string","title":"Execution Id"}}],"requestBody":{"content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/VerifyRequest"},{"type":"null"}],"title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/executions/{execution_id}/verification-pending":{"post":{"tags":["executions"],"summary":"Mark Verification Pending","description":"Mark an execution outcome as pending verification.","operationId":"mark_verification_pending_v1_executions__execution_id__verification_pending_post","parameters":[{"name":"execution_id","in":"path","required":true,"schema":{"type":"string","title":"Execution Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/executions/{execution_id}/evidence":{"patch":{"tags":["executions"],"summary":"Append Evidence","description":"Append evidence to an execution after outcome is already recorded.\n\nUnlike POST /outcome (write-once), this endpoint allows adding evidence\nfields without changing the outcome success/failure status. This is\nessential for worker transport where the daemon auto-reports outcome\nbefore the agent has finished producing business results.","operationId":"append_evidence_v1_executions__execution_id__evidence_patch","parameters":[{"name":"execution_id","in":"path","required":true,"schema":{"type":"string","title":"Execution Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","title":"Body"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/usage":{"get":{"tags":["usage"],"summary":"Usage","operationId":"usage_v1_usage_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/billing/checkout":{"post":{"tags":["billing"],"summary":"Checkout","operationId":"checkout_v1_billing_checkout_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/billing/portal":{"post":{"tags":["billing"],"summary":"Portal","operationId":"portal_v1_billing_portal_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/billing/webhook":{"post":{"tags":["billing"],"summary":"Billing Webhook","operationId":"billing_webhook_v1_billing_webhook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/billing/success":{"get":{"tags":["billing-pages"],"summary":"Billing Success Page","operationId":"billing_success_page_billing_success_get","parameters":[{"name":"plan","in":"query","required":false,"schema":{"type":"string","default":"pro","title":"Plan"}}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/billing/cancelled":{"get":{"tags":["billing-pages"],"summary":"Billing Cancelled Page","operationId":"billing_cancelled_page_billing_cancelled_get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}},"/v1/echo/{token}":{"post":{"tags":["echo"],"summary":"Echo Store","description":"Store a payload keyed by token. No auth required. Expires after 5 minutes.","operationId":"echo_store_v1_echo__token__post","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"}}}}}},"get":{"tags":["echo"],"summary":"Echo Retrieve","description":"Retrieve a stored payload. Auth required.","operationId":"echo_retrieve_v1_echo__token__get","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"}}}}}}},"/v1/worker/heartbeat":{"post":{"tags":["worker"],"summary":"Heartbeat","description":"UPSERT worker: insert or update on (user_id, worker_id) conflict.","operationId":"heartbeat_v1_worker_heartbeat_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HeartbeatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HeartbeatResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/workers":{"get":{"tags":["worker"],"summary":"List Workers","description":"List all registered workers with heartbeat status.","operationId":"list_workers_v1_workers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkerListResponse"}}}}}}},"/v1/workers/{worker_id}":{"delete":{"tags":["worker"],"summary":"Delete Worker","description":"Delete a registered worker. Only the owning user can delete their workers.","operationId":"delete_worker_v1_workers__worker_id__delete","parameters":[{"name":"worker_id","in":"path","required":true,"schema":{"type":"string","title":"Worker Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/webhook-secret":{"get":{"tags":["auth"],"summary":"Get Webhook Secret","description":"Retrieve the current webhook signing secret.","operationId":"get_webhook_secret_v1_auth_webhook_secret_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSecretResponse"}}}}}}},"/v1/auth/webhook-secret/regenerate":{"post":{"tags":["auth"],"summary":"Regenerate Webhook Secret","description":"Regenerate webhook signing secret. Old secret is instantly revoked.","operationId":"regenerate_webhook_secret_v1_auth_webhook_secret_regenerate_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookSecretRegenerateResponse"}}}}}}},"/v1/support":{"post":{"tags":["support"],"summary":"Submit Support Request","description":"Submit a support request. Stores in database and sends internal notification via Resend.","operationId":"submit_support_request_v1_support_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupportRequest"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupportResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["support"],"summary":"List Tickets","description":"List all support tickets for the authenticated user. Paginated.","operationId":"list_tickets_v1_support_get","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"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":{"$ref":"#/components/schemas/SupportTicketListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/support/{ticket_id}":{"get":{"tags":["support"],"summary":"Get Ticket","description":"Get a support ticket by ID. Users can only see their own tickets.","operationId":"get_ticket_v1_support__ticket_id__get","parameters":[{"name":"ticket_id","in":"path","required":true,"schema":{"type":"string","title":"Ticket Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SupportTicketResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/memory-block":{"get":{"tags":["memory-block"],"summary":"Get Memory Block","description":"Return agent memory block text. Requires user consent (memory_block_enabled).","operationId":"get_memory_block_v1_memory_block_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/memory-block/subscribe":{"post":{"tags":["memory-block"],"summary":"Subscribe","description":"Subscribe to memory block update notifications.","operationId":"subscribe_v1_memory_block_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"}}}}}}},"/v1/memory-block/subscribe/{subscription_id}":{"delete":{"tags":["memory-block"],"summary":"Unsubscribe","description":"Unsubscribe from memory block updates.","operationId":"unsubscribe_v1_memory_block_subscribe__subscription_id__delete","parameters":[{"name":"subscription_id","in":"path","required":true,"schema":{"type":"string","title":"Subscription Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/internal/memory-block/publish":{"post":{"tags":["memory-block"],"summary":"Publish Memory Block Version","description":"Publish a new memory block version and notify subscribers. Internal only.","operationId":"publish_memory_block_version_v1_internal_memory_block_publish_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/internal/deploy-hook":{"post":{"tags":["internal"],"summary":"Deploy Hook","description":"Internal endpoint triggered by Railway deploy to create an Argus test cue.","operationId":"deploy_hook_v1_internal_deploy_hook_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/blog/posts":{"get":{"tags":["blog"],"summary":"List Published Posts","description":"List all published blog posts. Filterable by category.","operationId":"list_published_posts_v1_blog_posts_get","parameters":[{"name":"category","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Filter by category: tutorial, guide, blog","title":"Category"},"description":"Filter by category: tutorial, guide, blog"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPostListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["blog"],"summary":"Create Post","description":"Create a new blog post (auth required).","operationId":"create_post_v1_blog_posts_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPostCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPostResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/blog/posts/{slug}":{"get":{"tags":["blog"],"summary":"Get Published Post","description":"Get a single published blog post by slug.","operationId":"get_published_post_v1_blog_posts__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPostResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["blog"],"summary":"Update Post","description":"Update a blog post by slug (auth required).","operationId":"update_post_v1_blog_posts__slug__patch","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPostUpdate"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BlogPostResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["blog"],"summary":"Delete Post","description":"Delete a blog post by slug (auth required).","operationId":"delete_post_v1_blog_posts__slug__delete","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/blog/rss":{"get":{"tags":["blog"],"summary":"Rss Feed","description":"RSS 2.0 feed of published blog posts.","operationId":"rss_feed_v1_blog_rss_get","responses":{"200":{"description":"Successful Response"}}}},"/v1/blog/images/{slug}.webp":{"get":{"tags":["blog"],"summary":"Get Blog Image","description":"Serve a generated blog hero image from the database. Public, no auth.","operationId":"get_blog_image_v1_blog_images__slug__webp_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/internal/content-pipeline":{"post":{"tags":["internal"],"summary":"Content Pipeline","description":"Run a content pipeline step. Protected by X-Pipeline-Secret header.","operationId":"content_pipeline_v1_internal_content_pipeline_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/internal/release-audit":{"post":{"tags":["internal"],"summary":"Release Audit","description":"Run the daily release audit. Protected by X-Pipeline-Secret header.","operationId":"release_audit_v1_internal_release_audit_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/alerts":{"get":{"tags":["alerts"],"summary":"Get Alerts","operationId":"get_alerts_v1_alerts_get","parameters":[{"name":"alert_type","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alert Type"}},{"name":"cue_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cue Id"}},{"name":"acknowledged","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Acknowledged"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":50,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlertListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/alerts/{alert_id}/acknowledge":{"post":{"tags":["alerts"],"summary":"Ack Alert","operationId":"ack_alert_v1_alerts__alert_id__acknowledge_post","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"}}}}}}},"/v1/auth/me/cancel-deletion":{"post":{"tags":["gdpr"],"summary":"Cancel Account Deletion","description":"Cancel a pending account deletion using the confirmation token.\n\nAccepts token either from JSON body or query parameter.\nDoes not require auth (user may have rotated their key).","operationId":"cancel_account_deletion_v1_auth_me_cancel_deletion_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/auth/me/export":{"get":{"tags":["gdpr"],"summary":"Export Personal Data","description":"Export all personal data as a JSON file (GDPR Article 20).\n\nRate limited to 1 request per hour per user.\nReturns a streaming JSON response with Content-Disposition attachment.","operationId":"export_personal_data_v1_auth_me_export_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/auth/me/processing":{"get":{"tags":["gdpr"],"summary":"Get Processing Info","description":"Return what personal data we process, why, and user rights (GDPR Article 15).\n\nServes structured JSON describing all data categories, purposes,\nlawful bases, retention periods, sub-processors, and available rights.\nGenerated from app/gdpr/processing_info.json for easy maintenance.","operationId":"get_processing_info_v1_auth_me_processing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"AlertConfig":{"properties":{"consecutive_failures":{"type":"integer","maximum":100.0,"minimum":1.0,"title":"Consecutive Failures","default":3},"missed_window_multiplier":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"Missed Window Multiplier","default":2}},"type":"object","title":"AlertConfig","description":"Proactive alerting configuration."},"AlertListResponse":{"properties":{"alerts":{"items":{"$ref":"#/components/schemas/AlertResponse"},"type":"array","title":"Alerts"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["alerts","total","limit","offset"],"title":"AlertListResponse"},"AlertResponse":{"properties":{"id":{"type":"string","title":"Id"},"cue_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cue Id"},"execution_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Execution Id"},"alert_type":{"type":"string","title":"Alert Type"},"severity":{"type":"string","title":"Severity"},"message":{"type":"string","title":"Message"},"metadata":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Metadata"},"acknowledged":{"type":"boolean","title":"Acknowledged"},"created_at":{"type":"string","format":"date-time","title":"Created At"}},"type":"object","required":["id","alert_type","severity","message","acknowledged","created_at"],"title":"AlertResponse"},"ApiKeyItem":{"properties":{"id":{"type":"string","title":"Id"},"prefix":{"type":"string","title":"Prefix"},"label":{"type":"string","title":"Label"},"created_at":{"type":"string","title":"Created At"},"created_by":{"type":"string","title":"Created By"},"last_used_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Used At"},"revoked_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revoked At"}},"type":"object","required":["id","prefix","label","created_at","created_by"],"title":"ApiKeyItem"},"BlogPostCreate":{"properties":{"title":{"type":"string","maxLength":500,"minLength":1,"title":"Title"},"slug":{"type":"string","maxLength":200,"minLength":1,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$","title":"Slug"},"content":{"type":"string","minLength":1,"title":"Content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"seo_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Title"},"seo_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Description"},"category":{"anyOf":[{"type":"string","pattern":"^(tutorial|guide|blog)$"},{"type":"null"}],"title":"Category"},"author":{"type":"string","title":"Author","default":"Govind Kavaturi"},"date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date"},"read_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Read Time"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"image_alt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Alt"},"tags":{"items":{"type":"string"},"type":"array","title":"Tags"},"keywords":{"items":{"type":"string"},"type":"array","title":"Keywords"},"published":{"type":"boolean","title":"Published","default":false}},"type":"object","required":["title","slug","content"],"title":"BlogPostCreate"},"BlogPostListResponse":{"properties":{"posts":{"items":{"$ref":"#/components/schemas/BlogPostResponse"},"type":"array","title":"Posts"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["posts","total","limit","offset"],"title":"BlogPostListResponse"},"BlogPostResponse":{"properties":{"id":{"type":"string","title":"Id"},"title":{"type":"string","title":"Title"},"slug":{"type":"string","title":"Slug"},"content":{"type":"string","title":"Content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"seo_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Title"},"seo_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Description"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Category"},"author":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date"},"read_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Read Time"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"image_alt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Alt"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"keywords":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Keywords"},"published":{"type":"boolean","title":"Published"},"json_ld":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Json Ld"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updated At"}},"type":"object","required":["id","title","slug","content","description","seo_title","seo_description","category","author","date","read_time","image_url","image_alt","tags","keywords","published","created_at"],"title":"BlogPostResponse"},"BlogPostUpdate":{"properties":{"title":{"anyOf":[{"type":"string","maxLength":500,"minLength":1},{"type":"null"}],"title":"Title"},"slug":{"anyOf":[{"type":"string","maxLength":200,"minLength":1,"pattern":"^[a-z0-9]+(?:-[a-z0-9]+)*$"},{"type":"null"}],"title":"Slug"},"content":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"title":"Content"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"seo_title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Title"},"seo_description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seo Description"},"category":{"anyOf":[{"type":"string","pattern":"^(tutorial|guide|blog)$"},{"type":"null"}],"title":"Category"},"author":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Author"},"date":{"anyOf":[{"type":"string","format":"date"},{"type":"null"}],"title":"Date"},"read_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Read Time"},"image_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Url"},"image_alt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Alt"},"tags":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Tags"},"keywords":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Keywords"},"published":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Published"}},"additionalProperties":false,"type":"object","title":"BlogPostUpdate"},"CallbackCreate":{"properties":{"url":{"anyOf":[{"type":"string","maxLength":2083,"minLength":1,"format":"uri"},{"type":"null"}],"title":"Url"},"method":{"type":"string","title":"Method","default":"POST"},"headers":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Headers"},"transport":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Transport"}},"type":"object","title":"CallbackCreate"},"CheckoutRequest":{"properties":{"plan":{"type":"string","title":"Plan"},"interval":{"type":"string","title":"Interval"}},"type":"object","required":["plan","interval"],"title":"CheckoutRequest"},"ClaimRequest":{"properties":{"worker_id":{"type":"string","maxLength":255,"minLength":1,"title":"Worker Id"}},"type":"object","required":["worker_id"],"title":"ClaimRequest"},"ClaimResponse":{"properties":{"claimed":{"type":"boolean","title":"Claimed"},"execution_id":{"type":"string","title":"Execution Id"},"lease_seconds":{"type":"integer","title":"Lease Seconds"}},"type":"object","required":["claimed","execution_id","lease_seconds"],"title":"ClaimResponse"},"ClaimableExecution":{"properties":{"execution_id":{"type":"string","title":"Execution Id"},"cue_id":{"type":"string","title":"Cue Id"},"cue_name":{"type":"string","title":"Cue Name"},"task":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Task"},"scheduled_for":{"type":"string","format":"date-time","title":"Scheduled For"},"payload":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Payload"},"attempt":{"type":"integer","title":"Attempt"}},"type":"object","required":["execution_id","cue_id","cue_name","scheduled_for","attempt"],"title":"ClaimableExecution"},"ClaimableListResponse":{"properties":{"executions":{"items":{"$ref":"#/components/schemas/ClaimableExecution"},"type":"array","title":"Executions"}},"type":"object","required":["executions"],"title":"ClaimableListResponse"},"CreateKeyRequest":{"properties":{"label":{"type":"string","maxLength":100,"minLength":1,"title":"Label"}},"type":"object","required":["label"],"title":"CreateKeyRequest"},"CreateKeyResponse":{"properties":{"id":{"type":"string","title":"Id"},"api_key":{"type":"string","title":"Api Key"},"prefix":{"type":"string","title":"Prefix"},"label":{"type":"string","title":"Label"},"created_at":{"type":"string","title":"Created At"}},"type":"object","required":["id","api_key","prefix","label","created_at"],"title":"CreateKeyResponse"},"CueCreate":{"properties":{"name":{"type":"string","maxLength":255,"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"schedule":{"$ref":"#/components/schemas/ScheduleCreate"},"callback":{"anyOf":[{"$ref":"#/components/schemas/CallbackCreate"},{"type":"null"}]},"transport":{"type":"string","title":"Transport","default":"webhook"},"payload":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Payload","default":{}},"retry":{"anyOf":[{"$ref":"#/components/schemas/RetryConfig"},{"type":"null"}]},"on_failure":{"anyOf":[{"$ref":"#/components/schemas/OnFailureConfig"},{"type":"null"}]},"delivery":{"anyOf":[{"$ref":"#/components/schemas/DeliveryConfig"},{"type":"null"}]},"alerts":{"anyOf":[{"$ref":"#/components/schemas/AlertConfig"},{"type":"null"}]},"catch_up":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Catch Up","default":"run_once_if_missed"},"verification":{"anyOf":[{"$ref":"#/components/schemas/VerificationConfig"},{"type":"null"}]}},"type":"object","required":["name","schedule"],"title":"CueCreate"},"CueDetailResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"status":{"type":"string","title":"Status"},"transport":{"type":"string","title":"Transport","default":"webhook"},"schedule":{"type":"object","title":"Schedule"},"callback":{"type":"object","title":"Callback"},"payload":{"type":"object","title":"Payload"},"retry":{"type":"object","title":"Retry"},"next_run":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Run"},"last_run":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Run"},"run_count":{"type":"integer","title":"Run Count"},"fired_count":{"type":"integer","title":"Fired Count","default":0},"on_failure":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"On Failure"},"delivery":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Delivery"},"alerts":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Alerts"},"catch_up":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Catch Up"},"verification":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Verification"},"stats":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Stats"},"warning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Warning"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"},"executions":{"items":{"$ref":"#/components/schemas/ExecutionResponse"},"type":"array","title":"Executions","default":[]},"execution_total":{"type":"integer","title":"Execution Total","default":0},"execution_limit":{"type":"integer","title":"Execution Limit","default":10},"execution_offset":{"type":"integer","title":"Execution Offset","default":0}},"type":"object","required":["id","name","description","status","schedule","callback","payload","retry","next_run","last_run","run_count","created_at","updated_at"],"title":"CueDetailResponse"},"CueListResponse":{"properties":{"cues":{"items":{"$ref":"#/components/schemas/CueResponse"},"type":"array","title":"Cues"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["cues","total","limit","offset"],"title":"CueListResponse"},"CueResponse":{"properties":{"id":{"type":"string","title":"Id"},"name":{"type":"string","title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"status":{"type":"string","title":"Status"},"transport":{"type":"string","title":"Transport","default":"webhook"},"schedule":{"type":"object","title":"Schedule"},"callback":{"type":"object","title":"Callback"},"payload":{"type":"object","title":"Payload"},"retry":{"type":"object","title":"Retry"},"next_run":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Next Run"},"last_run":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Run"},"run_count":{"type":"integer","title":"Run Count"},"fired_count":{"type":"integer","title":"Fired Count","default":0},"on_failure":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"On Failure"},"delivery":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Delivery"},"alerts":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Alerts"},"catch_up":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Catch Up"},"verification":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Verification"},"stats":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Stats"},"warning":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Warning"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","name","description","status","schedule","callback","payload","retry","next_run","last_run","run_count","created_at","updated_at"],"title":"CueResponse"},"CueUpdate":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status"},"schedule":{"anyOf":[{"$ref":"#/components/schemas/ScheduleCreate"},{"type":"null"}]},"callback":{"anyOf":[{"$ref":"#/components/schemas/CallbackCreate"},{"type":"null"}]},"payload":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Payload"},"retry":{"anyOf":[{"$ref":"#/components/schemas/RetryConfig"},{"type":"null"}]},"on_failure":{"anyOf":[{"$ref":"#/components/schemas/OnFailureConfig"},{"type":"null"}]},"delivery":{"anyOf":[{"$ref":"#/components/schemas/DeliveryConfig"},{"type":"null"}]},"alerts":{"anyOf":[{"$ref":"#/components/schemas/AlertConfig"},{"type":"null"}]},"catch_up":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Catch Up"},"verification":{"anyOf":[{"$ref":"#/components/schemas/VerificationConfig"},{"type":"null"}]}},"additionalProperties":false,"type":"object","title":"CueUpdate"},"DeleteKeyResponse":{"properties":{"id":{"type":"string","title":"Id"},"revoked_at":{"type":"string","title":"Revoked At"}},"type":"object","required":["id","revoked_at"],"title":"DeleteKeyResponse"},"DeliveryConfig":{"properties":{"timeout_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Timeout Seconds","default":30},"outcome_deadline_seconds":{"type":"integer","maximum":3600.0,"minimum":1.0,"title":"Outcome Deadline Seconds","default":300}},"type":"object","title":"DeliveryConfig","description":"Two-phase delivery configuration."},"DeviceCodeRequest":{"properties":{"device_code":{"type":"string","title":"Device Code"}},"type":"object","required":["device_code"],"title":"DeviceCodeRequest"},"ExecutionResponse":{"properties":{"id":{"type":"string","title":"Id"},"cue_id":{"type":"string","title":"Cue Id"},"scheduled_for":{"type":"string","format":"date-time","title":"Scheduled For"},"status":{"type":"string","title":"Status"},"http_status":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Http Status"},"attempts":{"type":"integer","title":"Attempts"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message"},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At"},"delivered_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Delivered At"},"last_attempt_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Attempt At"},"outcome":{"anyOf":[{"$ref":"#/components/schemas/OutcomeDetail"},{"type":"null"}]},"outcome_state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Outcome State"},"triggered_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Triggered By"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","cue_id","scheduled_for","status","http_status","attempts","error_message","started_at","delivered_at","last_attempt_at","outcome","created_at","updated_at"],"title":"ExecutionResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HeartbeatRequest":{"properties":{"worker_id":{"type":"string","maxLength":255,"title":"Worker Id"},"handlers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Handlers"}},"type":"object","required":["worker_id"],"title":"HeartbeatRequest"},"HeartbeatResponse":{"properties":{"acknowledged":{"type":"boolean","title":"Acknowledged"},"server_time":{"type":"string","format":"date-time","title":"Server Time"}},"type":"object","required":["acknowledged","server_time"],"title":"HeartbeatResponse"},"ListKeysResponse":{"properties":{"keys":{"items":{"$ref":"#/components/schemas/ApiKeyItem"},"type":"array","title":"Keys"}},"type":"object","required":["keys"],"title":"ListKeysResponse"},"McpExchangeRequest":{"properties":{"session_token":{"type":"string","maxLength":256,"minLength":8,"title":"Session Token"},"client_id":{"type":"string","maxLength":128,"minLength":1,"title":"Client Id"},"label":{"type":"string","maxLength":80,"minLength":1,"title":"Label","default":"mcp-connection"}},"type":"object","required":["session_token","client_id"],"title":"McpExchangeRequest"},"McpExchangeResponse":{"properties":{"api_key":{"type":"string","title":"Api Key"},"user_id":{"type":"string","title":"User Id"},"key_id":{"type":"string","title":"Key Id"},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["api_key","user_id","key_id"],"title":"McpExchangeResponse"},"OnFailureConfig":{"properties":{"email":{"type":"boolean","title":"Email","default":true},"webhook":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Webhook"},"pause":{"type":"boolean","title":"Pause","default":false}},"type":"object","title":"OnFailureConfig","description":"Failure escalation configuration."},"OutcomeDetail":{"properties":{"success":{"type":"boolean","title":"Success"},"result":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Result"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"},"metadata":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Metadata"},"recorded_at":{"type":"string","format":"date-time","title":"Recorded At"},"state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"State"},"external_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"External Id"},"result_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Result Url"},"result_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Result Type"},"summary":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Summary"},"validation_state":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Validation State"}},"type":"object","required":["success","result","error","metadata","recorded_at"],"title":"OutcomeDetail"},"OutcomeRequest":{"properties":{"success":{"type":"boolean","title":"Success"},"result":{"anyOf":[{"type":"string","maxLength":8000},{"type":"null"}],"title":"Result"},"error":{"anyOf":[{"type":"string","maxLength":8000},{"type":"null"}],"title":"Error"},"metadata":{"anyOf":[{"type":"object"},{"type":"null"}],"title":"Metadata"},"external_id":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"External Id"},"result_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Result Url"},"result_ref":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}],"title":"Result Ref"},"result_type":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}],"title":"Result Type"},"summary":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Summary"},"artifacts":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Artifacts"}},"type":"object","required":["success"],"title":"OutcomeRequest"},"OutcomeResponse":{"properties":{"execution_id":{"type":"string","title":"Execution Id"},"outcome_recorded":{"type":"boolean","title":"Outcome Recorded"},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"}},"type":"object","required":["execution_id","outcome_recorded"],"title":"OutcomeResponse"},"PatchKeyRequest":{"properties":{"label":{"type":"string","maxLength":100,"minLength":1,"title":"Label"}},"type":"object","required":["label"],"title":"PatchKeyRequest"},"PatchKeyResponse":{"properties":{"id":{"type":"string","title":"Id"},"label":{"type":"string","title":"Label"}},"type":"object","required":["id","label"],"title":"PatchKeyResponse"},"PatchMeRequest":{"properties":{"memory_block_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Memory Block Enabled"},"alert_webhook_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alert Webhook Url"}},"type":"object","title":"PatchMeRequest","description":"All fields optional; request with no fields returns 422.\n\n``alert_webhook_url``: Optional HTTPS URL. Pass \"\" to clear.\nSSRF-validated against settings.ENV on set. See\nPOST /v1/auth/alert-webhook-secret/* for HMAC key management."},"PollRequest":{"properties":{"device_code":{"type":"string","title":"Device Code"}},"type":"object","required":["device_code"],"title":"PollRequest"},"RegenerateResponse":{"properties":{"api_key":{"type":"string","title":"Api Key"},"previous_key_revoked":{"type":"boolean","title":"Previous Key Revoked"}},"type":"object","required":["api_key","previous_key_revoked"],"title":"RegenerateResponse"},"RegisterRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email"}},"type":"object","required":["email"],"title":"RegisterRequest"},"RegisterResponse":{"properties":{"api_key":{"type":"string","title":"Api Key"},"email":{"type":"string","title":"Email"}},"type":"object","required":["api_key","email"],"title":"RegisterResponse"},"RetryConfig":{"properties":{"max_attempts":{"type":"integer","maximum":10.0,"minimum":1.0,"title":"Max Attempts","default":3},"backoff_minutes":{"items":{"type":"integer"},"type":"array","title":"Backoff Minutes","default":[1,5,15]}},"type":"object","title":"RetryConfig"},"ScheduleCreate":{"properties":{"type":{"type":"string","title":"Type"},"cron":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Cron"},"at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"At"},"timezone":{"type":"string","title":"Timezone","default":"UTC"}},"type":"object","required":["type"],"title":"ScheduleCreate"},"SessionRequest":{"properties":{"token":{"type":"string","title":"Token"}},"type":"object","required":["token"],"title":"SessionRequest"},"SubmitEmailRequest":{"properties":{"device_code":{"type":"string","title":"Device Code"},"email":{"type":"string","format":"email","title":"Email"}},"type":"object","required":["device_code","email"],"title":"SubmitEmailRequest"},"SubscribeRequest":{"properties":{"callback_url":{"type":"string","title":"Callback Url"},"agent_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Agent Id"}},"type":"object","required":["callback_url"],"title":"SubscribeRequest"},"SupportRequest":{"properties":{"subject":{"type":"string","maxLength":200,"minLength":10,"title":"Subject"},"message":{"type":"string","maxLength":5000,"minLength":30,"title":"Message"},"severity":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Severity","default":"medium"},"type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Type","default":"bug"}},"type":"object","required":["subject","message"],"title":"SupportRequest"},"SupportResponse":{"properties":{"status":{"type":"string","title":"Status"},"ticket_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ticket Id"},"ticket_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ticket Url"},"ticket_status":{"type":"string","title":"Ticket Status"},"message":{"type":"string","title":"Message"}},"type":"object","required":["status","ticket_status","message"],"title":"SupportResponse"},"SupportTicketListResponse":{"properties":{"tickets":{"items":{"$ref":"#/components/schemas/SupportTicketResponse"},"type":"array","title":"Tickets"},"total":{"type":"integer","title":"Total"},"limit":{"type":"integer","title":"Limit"},"offset":{"type":"integer","title":"Offset"}},"type":"object","required":["tickets","total","limit","offset"],"title":"SupportTicketListResponse"},"SupportTicketResponse":{"properties":{"ticket_id":{"type":"string","title":"Ticket Id"},"subject":{"type":"string","title":"Subject"},"severity":{"type":"string","title":"Severity"},"type":{"type":"string","title":"Type"},"status":{"type":"string","title":"Status"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["ticket_id","subject","severity","type","status","created_at","updated_at"],"title":"SupportTicketResponse"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VerificationConfig":{"properties":{"mode":{"type":"string","title":"Mode","default":"none"}},"type":"object","title":"VerificationConfig","description":"Outcome verification policy."},"VerifyRequest":{"properties":{"valid":{"type":"boolean","title":"Valid","default":true},"reason":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}],"title":"Reason"}},"type":"object","title":"VerifyRequest","description":"Body for ``POST /v1/executions/{id}/verify``.\n\nOptional body; absent body or ``{}`` defaults to ``valid=true`` so\nlegacy callers that pre-date the body schema keep the same behavior\n(transitions to ``verified_success``).\n\n``valid=false`` is the branch added in this PR: transitions to\n``verification_failed`` and (optionally) appends a human-readable\n``reason`` onto the execution's ``evidence_summary`` (capped at 500\nchars including any pre-existing summary text)."},"WebhookSecretRegenerateResponse":{"properties":{"webhook_secret":{"type":"string","title":"Webhook Secret"},"previous_secret_revoked":{"type":"boolean","title":"Previous Secret Revoked"}},"type":"object","required":["webhook_secret","previous_secret_revoked"],"title":"WebhookSecretRegenerateResponse"},"WebhookSecretResponse":{"properties":{"webhook_secret":{"type":"string","title":"Webhook Secret"}},"type":"object","required":["webhook_secret"],"title":"WebhookSecretResponse"},"WorkerInfo":{"properties":{"worker_id":{"type":"string","title":"Worker Id"},"last_heartbeat":{"type":"string","format":"date-time","title":"Last Heartbeat"},"seconds_since_heartbeat":{"type":"integer","title":"Seconds Since Heartbeat"},"heartbeat_status":{"type":"string","title":"Heartbeat Status"},"handlers":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Handlers"},"registered_since":{"type":"string","format":"date-time","title":"Registered Since"}},"type":"object","required":["worker_id","last_heartbeat","seconds_since_heartbeat","heartbeat_status","registered_since"],"title":"WorkerInfo"},"WorkerListResponse":{"properties":{"workers":{"items":{"$ref":"#/components/schemas/WorkerInfo"},"type":"array","title":"Workers"}},"type":"object","required":["workers"],"title":"WorkerListResponse"}}},"tags":[{"name":"auth","description":"Authentication: register, login (device code flow), API key management"},{"name":"cues","description":"CRUD operations for scheduled cues (tasks)"},{"name":"executions","description":"Execution management: outcomes, claimable list, claim for worker transport"},{"name":"worker","description":"Worker transport: heartbeat registration for pull-based execution delivery"},{"name":"usage","description":"Usage stats and plan information"},{"name":"billing","description":"Stripe billing: checkout, portal, webhooks"},{"name":"echo","description":"Echo endpoint for testing webhook delivery"},{"name":"blog","description":"Blog content: public read-only articles, RSS feed, auth-protected CRUD"},{"name":"auth-pages","description":"HTML pages for device code verification flow"}]}