{"openapi":"3.1.0","info":{"title":"FastAPI","version":"0.1.0"},"paths":{"/oauth1/connect/callback":{"get":{"summary":"Oauth1 Connect Callback","description":"Leg 3: exchange the verified request token for the access token.","operationId":"oauth1_connect_callback_oauth1_connect_callback_get","parameters":[{"name":"oauth_token","in":"query","required":false,"schema":{"type":"string","default":"","title":"Oauth Token"}},{"name":"oauth_verifier","in":"query","required":false,"schema":{"type":"string","default":"","title":"Oauth Verifier"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/login":{"get":{"summary":"Login Form","operationId":"login_form_login_get","parameters":[{"name":"next","in":"query","required":false,"schema":{"type":"string","default":"/","title":"Next"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Login Submit","operationId":"login_submit_login_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/google":{"get":{"summary":"Auth Google","operationId":"auth_google_auth_google_get","parameters":[{"name":"next","in":"query","required":false,"schema":{"type":"string","default":"/","title":"Next"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/callback":{"get":{"summary":"Auth Callback","operationId":"auth_callback_auth_callback_get","parameters":[{"name":"code","in":"query","required":false,"schema":{"type":"string","default":"","title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","default":"","title":"State"}},{"name":"error","in":"query","required":false,"schema":{"type":"string","default":"","title":"Error"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/login":{"get":{"summary":"Auth Login","description":"Start the OIDC flow. ?idp=google (or okta, entra) skips the identity\nhost's own page and goes straight to that provider (kc_idp_hint).","operationId":"auth_login_auth_login_get","parameters":[{"name":"next","in":"query","required":false,"schema":{"type":"string","default":"/","title":"Next"}},{"name":"idp","in":"query","required":false,"schema":{"type":"string","default":"","title":"Idp"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/auth/oidc/callback":{"get":{"summary":"Auth Oidc Callback","operationId":"auth_oidc_callback_auth_oidc_callback_get","parameters":[{"name":"code","in":"query","required":false,"schema":{"type":"string","default":"","title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","default":"","title":"State"}},{"name":"error","in":"query","required":false,"schema":{"type":"string","default":"","title":"Error"}},{"name":"error_description","in":"query","required":false,"schema":{"type":"string","default":"","title":"Error Description"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/logout":{"get":{"summary":"Logout","operationId":"logout_logout_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/media/{fname}":{"get":{"summary":"Media File","operationId":"media_file_media__fname__get","parameters":[{"name":"fname","in":"path","required":true,"schema":{"type":"string","title":"Fname"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/why.mp4":{"get":{"summary":"Why Video","operationId":"why_video_why_mp4_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/tutorial.mp4":{"get":{"summary":"Tutorial Video","operationId":"tutorial_video_tutorial_mp4_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/intro2.mp4":{"get":{"summary":"Intro Video2","operationId":"intro_video2_intro2_mp4_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/intro.mp4":{"get":{"summary":"Intro Video","operationId":"intro_video_intro_mp4_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/favicon.ico":{"get":{"summary":"Favicon","operationId":"favicon_favicon_ico_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/pricing":{"get":{"summary":"Pricing Page","operationId":"pricing_page_pricing_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/waitlist":{"post":{"summary":"Waitlist Join","operationId":"waitlist_join_waitlist_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/about":{"get":{"summary":"About Page","operationId":"about_page_about_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/terms":{"get":{"summary":"Terms Page","operationId":"terms_page_terms_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/privacy":{"get":{"summary":"Privacy Page","operationId":"privacy_page_privacy_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/robots.txt":{"get":{"summary":"Robots","operationId":"robots_robots_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/sitemap.xml":{"get":{"summary":"Sitemap","operationId":"sitemap_sitemap_xml_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/llms.txt":{"get":{"summary":"Llms Txt","operationId":"llms_txt_llms_txt_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/":{"get":{"summary":"Drawer","operationId":"drawer__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/share/{tool}":{"get":{"summary":"Share Panel","operationId":"share_panel_share__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"}}}}}}},"/agents":{"get":{"summary":"Agents Page","description":"The MCP clients that act for me: when they connected, when they last\ncalled, and a revoke button that ends their access at once.","operationId":"agents_page_agents_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/agents/revoke":{"post":{"summary":"Agents Revoke","operationId":"agents_revoke_agents_revoke_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/card/{tool}":{"get":{"summary":"Card Page","description":"The permission card: what the tool can do, who can open it. Shown\nbefore a person's first open and whenever the card changed.","operationId":"card_page_card__tool__get","parameters":[{"name":"tool","in":"path","required":true,"schema":{"type":"string","title":"Tool"}},{"name":"next","in":"query","required":false,"schema":{"type":"string","default":"","title":"Next"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/card/{tool}/ack":{"post":{"summary":"Card Ack Submit","operationId":"card_ack_submit_card__tool__ack_post","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"}}}}}}},"/share/{tool}/org":{"post":{"summary":"Share Org","operationId":"share_org_share__tool__org_post","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"}}}}}}},"/share/{tool}/grant":{"post":{"summary":"Share Grant","operationId":"share_grant_share__tool__grant_post","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"}}}}}}},"/share/{tool}/grant_agent":{"post":{"summary":"Share Grant Agent","operationId":"share_grant_agent_share__tool__grant_agent_post","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"}}}}}}},"/share/{tool}/revoke":{"post":{"summary":"Share Revoke","operationId":"share_revoke_share__tool__revoke_post","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"}}}}}}},"/install":{"get":{"summary":"Install Script","operationId":"install_script_install_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/cli/pebble":{"get":{"summary":"Cli Source","operationId":"cli_source_cli_pebble_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/auth/cli":{"get":{"summary":"Auth Cli","operationId":"auth_cli_auth_cli_get","parameters":[{"name":"port","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Port"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/start":{"get":{"summary":"Start Page","operationId":"start_page_start_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/internal/notify":{"post":{"summary":"Internal Notify","description":"Localhost-only (egressd). Body: {\"to\": \"owner\" | \"#chan\" | \"a@b.com\" |\n[..], \"subject\": \"...\", \"text\": \"...\", \"html\": \"...\"}. /email and /slack\nforce a channel; /send infers it per recipient.","operationId":"internal_notify_internal_notify_post","parameters":[{"name":"channel","in":"query","required":false,"schema":{"type":"string","default":"send","title":"Channel"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/notify/{channel}":{"post":{"summary":"Internal Notify","description":"Localhost-only (egressd). Body: {\"to\": \"owner\" | \"#chan\" | \"a@b.com\" |\n[..], \"subject\": \"...\", \"text\": \"...\", \"html\": \"...\"}. /email and /slack\nforce a channel; /send infers it per recipient.","operationId":"internal_notify_internal_notify__channel__post","parameters":[{"name":"channel","in":"path","required":true,"schema":{"type":"string","title":"Channel"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/t/{tool}":{"get":{"summary":"Proxy","operationId":"proxy_t__tool__get","parameters":[{"name":"tool","in":"path","required":true,"schema":{"type":"string","title":"Tool"}},{"name":"rest","in":"query","required":false,"schema":{"type":"string","default":"","title":"Rest"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Proxy","operationId":"proxy_t__tool__get","parameters":[{"name":"tool","in":"path","required":true,"schema":{"type":"string","title":"Tool"}},{"name":"rest","in":"query","required":false,"schema":{"type":"string","default":"","title":"Rest"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/t/{tool}/{rest}":{"delete":{"summary":"Proxy","operationId":"proxy_t__tool___rest__delete","parameters":[{"name":"tool","in":"path","required":true,"schema":{"type":"string","title":"Tool"}},{"name":"rest","in":"path","required":true,"schema":{"type":"string","title":"Rest"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"summary":"Proxy","operationId":"proxy_t__tool___rest__delete","parameters":[{"name":"tool","in":"path","required":true,"schema":{"type":"string","title":"Tool"}},{"name":"rest","in":"path","required":true,"schema":{"type":"string","title":"Rest"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"summary":"Proxy","operationId":"proxy_t__tool___rest__delete","parameters":[{"name":"tool","in":"path","required":true,"schema":{"type":"string","title":"Tool"}},{"name":"rest","in":"path","required":true,"schema":{"type":"string","title":"Rest"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"Proxy","operationId":"proxy_t__tool___rest__delete","parameters":[{"name":"tool","in":"path","required":true,"schema":{"type":"string","title":"Tool"}},{"name":"rest","in":"path","required":true,"schema":{"type":"string","title":"Rest"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/token":{"get":{"summary":"Api Token","operationId":"api_token_api_token_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/ship/{tool}":{"post":{"summary":"Api Ship","operationId":"api_ship_api_ship__tool__post","parameters":[{"name":"tool","in":"path","required":true,"schema":{"type":"string","title":"Tool"}},{"name":"approve_egress","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Approve Egress"}},{"name":"note","in":"query","required":false,"schema":{"type":"string","default":"","title":"Note"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/contract":{"get":{"summary":"Api Contract","operationId":"api_contract_api_contract_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/share/{tool}":{"post":{"summary":"Api Share","operationId":"api_share_api_share__tool__post","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/tools":{"get":{"summary":"Api Tools","operationId":"api_tools_api_tools_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/jobs/{tool}":{"get":{"summary":"Api Jobs","operationId":"api_jobs_api_jobs__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/jobs/{tool}/{job}/run":{"post":{"summary":"Api Job Run","operationId":"api_job_run_api_jobs__tool___job__run_post","parameters":[{"name":"tool","in":"path","required":true,"schema":{"type":"string","title":"Tool"}},{"name":"job","in":"path","required":true,"schema":{"type":"string","title":"Job"}},{"name":"wait","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"Wait"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/jobs/{tool}/{job}/run":{"post":{"summary":"Web Job Run","operationId":"web_job_run_jobs__tool___job__run_post","parameters":[{"name":"tool","in":"path","required":true,"schema":{"type":"string","title":"Tool"}},{"name":"job","in":"path","required":true,"schema":{"type":"string","title":"Job"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/versions/{tool}":{"get":{"summary":"Api Versions","operationId":"api_versions_api_versions__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/restore/{tool}/{version}":{"post":{"summary":"Api Restore","operationId":"api_restore_api_restore__tool___version__post","parameters":[{"name":"tool","in":"path","required":true,"schema":{"type":"string","title":"Tool"}},{"name":"version","in":"path","required":true,"schema":{"type":"integer","title":"Version"}},{"name":"with_data","in":"query","required":false,"schema":{"type":"integer","default":0,"title":"With Data"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/copy/{tool}/{new_name}":{"post":{"summary":"Api Copy","operationId":"api_copy_api_copy__tool___new_name__post","parameters":[{"name":"tool","in":"path","required":true,"schema":{"type":"string","title":"Tool"}},{"name":"new_name","in":"path","required":true,"schema":{"type":"string","title":"New Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/tools/{tool}":{"delete":{"summary":"Api Tool Delete","operationId":"api_tool_delete_api_tools__tool__delete","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"}}}}}}},"/tools/{tool}/delete":{"post":{"summary":"Web Tool Delete","operationId":"web_tool_delete_tools__tool__delete_post","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/connections/{name}/test":{"post":{"summary":"Api Connection Test","operationId":"api_connection_test_api_connections__name__test_post","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/connections":{"get":{"summary":"Api Connections List","operationId":"api_connections_list_api_connections_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Api Connections Upsert","operationId":"api_connections_upsert_api_connections_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/catalog":{"get":{"summary":"Api Catalog","description":"The typed connection catalog — lets an agent or client see which\nservices can be added by name (paste-a-token) vs need manual config.\n?q= filters by name, display name or category (the full list is ~770).","operationId":"api_catalog_api_catalog_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/connections/{name}":{"delete":{"summary":"Api Connections Delete","operationId":"api_connections_delete_api_connections__name__delete","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/discover":{"post":{"summary":"Api Discover","description":"Auto-configure an OAuth connection from a pasted API/issuer URL\n(RFC 9728/8414). Returns endpoints to prefill the add form.","operationId":"api_discover_api_discover_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/connections/{name}/connect":{"get":{"summary":"Oauth Connect","description":"Start the OAuth connect flow for a connection (owner for a shared\naccount; any org member for a per-user connection).","operationId":"oauth_connect_connections__name__connect_get","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"}}}}}}},"/oauth/connect/callback":{"get":{"summary":"Oauth Connect Callback","operationId":"oauth_connect_callback_oauth_connect_callback_get","parameters":[{"name":"code","in":"query","required":false,"schema":{"type":"string","default":"","title":"Code"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","default":"","title":"State"}},{"name":"error","in":"query","required":false,"schema":{"type":"string","default":"","title":"Error"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/ask":{"post":{"summary":"Internal Ask","operationId":"internal_ask_internal_ask_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/internal/ask/{aid}":{"get":{"summary":"Internal Ask State","operationId":"internal_ask_state_internal_ask__aid__get","parameters":[{"name":"aid","in":"path","required":true,"schema":{"type":"string","title":"Aid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/internal/ask/{aid}/expire":{"post":{"summary":"Internal Ask Expire","operationId":"internal_ask_expire_internal_ask__aid__expire_post","parameters":[{"name":"aid","in":"path","required":true,"schema":{"type":"string","title":"Aid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ask/{aid}":{"get":{"summary":"Ask Page","operationId":"ask_page_ask__aid__get","parameters":[{"name":"aid","in":"path","required":true,"schema":{"type":"string","title":"Aid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/ask/{aid}/decide":{"post":{"summary":"Ask Decide","operationId":"ask_decide_ask__aid__decide_post","parameters":[{"name":"aid","in":"path","required":true,"schema":{"type":"string","title":"Aid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/asks":{"get":{"summary":"Asks Page","operationId":"asks_page_asks_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/internal/actor":{"get":{"summary":"Internal Actor","description":"Localhost-only: egressd names the human behind an actor token for\nreceipts. Authorization still happens where the token is used.","operationId":"internal_actor_internal_actor_get","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","default":"","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/receipts/{tool}":{"get":{"summary":"Api Receipts","operationId":"api_receipts_api_receipts__tool__get","parameters":[{"name":"tool","in":"path","required":true,"schema":{"type":"string","title":"Tool"}},{"name":"n","in":"query","required":false,"schema":{"type":"integer","default":200,"title":"N"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/receipts/{tool}":{"get":{"summary":"Receipts Tool Page","operationId":"receipts_tool_page_receipts__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"}}}}}}},"/receipts":{"get":{"summary":"Receipts Me Page","operationId":"receipts_me_page_receipts_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/internal/oauth/token":{"get":{"summary":"Internal Oauth Token","description":"Localhost-only: egressd fetches a live access token here. Never\nreachable through Caddy (which adds X-Forwarded-For). For a per-user\nconnection egressd passes the tool-forwarded actor token; only pebbled's\nown signature is trusted to name the user.","operationId":"internal_oauth_token_internal_oauth_token_get","parameters":[{"name":"connection","in":"query","required":false,"schema":{"type":"string","default":"","title":"Connection"}},{"name":"subject","in":"query","required":false,"schema":{"type":"string","default":"*","title":"Subject"}},{"name":"actor","in":"query","required":false,"schema":{"type":"string","default":"","title":"Actor"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/connections/{name}/test":{"get":{"summary":"Connections Test Page","description":"The Test link: run the check and come back with the verdict.","operationId":"connections_test_page_connections__name__test_get","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"}}}}}}},"/connections":{"get":{"summary":"Connections Page","operationId":"connections_page_connections_get","parameters":[{"name":"added","in":"query","required":false,"schema":{"type":"string","default":"","title":"Added"}},{"name":"err","in":"query","required":false,"schema":{"type":"string","default":"","title":"Err"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/connections/add":{"post":{"summary":"Connections Add","operationId":"connections_add_connections_add_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/connections/remove":{"post":{"summary":"Connections Remove","operationId":"connections_remove_connections_remove_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/secrets/{tool}":{"post":{"summary":"Api Secrets","operationId":"api_secrets_api_secrets__tool__post","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/logs/{tool}":{"get":{"summary":"Api Logs","operationId":"api_logs_api_logs__tool__get","parameters":[{"name":"tool","in":"path","required":true,"schema":{"type":"string","title":"Tool"}},{"name":"lines","in":"query","required":false,"schema":{"type":"integer","default":40,"title":"Lines"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/.well-known/oauth-authorization-server/mcp":{"get":{"summary":"Oauth As Meta","operationId":"oauth_as_meta__well_known_oauth_authorization_server_mcp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/oauth-authorization-server":{"get":{"summary":"Oauth As Meta","operationId":"oauth_as_meta__well_known_oauth_authorization_server_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/oauth-protected-resource/mcp":{"get":{"summary":"Oauth Pr Meta","operationId":"oauth_pr_meta__well_known_oauth_protected_resource_mcp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/.well-known/oauth-protected-resource":{"get":{"summary":"Oauth Pr Meta","operationId":"oauth_pr_meta__well_known_oauth_protected_resource_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/oauth/register":{"post":{"summary":"Oauth Register","operationId":"oauth_register_oauth_register_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/oauth/authorize":{"get":{"summary":"Oauth Authorize","operationId":"oauth_authorize_oauth_authorize_get","parameters":[{"name":"client_id","in":"query","required":false,"schema":{"type":"string","default":"","title":"Client Id"}},{"name":"redirect_uri","in":"query","required":false,"schema":{"type":"string","default":"","title":"Redirect Uri"}},{"name":"response_type","in":"query","required":false,"schema":{"type":"string","default":"","title":"Response Type"}},{"name":"code_challenge","in":"query","required":false,"schema":{"type":"string","default":"","title":"Code Challenge"}},{"name":"code_challenge_method","in":"query","required":false,"schema":{"type":"string","default":"","title":"Code Challenge Method"}},{"name":"state","in":"query","required":false,"schema":{"type":"string","default":"","title":"State"}},{"name":"scope","in":"query","required":false,"schema":{"type":"string","default":"","title":"Scope"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/oauth/approve":{"post":{"summary":"Oauth Approve","operationId":"oauth_approve_oauth_approve_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/oauth/token":{"post":{"summary":"Oauth Token","operationId":"oauth_token_oauth_token_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/mcp":{"get":{"summary":"Mcp Get","operationId":"mcp_get_mcp_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Mcp Endpoint","operationId":"mcp_endpoint_mcp_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"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"}}}}