{"openapi":"3.1.0","info":{"title":"treadstone","version":"0.1.0"},"servers":[{"url":"https://api.treadstone-ai.dev","description":"Production"}],"paths":{"/docs/sitemap.md":{"get":{"tags":["docs"],"summary":"Docs Sitemap Md","description":"Serve the documentation sitemap as Markdown.","operationId":"docs-docs_sitemap_md","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/docs/{slug}":{"get":{"tags":["docs"],"summary":"Docs Page","description":"Content-negotiation endpoint for documentation pages.\n\n- `Accept: text/markdown` → returns raw Markdown (200)\n- Other clients → redirects to the SPA docs page (302)","operationId":"docs-docs_page","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/auth/login":{"post":{"tags":["auth"],"summary":"Login","description":"Authenticate with email + password, set session cookie.","operationId":"auth-login","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/logout":{"post":{"tags":["auth"],"summary":"Logout","description":"Clear the session cookie.","operationId":"auth-logout","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}}},"security":[{"APIKeyCookie":[]}]}},"/v1/auth/register":{"post":{"tags":["auth"],"summary":"Register","operationId":"auth-register","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/user":{"get":{"tags":["auth"],"summary":"Get User","operationId":"auth-get_user","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDetailResponse"}}}}},"security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}]}},"/v1/auth/users":{"get":{"tags":["auth"],"summary":"List Users","operationId":"auth-list_users","security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}],"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Maximum number of items to return.","default":100,"title":"Limit"},"description":"Maximum number of items to return."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of items to skip.","default":0,"title":"Offset"},"description":"Number of items to skip."},{"name":"email","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Optional case-insensitive substring filter on user email.","title":"Email"},"description":"Optional case-insensitive substring filter on user email."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/change-password":{"post":{"tags":["auth"],"summary":"Change Password","operationId":"auth-change_password","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePasswordRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}]}},"/v1/auth/set-password":{"post":{"tags":["auth"],"summary":"Set Password","operationId":"auth-set_password","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPasswordRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}]}},"/v1/auth/password-reset/request":{"post":{"tags":["auth"],"summary":"Request Password Reset","operationId":"auth-request_password_reset","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordResetRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/password-reset/confirm":{"post":{"tags":["auth"],"summary":"Confirm Password Reset","operationId":"auth-confirm_password_reset","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordResetConfirmRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/verification/request":{"post":{"tags":["auth"],"summary":"Request Verification","description":"Resend verification email for the current user.","operationId":"auth-request_verification","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}}},"security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}]}},"/v1/auth/verification/confirm":{"post":{"tags":["auth"],"summary":"Confirm Verification","description":"Confirm email verification using a token from the verification link.","operationId":"auth-confirm_verification","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerificationConfirmRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/users/{user_id}/status":{"patch":{"tags":["auth"],"summary":"Update User Status","description":"Enable or disable a user account. Disabled users cannot authenticate.","operationId":"auth-update_user_status","security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserStatusRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MessageResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/users/{user_id}":{"delete":{"tags":["auth"],"summary":"Delete User","operationId":"auth-delete_user","security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}],"parameters":[{"name":"user_id","in":"path","required":true,"schema":{"type":"string","title":"User Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/api-keys":{"get":{"tags":["auth"],"summary":"List Api Keys","operationId":"auth-list_api_keys","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyListResponse"}}}}},"security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}]},"post":{"tags":["auth"],"summary":"Create Api Key","operationId":"auth-create_api_key","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}]}},"/v1/auth/api-keys/{key_id}":{"patch":{"tags":["auth"],"summary":"Update Api Key","operationId":"auth-update_api_key","security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateApiKeyRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeySummary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["auth"],"summary":"Delete Api Key","operationId":"auth-delete_api_key","security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}],"parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"string","title":"Key Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/cli/flows":{"post":{"tags":["auth"],"summary":"Create Cli Flow","description":"Create a CLI login flow for browser-based authentication.","operationId":"auth-create_cli_flow","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/auth/cli/flows/{flow_id}/status":{"get":{"tags":["auth"],"summary":"Poll Cli Flow","description":"Poll the status of a CLI login flow.","operationId":"auth-poll_cli_flow","parameters":[{"name":"flow_id","in":"path","required":true,"schema":{"type":"string","title":"Flow Id"}},{"name":"x-flow-secret","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Flow-Secret"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/cli/flows/{flow_id}/exchange":{"post":{"tags":["auth"],"summary":"Exchange Cli Flow","description":"Exchange an approved CLI login flow for a session token.","operationId":"auth-exchange_cli_flow","parameters":[{"name":"flow_id","in":"path","required":true,"schema":{"type":"string","title":"Flow Id"}},{"name":"x-flow-secret","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Flow-Secret"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/auth/cli/flows/{flow_id}/approve":{"post":{"tags":["auth"],"summary":"Approve Cli Flow","description":"Approve a pending CLI login flow using the current browser session.","operationId":"auth-approve_cli_flow","security":[{"APIKeyCookie":[]}],"parameters":[{"name":"flow_id","in":"path","required":true,"schema":{"type":"string","title":"Flow Id"}},{"name":"x-flow-secret","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Flow-Secret"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"string"},"title":"Response Auth-Approve Cli Flow"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/config":{"get":{"tags":["config"],"summary":"Get Config","operationId":"config-get_config","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConfigResponse"}}}}}}},"/v1/sandbox-templates":{"get":{"tags":["sandbox-templates"],"summary":"List Sandbox Templates","operationId":"sandbox-templates-list_sandbox_templates","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxTemplateListResponse"}}}}}}},"/v1/sandboxes":{"post":{"tags":["sandboxes"],"summary":"Create Sandbox","operationId":"sandboxes-create_sandbox","security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSandboxRequest"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["sandboxes"],"summary":"List Sandboxes","operationId":"sandboxes-list_sandboxes","security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}],"parameters":[{"name":"label","in":"query","required":false,"schema":{"type":"array","items":{"type":"string"},"default":[],"title":"Label"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":1000,"minimum":1,"description":"Maximum number of items to return.","default":100,"title":"Limit"},"description":"Maximum number of items to return."},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Number of items to skip.","default":0,"title":"Offset"},"description":"Number of items to skip."}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sandbox_id}":{"get":{"tags":["sandboxes"],"summary":"Get Sandbox","description":"Return DB-backed sandbox detail. K8s state is synced by Watch/reconcile only (no read-path K8s API calls).","operationId":"sandboxes-get_sandbox","security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}],"parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"patch":{"tags":["sandboxes"],"summary":"Update Sandbox","operationId":"sandboxes-update_sandbox","security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}],"parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSandboxRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["sandboxes"],"summary":"Delete Sandbox","operationId":"sandboxes-delete_sandbox","security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}],"parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sandbox_id}/snapshot":{"post":{"tags":["sandboxes"],"summary":"Snapshot Sandbox","operationId":"sandboxes-snapshot_sandbox","security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}],"parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sandbox_id}/start":{"post":{"tags":["sandboxes"],"summary":"Start Sandbox","operationId":"sandboxes-start_sandbox","security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}],"parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sandbox_id}/stop":{"post":{"tags":["sandboxes"],"summary":"Stop Sandbox","operationId":"sandboxes-stop_sandbox","security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}],"parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxDetailResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/sandboxes/{sandbox_id}/web-link":{"post":{"tags":["sandboxes"],"summary":"Create Sandbox Web Link","operationId":"sandboxes-create_sandbox_web_link","security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}],"parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxWebLinkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"get":{"tags":["sandboxes"],"summary":"Get Sandbox Web Link","operationId":"sandboxes-get_sandbox_web_link","security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}],"parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxWebLinkStatusResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["sandboxes"],"summary":"Delete Sandbox Web Link","operationId":"sandboxes-delete_sandbox_web_link","security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}],"parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"}}],"responses":{"204":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/support/feedback":{"post":{"tags":["support"],"summary":"Create Feedback","description":"Submit support or product feedback from an interactive browser session.","operationId":"support-create_feedback","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFeedbackRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFeedbackResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyCookie":[]}]}},"/v1/usage":{"get":{"tags":["usage"],"summary":"Get Usage","operationId":"usage-get_usage","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsageSummaryResponse"}}}}},"security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}]}},"/v1/usage/plan":{"get":{"tags":["usage"],"summary":"Get Plan","operationId":"usage-get_plan","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserPlanResponse"}}}}},"security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}]}},"/v1/usage/sessions":{"get":{"tags":["usage"],"summary":"List Compute Sessions","operationId":"usage-list_compute_sessions","security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","pattern":"^(active|completed|all)$","default":"all","title":"Status"}},{"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/ComputeSessionListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/usage/storage-ledger":{"get":{"tags":["usage"],"summary":"List Storage Ledger","operationId":"usage-list_storage_ledger","security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}],"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","pattern":"^(active|released|all)$","default":"all","title":"Status"}},{"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/StorageLedgerListResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/usage/grants":{"get":{"tags":["usage"],"summary":"List Grants","operationId":"usage-list_grants","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantsResponse"}}}}},"security":[{"HTTPBearer":[]},{"APIKeyCookie":[]}]}},"/v1/waitlist":{"post":{"tags":["waitlist"],"summary":"Submit Waitlist Application","description":"Submit a waitlist application for Pro or Ultra plan access.\n\nNo authentication required — users may apply before registering. Multiple\napplications from the same email (including same tier) are allowed.","operationId":"waitlist-submit_waitlist_application","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaitlistApplicationRequest"}}},"required":true},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WaitlistApplicationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/health":{"get":{"tags":["system"],"summary":"Health","operationId":"system-health","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/v1/sandboxes/{sandbox_id}/proxy/v1/sandbox":{"get":{"tags":["Sandbox: sandbox"],"summary":"Get Sandbox Context","description":"Get sandbox environment information","operationId":"sandbox_runtime_get_sandbox_context_v1_sandbox_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxRuntimeResponse"}}}}},"x-fern-sdk-group-name":"sandbox","x-fern-sdk-method-name":"get_context","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/sandbox/packages/python":{"get":{"tags":["Sandbox: sandbox"],"summary":"Python Packages","description":"Get installed packages by language","operationId":"sandbox_runtime_python_packages_v1_sandbox_packages_python_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxApiResponse"}}}}},"x-fern-sdk-group-name":"sandbox","x-fern-sdk-method-name":"get_python_packages","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/sandbox/packages/nodejs":{"get":{"tags":["Sandbox: sandbox"],"summary":"Nodejs Packages","description":"Get installed packages by language","operationId":"sandbox_runtime_nodejs_packages_v1_sandbox_packages_nodejs_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxApiResponse"}}}}},"x-fern-sdk-group-name":"sandbox","x-fern-sdk-method-name":"get_nodejs_packages","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/shell/exec":{"post":{"tags":["Sandbox: shell"],"summary":"Exec Command","description":"Execute command in the specified shell session\nSupports SSE streaming if Accept header contains 'text/event-stream'","operationId":"sandbox_runtime_exec_command_v1_shell_exec_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShellExecRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ShellCommandResult_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"shell","x-fern-sdk-method-name":"exec_command","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/shell/view":{"post":{"tags":["Sandbox: shell"],"summary":"View Shell","description":"View output of the specified shell session\nSupports SSE streaming if Accept header contains 'text/event-stream'","operationId":"sandbox_runtime_view_shell_v1_shell_view_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShellViewRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ShellViewResult_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"shell","x-fern-sdk-method-name":"view","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/shell/wait":{"post":{"tags":["Sandbox: shell"],"summary":"Wait For Process","description":"Wait for the process in the specified shell session to return","operationId":"sandbox_runtime_wait_for_process","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShellWaitRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ShellWaitResult_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"shell","x-fern-sdk-method-name":"wait_for_process","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/shell/write":{"post":{"tags":["Sandbox: shell"],"summary":"Write To Process","description":"Write input to the process in the specified shell session","operationId":"sandbox_runtime_write_to_process","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShellWriteToProcessRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ShellWriteResult_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"shell","x-fern-sdk-method-name":"write_to_process","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/shell/kill":{"post":{"tags":["Sandbox: shell"],"summary":"Kill Process","description":"Terminate the process in the specified shell session","operationId":"sandbox_runtime_kill_shell_process","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShellKillProcessRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ShellKillResult_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"shell","x-fern-sdk-method-name":"kill_process","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/shell/sessions/create":{"post":{"tags":["Sandbox: shell"],"summary":"Create Session","description":"Create a new shell session and return its ID\nIf id already exists, return the existing session","operationId":"sandbox_runtime_create_shell_session","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShellCreateSessionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ShellCreateSessionResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"shell","x-fern-sdk-method-name":"create_session","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/shell/terminal-url":{"get":{"tags":["Sandbox: shell"],"summary":"Get Terminal Url","description":"Create a new shell session and return the terminal URL","operationId":"sandbox_runtime_get_terminal_url","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_str_"}}}}},"x-fern-sdk-group-name":"shell","x-fern-sdk-method-name":"get_terminal_url","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/shell/sessions":{"get":{"tags":["Sandbox: shell"],"summary":"List Sessions","description":"List all active shell sessions","operationId":"sandbox_runtime_list_shell_sessions","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ActiveShellSessionsResult_"}}}}},"x-fern-sdk-group-name":"shell","x-fern-sdk-method-name":"list_sessions","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]},"delete":{"tags":["Sandbox: shell"],"summary":"Cleanup All Sessions","description":"Cleanup all active shell sessions","operationId":"sandbox_runtime_cleanup_all_sessions","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxApiResponse"}}}}},"x-fern-sdk-group-name":"shell","x-fern-sdk-method-name":"cleanup_all_sessions","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/shell/sessions/{session_id}":{"delete":{"tags":["Sandbox: shell"],"summary":"Cleanup Session","description":"Manually cleanup a specific shell session","operationId":"sandbox_runtime_cleanup_shell_session","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"shell","x-fern-sdk-method-name":"cleanup_session"}},"/v1/sandboxes/{sandbox_id}/proxy/v1/file/read":{"post":{"tags":["Sandbox: file"],"summary":"Read File","description":"Read file content","operationId":"sandbox_runtime_read_file","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileReadRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_FileReadResult_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"file","x-fern-sdk-method-name":"read_file","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/file/write":{"post":{"tags":["Sandbox: file"],"summary":"Write File","description":"Write file content (supports both text and binary files)\n\nFor binary files, set encoding to 'base64' and provide base64-encoded content.\nFor text files, use default 'utf-8' encoding.","operationId":"sandbox_runtime_write_file","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileWriteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_FileWriteResult_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"file","x-fern-sdk-method-name":"write_file","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/file/replace":{"post":{"tags":["Sandbox: file"],"summary":"Replace In File","description":"Replace string in file","operationId":"sandbox_runtime_replace_in_file","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileReplaceRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_FileReplaceResult_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"file","x-fern-sdk-method-name":"replace_in_file","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/file/search":{"post":{"tags":["Sandbox: file"],"summary":"Search In File","description":"Search in file content","operationId":"sandbox_runtime_search_in_file","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileSearchRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_FileSearchResult_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"file","x-fern-sdk-method-name":"search_in_file","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/file/find":{"post":{"tags":["Sandbox: file"],"summary":"Find Files","description":"Find files by name pattern","operationId":"sandbox_runtime_find_files_v1_file_find_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileFindRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_FileFindResult_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"file","x-fern-sdk-method-name":"find_files","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/file/upload":{"post":{"tags":["Sandbox: file"],"summary":"Upload File","description":"Upload file using streaming","operationId":"sandbox_runtime_upload_file","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_file"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_FileUploadResult_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"file","x-fern-sdk-method-name":"upload_file","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/file/download":{"get":{"tags":["Sandbox: file"],"summary":"Download File","description":"Download file using FileResponse","operationId":"sandbox_runtime_download_file","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."},{"name":"path","in":"query","required":true,"schema":{"type":"string","title":"Path"}}],"responses":{"200":{"description":"Successful Response","content":{"application/octet-stream":{"schema":{"type":"string","format":"binary"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"file","x-fern-sdk-method-name":"download_file"}},"/v1/sandboxes/{sandbox_id}/proxy/v1/file/list":{"post":{"tags":["Sandbox: file"],"summary":"List Path","description":"List path contents with flexible options","operationId":"sandbox_runtime_list_path_v1_file_list_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FileListRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_FileListResult_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"file","x-fern-sdk-method-name":"list_path","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/file/str_replace_editor":{"post":{"tags":["Sandbox: file"],"summary":"Str Replace Editor","description":"An filesystem editor tool that allows the agent to\n- view\n- create\n- navigate\n- edit files\nThe tool parameters are defined by Anthropic and are not editable.","operationId":"sandbox_runtime_str_replace_editor_v1_file_str_replace_editor_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StrReplaceEditorRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_StrReplaceEditorResult_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"file","x-fern-sdk-method-name":"str_replace_editor","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/jupyter/execute":{"post":{"tags":["Sandbox: jupyter"],"summary":"Execute Jupyter Code","description":"Execute Python code using Jupyter kernel with session persistence\n\nThis endpoint allows you to execute Python code and get results back.\nYou can optionally specify a kernel_name (defaults to 'python3').\nUse session_id to maintain variable state across multiple requests.\nSessions automatically expire after 30 minutes of inactivity.","operationId":"sandbox_runtime_jupyter_execute_code","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JupyterExecuteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_JupyterExecuteResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-method-name":"execute_code","x-fern-sdk-group-name":"jupyter","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/jupyter/info":{"get":{"tags":["Sandbox: jupyter"],"summary":"Jupyter Info","description":"Get information about available Jupyter kernels","operationId":"sandbox_runtime_get_jupyter_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_JupyterInfoResponse_"}}}}},"x-fern-sdk-group-name":"jupyter","x-fern-sdk-method-name":"get_info","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/jupyter/sessions":{"get":{"tags":["Sandbox: jupyter"],"summary":"List Sessions","description":"List all active Jupyter sessions","operationId":"sandbox_runtime_list_jupyter_sessions","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ActiveSessionsResult_"}}}}},"x-fern-sdk-group-name":"jupyter","x-fern-sdk-method-name":"list_sessions","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]},"delete":{"tags":["Sandbox: jupyter"],"summary":"Cleanup All Sessions","description":"Cleanup all active sessions","operationId":"sandbox_runtime_delete_jupyter_sessions","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxApiResponse"}}}}},"x-fern-sdk-group-name":"jupyter","x-fern-sdk-method-name":"delete_sessions","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/jupyter/sessions/{session_id}":{"delete":{"tags":["Sandbox: jupyter"],"summary":"Cleanup Session","description":"Manually cleanup a specific session","operationId":"sandbox_runtime_delete_jupyter_session","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."},{"name":"session_id","in":"path","required":true,"schema":{"type":"string","title":"Session Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"jupyter","x-fern-sdk-method-name":"delete_session"}},"/v1/sandboxes/{sandbox_id}/proxy/v1/jupyter/sessions/create":{"post":{"tags":["Sandbox: jupyter"],"summary":"Create Jupyter Session","description":"Create a new Jupyter session","operationId":"sandbox_runtime_create_jupyter_session","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JupyterCreateSessionRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_JupyterCreateSessionResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"jupyter","x-fern-sdk-method-name":"create_session","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/nodejs/execute":{"post":{"tags":["Sandbox: nodejs"],"summary":"Execute Nodejs Code","description":"Execute JavaScript code using Node.js\n\nThis endpoint allows you to execute JavaScript code and get results back.\nEach request creates a fresh execution environment that's cleaned up automatically.","operationId":"sandbox_runtime_execute_nodejs_code","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NodeJSExecuteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_NodeJSExecuteResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"nodejs","x-fern-sdk-method-name":"execute_code","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/nodejs/info":{"get":{"tags":["Sandbox: nodejs"],"summary":"Nodejs Info","description":"Get information about Node.js runtime and available languages","operationId":"sandbox_runtime_get_nodejs_info","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_NodeJSRuntimeInfo_"}}}}},"x-fern-sdk-group-name":"nodejs","x-fern-sdk-method-name":"get_info","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/mcp/{server_name}/tools":{"get":{"tags":["Sandbox: mcp"],"summary":"List Mcp Tools","description":"List all available tools from the specified MCP server\n\nArgs:\n    server_name: The name of the MCP server as defined in mcp-servers.json\n\nReturns:\n    Response containing the list of available tools with their descriptions and parameters","operationId":"sandbox_runtime_list_mcp_tools_v1_mcp__server_name__tools_get","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."},{"name":"server_name","in":"path","required":true,"schema":{"type":"string","description":"Name of the MCP server","title":"Server Name"},"description":"Name of the MCP server"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_ListToolsResultModel_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}}}},"/v1/sandboxes/{sandbox_id}/proxy/v1/mcp/{server_name}/tools/{tool_name}":{"post":{"tags":["Sandbox: mcp"],"summary":"Execute Mcp Tool","description":"Execute a specific tool on the specified MCP server\n\nArgs:\n    server_name: The name of the MCP server as defined in mcp-servers.json\n    tool_name: The name of the tool to execute\n    arguments: Tool arguments dictionary\n\nReturns:\n    Response containing the tool execution results","operationId":"sandbox_runtime_execute_mcp_tool_v1_mcp__server_name__tools__tool_name__post","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."},{"name":"server_name","in":"path","required":true,"schema":{"type":"string","description":"Name of the MCP server","title":"Server Name"},"description":"Name of the MCP server"},{"name":"tool_name","in":"path","required":true,"schema":{"type":"string","description":"Name of the tool to execute","title":"Tool Name"},"description":"Name of the tool to execute"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"default":{},"title":"Arguments"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_CallToolResultModel_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}}}},"/v1/sandboxes/{sandbox_id}/proxy/v1/mcp/servers":{"get":{"tags":["Sandbox: mcp"],"summary":"List Mcp Servers","description":"List all configured MCP servers\n\nReturns:\n    Response containing the list of configured and filtered MCP servers","operationId":"sandbox_runtime_list_mcp_servers_v1_mcp_servers_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_List_str__"}}}}},"parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/browser/info":{"get":{"tags":["Sandbox: browser"],"summary":"Get Browser Info","description":"Get information about browser, like cdp url, viewport size, etc.","operationId":"sandbox_runtime_get_browser_info_v1_browser_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_BrowserInfoResult_"}}}}},"x-fern-sdk-group-name":"browser","x-fern-sdk-method-name":"get_info","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/browser/screenshot":{"get":{"tags":["Sandbox: browser"],"summary":"Take Screenshot","description":"Take a screenshot of the current display.\n\nReturns:\n    StreamingResponse: PNG image data with proper headers including display and screenshot dimensions","operationId":"sandbox_runtime_take_screenshot_v1_browser_screenshot_get","responses":{"200":{"description":"Screenshot image","headers":{"x-screen-width":{"description":"Screen width","schema":{"type":"string"}},"x-screen-height":{"description":"Screen height","schema":{"type":"string"}},"x-image-width":{"description":"Image width","schema":{"type":"string"}},"x-image-height":{"description":"Image height","schema":{"type":"string"}}},"content":{"image/png":{}}}},"x-fern-sdk-group-name":"browser","x-fern-sdk-method-name":"screenshot","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/browser/actions":{"post":{"tags":["Sandbox: browser"],"summary":"Execute Action","description":"Execute a validated action on the current display.","operationId":"sandbox_runtime_execute_action_v1_browser_actions_post","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/MoveToAction"},{"$ref":"#/components/schemas/MoveRelAction"},{"$ref":"#/components/schemas/ClickAction"},{"$ref":"#/components/schemas/MouseDownAction"},{"$ref":"#/components/schemas/MouseUpAction"},{"$ref":"#/components/schemas/RightClickAction"},{"$ref":"#/components/schemas/DoubleClickAction"},{"$ref":"#/components/schemas/DragToAction"},{"$ref":"#/components/schemas/DragRelAction"},{"$ref":"#/components/schemas/ScrollAction"},{"$ref":"#/components/schemas/TypingAction"},{"$ref":"#/components/schemas/PressAction"},{"$ref":"#/components/schemas/KeyDownAction"},{"$ref":"#/components/schemas/KeyUpAction"},{"$ref":"#/components/schemas/HotkeyAction"},{"$ref":"#/components/schemas/WaitAction"}],"title":"Action","discriminator":{"propertyName":"action_type","mapping":{"MOVE_TO":"#/components/schemas/MoveToAction","MOVE_REL":"#/components/schemas/MoveRelAction","CLICK":"#/components/schemas/ClickAction","MOUSE_DOWN":"#/components/schemas/MouseDownAction","MOUSE_UP":"#/components/schemas/MouseUpAction","RIGHT_CLICK":"#/components/schemas/RightClickAction","DOUBLE_CLICK":"#/components/schemas/DoubleClickAction","DRAG_TO":"#/components/schemas/DragToAction","DRAG_REL":"#/components/schemas/DragRelAction","SCROLL":"#/components/schemas/ScrollAction","TYPING":"#/components/schemas/TypingAction","PRESS":"#/components/schemas/PressAction","KEY_DOWN":"#/components/schemas/KeyDownAction","KEY_UP":"#/components/schemas/KeyUpAction","HOTKEY":"#/components/schemas/HotkeyAction","WAIT":"#/components/schemas/WaitAction"}}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"browser","x-fern-sdk-method-name":"execute_action","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/browser/config":{"post":{"tags":["Sandbox: browser"],"summary":"Set Config","description":"Execute a validated action on the current display.","operationId":"sandbox_runtime_set_config_v1_browser_config_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BrowserConfigRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"browser","x-fern-sdk-method-name":"set_config","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/code/execute":{"post":{"tags":["Sandbox: code"],"summary":"Execute Code","description":"Run code through the unified runtime, dispatching to Python, Node.js, or future language executors","operationId":"sandbox_runtime_execute_code_v1_code_execute_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CodeExecuteRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_CodeExecuteResponse_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"code","x-fern-sdk-method-name":"execute_code","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/code/info":{"get":{"tags":["Sandbox: code"],"summary":"Code Info","description":"Return metadata about supported code runtimes","operationId":"sandbox_runtime_code_info_v1_code_info_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_CodeInfoResponse_"}}}}},"x-fern-sdk-group-name":"code","x-fern-sdk-method-name":"get_info","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/util/convert_to_markdown":{"post":{"tags":["Sandbox: util"],"summary":"Convert To Markdown","description":"Convert a given URI to Markdown format","operationId":"sandbox_runtime_convert_to_markdown_v1_util_convert_to_markdown_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UtilConvertToMarkdownRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxApiResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"util","x-fern-sdk-method-name":"convert_to_markdown","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/skills/register":{"post":{"tags":["Sandbox: skills"],"summary":"Register Skills","operationId":"sandbox_runtime_register_skills","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_register_skills"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_SkillRegistrationResult_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"skills","x-fern-sdk-method-name":"register_skills","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/skills/metadatas":{"get":{"tags":["Sandbox: skills"],"summary":"List Skills Metadata","operationId":"sandbox_runtime_list_skills_metadata","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."},{"name":"names","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Names"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_SkillMetadataCollection_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"skills","x-fern-sdk-method-name":"list_metadata"}},"/v1/sandboxes/{sandbox_id}/proxy/v1/skills":{"delete":{"tags":["Sandbox: skills"],"summary":"Clear Skills","operationId":"sandbox_runtime_clear_skills","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_dict_"}}}}},"x-fern-sdk-group-name":"skills","x-fern-sdk-method-name":"clear_skills","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."}]}},"/v1/sandboxes/{sandbox_id}/proxy/v1/skills/{name}":{"delete":{"tags":["Sandbox: skills"],"summary":"Delete Skill","operationId":"sandbox_runtime_delete_skill","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."},{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_SkillMetadata_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"skills","x-fern-sdk-method-name":"delete_skill"}},"/v1/sandboxes/{sandbox_id}/proxy/v1/skills/{name}/content":{"get":{"tags":["Sandbox: skills"],"summary":"Get Skill Content","operationId":"sandbox_runtime_get_skill_content","parameters":[{"name":"sandbox_id","in":"path","required":true,"schema":{"type":"string","title":"Sandbox Id"},"description":"ID of the target sandbox."},{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Response_SkillContentResult_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SandboxHTTPValidationError"}}}}},"x-fern-sdk-group-name":"skills","x-fern-sdk-method-name":"get_content"}}},"components":{"schemas":{"ApiKeyDataPlaneMode":{"type":"string","enum":["none","all","selected"],"title":"ApiKeyDataPlaneMode"},"ApiKeyDataPlaneScope":{"properties":{"mode":{"$ref":"#/components/schemas/ApiKeyDataPlaneMode","default":"all","examples":["all"]},"sandbox_ids":{"items":{"type":"string"},"type":"array","title":"Sandbox Ids","examples":[["sb-abc123def456","sb-def456ghi789"]]}},"type":"object","title":"ApiKeyDataPlaneScope"},"ApiKeyDataPlaneScopeResponse":{"properties":{"mode":{"$ref":"#/components/schemas/ApiKeyDataPlaneMode","examples":["all"]},"sandbox_ids":{"items":{"type":"string"},"type":"array","title":"Sandbox Ids","examples":[["sb-abc123def456","sb-def456ghi789"]]}},"type":"object","required":["mode"],"title":"ApiKeyDataPlaneScopeResponse"},"ApiKeyListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ApiKeySummary"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"ApiKeyListResponse"},"ApiKeyResponse":{"properties":{"id":{"type":"string","title":"Id","examples":["key-abc123def456"]},"name":{"type":"string","title":"Name","examples":["my-api-key"]},"is_enabled":{"type":"boolean","title":"Is Enabled","examples":[true]},"key":{"type":"string","title":"Key","examples":["sk-0123456789abcdef0123456789abcdef01234567"]},"created_at":{"type":"string","format":"date-time","title":"Created At","examples":["2026-03-21T12:00:00+00:00"]},"updated_at":{"type":"string","format":"date-time","title":"Updated At","examples":["2026-03-21T12:00:00+00:00"]},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At","examples":[null]},"scope":{"$ref":"#/components/schemas/ApiKeyScopeResponse"}},"type":"object","required":["id","name","is_enabled","key","created_at","updated_at","scope"],"title":"ApiKeyResponse"},"ApiKeyScope":{"properties":{"control_plane":{"type":"boolean","title":"Control Plane","default":true,"examples":[true]},"data_plane":{"$ref":"#/components/schemas/ApiKeyDataPlaneScope"}},"type":"object","title":"ApiKeyScope"},"ApiKeyScopeResponse":{"properties":{"control_plane":{"type":"boolean","title":"Control Plane","examples":[true]},"data_plane":{"$ref":"#/components/schemas/ApiKeyDataPlaneScopeResponse"}},"type":"object","required":["control_plane","data_plane"],"title":"ApiKeyScopeResponse"},"ApiKeySummary":{"properties":{"id":{"type":"string","title":"Id","examples":["key-abc123def456"]},"name":{"type":"string","title":"Name","examples":["my-api-key"]},"is_enabled":{"type":"boolean","title":"Is Enabled","examples":[true]},"key_prefix":{"type":"string","title":"Key Prefix","examples":["sk-0123...cdef"]},"created_at":{"type":"string","format":"date-time","title":"Created At","examples":["2026-03-21T12:00:00+00:00"]},"updated_at":{"type":"string","format":"date-time","title":"Updated At","examples":["2026-03-21T12:00:00+00:00"]},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At","examples":[null]},"scope":{"$ref":"#/components/schemas/ApiKeyScopeResponse"}},"type":"object","required":["id","name","is_enabled","key_prefix","created_at","updated_at","scope"],"title":"ApiKeySummary"},"AuditEventListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/AuditEventResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total","examples":[1]}},"type":"object","required":["items","total"],"title":"AuditEventListResponse"},"AuditEventResponse":{"properties":{"id":{"type":"string","title":"Id","examples":["audabc123def456"]},"created_at":{"type":"string","format":"date-time","title":"Created At","examples":["2026-03-26T12:00:00+00:00"]},"actor_type":{"type":"string","title":"Actor Type","examples":["user"]},"actor_user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor User Id","examples":["userabc123def456"]},"actor_api_key_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Actor Api Key Id","examples":["keyabc123def456"]},"credential_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Credential Type","examples":["cookie"]},"action":{"type":"string","title":"Action","examples":["sandbox.create"]},"target_type":{"type":"string","title":"Target Type","examples":["sandbox"]},"target_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Target Id","examples":["sbabc123def456"]},"result":{"type":"string","title":"Result","examples":["success"]},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","examples":[null]},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id","examples":["req_0123456789abcdef"]},"ip":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ip","examples":["203.0.113.10"]},"user_agent":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Agent","examples":["python-httpx/0.28.1"]},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata","examples":[{"template":"aio-sandbox-tiny"}]}},"type":"object","required":["id","created_at","actor_type","action","target_type","result"],"title":"AuditEventResponse"},"AuditFilterOptionsResponse":{"properties":{"actions":{"items":{"type":"string"},"type":"array","title":"Actions"},"target_types":{"items":{"type":"string"},"type":"array","title":"Target Types"},"results":{"items":{"type":"string"},"type":"array","title":"Results"}},"type":"object","title":"AuditFilterOptionsResponse"},"Auth0Config":{"properties":{"domain":{"type":"string","title":"Domain","examples":["myapp.auth0.com"]},"client_id":{"type":"string","title":"Client Id","examples":["abc123"]}},"type":"object","required":["domain","client_id"],"title":"Auth0Config"},"AuthConfig":{"properties":{"type":{"type":"string","title":"Type","examples":["builtin"]},"login_methods":{"items":{"type":"string"},"type":"array","title":"Login Methods","examples":[["email","google"]]},"auth0":{"anyOf":[{"$ref":"#/components/schemas/Auth0Config"},{"type":"null"}]},"authing":{"anyOf":[{"$ref":"#/components/schemas/AuthingConfig"},{"type":"null"}]},"logto":{"anyOf":[{"$ref":"#/components/schemas/LogtoConfig"},{"type":"null"}]}},"type":"object","required":["type","login_methods"],"title":"AuthConfig"},"AuthingConfig":{"properties":{"domain":{"type":"string","title":"Domain","examples":["myapp.authing.cn"]},"app_id":{"type":"string","title":"App Id","examples":["abc123"]}},"type":"object","required":["domain","app_id"],"title":"AuthingConfig"},"BatchComputeGrantRequest":{"properties":{"user_ids":{"items":{"type":"string"},"type":"array","maxItems":1000,"minItems":1,"title":"User Ids"},"amount":{"type":"number","exclusiveMinimum":0.0,"title":"Amount","examples":[50]},"grant_type":{"type":"string","title":"Grant Type","examples":["campaign"]},"campaign_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Campaign Id","examples":["spring_2026_promo"]},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","examples":["Spring promotion"]},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At","examples":["2026-06-01T00:00:00Z"]}},"type":"object","required":["user_ids","amount","grant_type"],"title":"BatchComputeGrantRequest"},"BatchGrantResponse":{"properties":{"total_requested":{"type":"integer","title":"Total Requested","examples":[3]},"succeeded":{"type":"integer","title":"Succeeded","examples":[2]},"failed":{"type":"integer","title":"Failed","examples":[1]},"results":{"items":{"$ref":"#/components/schemas/BatchGrantResultItem"},"type":"array","title":"Results"}},"type":"object","required":["total_requested","succeeded","failed","results"],"title":"BatchGrantResponse"},"BatchGrantResultItem":{"properties":{"user_id":{"type":"string","title":"User Id","examples":["userabc123"]},"grant_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grant Id","examples":["cgabc123"]},"status":{"type":"string","title":"Status","examples":["success"]},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["user_id","status"],"title":"BatchGrantResultItem"},"BatchStorageQuotaGrantRequest":{"properties":{"user_ids":{"items":{"type":"string"},"type":"array","maxItems":1000,"minItems":1,"title":"User Ids"},"size_gib":{"type":"integer","exclusiveMinimum":0.0,"title":"Size Gib","examples":[10]},"grant_type":{"type":"string","title":"Grant Type","examples":["campaign"]},"campaign_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Campaign Id","examples":["spring_2026_promo"]},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","examples":["Spring promotion"]},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At","examples":["2026-06-01T00:00:00Z"]}},"type":"object","required":["user_ids","size_gib","grant_type"],"title":"BatchStorageQuotaGrantRequest"},"BillingPeriod":{"properties":{"start":{"type":"string","title":"Start","examples":["2026-03-01T00:00:00+00:00"]},"end":{"type":"string","title":"End","examples":["2026-04-01T00:00:00+00:00"]}},"type":"object","required":["start","end"],"title":"BillingPeriod"},"ChangePasswordRequest":{"properties":{"old_password":{"type":"string","title":"Old Password","examples":["OldPass123!"]},"new_password":{"type":"string","title":"New Password","examples":["NewPass456!"]}},"type":"object","required":["old_password","new_password"],"title":"ChangePasswordRequest"},"ComputeGrantItem":{"properties":{"id":{"type":"string","title":"Id","examples":["cgabc123def456"]},"grant_type":{"type":"string","title":"Grant Type","examples":["admin_grant"]},"original_amount":{"type":"number","title":"Original Amount","examples":[100.0]},"remaining_amount":{"type":"number","title":"Remaining Amount","examples":[50.0]},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","examples":["Special support"]},"granted_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Granted By"},"campaign_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Campaign Id"},"status":{"type":"string","title":"Status","examples":["active"]},"granted_at":{"type":"string","title":"Granted At","examples":["2026-03-01T00:00:00+00:00"]},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At","examples":["2026-06-01T00:00:00+00:00"]}},"type":"object","required":["id","grant_type","original_amount","remaining_amount","status","granted_at"],"title":"ComputeGrantItem"},"ComputeSessionItem":{"properties":{"id":{"type":"string","title":"Id","examples":["csabc123def456"]},"sandbox_id":{"type":"string","title":"Sandbox Id","examples":["sbabc123def456"]},"template":{"type":"string","title":"Template","examples":["aio-sandbox-small"]},"vcpu_request":{"type":"number","title":"Vcpu Request","examples":[0.5]},"memory_gib_request":{"type":"number","title":"Memory Gib Request","examples":[1.0]},"started_at":{"type":"string","title":"Started At","examples":["2026-03-26T08:00:00+00:00"]},"ended_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ended At"},"duration_seconds":{"type":"number","title":"Duration Seconds","examples":[7200]},"compute_unit_hours":{"type":"number","title":"Compute Unit Hours","examples":[1.0]},"vcpu_hours":{"type":"number","title":"Vcpu Hours","examples":[1.0]},"memory_gib_hours":{"type":"number","title":"Memory Gib Hours","examples":[2.0]},"status":{"type":"string","title":"Status","examples":["active"]}},"type":"object","required":["id","sandbox_id","template","vcpu_request","memory_gib_request","started_at","duration_seconds","compute_unit_hours","vcpu_hours","memory_gib_hours","status"],"title":"ComputeSessionItem"},"ComputeSessionListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/ComputeSessionItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total","examples":[42]},"limit":{"type":"integer","title":"Limit","examples":[20]},"offset":{"type":"integer","title":"Offset","examples":[0]}},"type":"object","required":["items","total","limit","offset"],"title":"ComputeSessionListResponse"},"ComputeStats":{"properties":{"total_cu_hours_this_period":{"type":"number","title":"Total Cu Hours This Period"}},"type":"object","required":["total_cu_hours_this_period"],"title":"ComputeStats"},"ComputeUsage":{"properties":{"compute_unit_hours":{"type":"number","title":"Compute Unit Hours","examples":[12.5]},"monthly_limit":{"type":"number","title":"Monthly Limit","examples":[100.0]},"monthly_used":{"type":"number","title":"Monthly Used","examples":[45.5]},"monthly_remaining":{"type":"number","title":"Monthly Remaining","examples":[54.5]},"extra_remaining":{"type":"number","title":"Extra Remaining","examples":[50.0]},"total_remaining":{"type":"number","title":"Total Remaining","examples":[104.5]},"unit":{"type":"string","title":"Unit","default":"CU-hours","examples":["CU-hours"]}},"type":"object","required":["compute_unit_hours","monthly_limit","monthly_used","monthly_remaining","extra_remaining","total_remaining"],"title":"ComputeUsage"},"ConfigResponse":{"properties":{"auth":{"$ref":"#/components/schemas/AuthConfig"}},"type":"object","required":["auth"],"title":"ConfigResponse"},"CreateApiKeyRequest":{"properties":{"name":{"type":"string","title":"Name","default":"default","examples":["my-api-key"]},"expires_in":{"anyOf":[{"type":"integer","maximum":31536000.0,"minimum":1.0},{"type":"null"}],"title":"Expires In","description":"Key lifetime in seconds.","examples":[86400]},"scope":{"anyOf":[{"$ref":"#/components/schemas/ApiKeyScope"},{"type":"null"}]}},"type":"object","title":"CreateApiKeyRequest"},"CreateComputeGrantRequest":{"properties":{"amount":{"type":"number","exclusiveMinimum":0.0,"title":"Amount","examples":[100]},"grant_type":{"type":"string","title":"Grant Type","examples":["admin_grant"]},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","examples":["Special support"]},"campaign_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Campaign Id"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At","examples":["2026-06-01T00:00:00Z"]}},"type":"object","required":["amount","grant_type"],"title":"CreateComputeGrantRequest"},"CreateComputeGrantResponse":{"properties":{"id":{"type":"string","title":"Id","examples":["cgabc123def456"]},"user_id":{"type":"string","title":"User Id","examples":["userabc123def456"]},"original_amount":{"type":"number","title":"Original Amount","examples":[100.0]},"remaining_amount":{"type":"number","title":"Remaining Amount","examples":[100.0]},"grant_type":{"type":"string","title":"Grant Type","examples":["admin_grant"]},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"granted_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Granted By"},"campaign_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Campaign Id"},"granted_at":{"type":"string","title":"Granted At","examples":["2026-03-26T12:00:00+00:00"]},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["id","user_id","original_amount","remaining_amount","grant_type","granted_at"],"title":"CreateComputeGrantResponse"},"CreateFeedbackRequest":{"properties":{"body":{"type":"string","maxLength":10000,"title":"Body","description":"Feedback or support message from the user.","examples":["The usage chart does not load on Safari."]}},"type":"object","required":["body"],"title":"CreateFeedbackRequest"},"CreateFeedbackResponse":{"properties":{"id":{"type":"string","title":"Id","examples":["fbabc123def456"]}},"type":"object","required":["id"],"title":"CreateFeedbackResponse"},"CreateSandboxRequest":{"properties":{"template":{"type":"string","title":"Template","examples":["aio-sandbox-tiny"]},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Optional custom sandbox name. Sandbox name must be 1-55 characters of lowercase letters, numbers, or hyphens, and must start and end with a letter or number. Sandbox names only need to be unique for the current user.","examples":["my-sandbox"]},"labels":{"additionalProperties":{"type":"string"},"type":"object","title":"Labels","examples":[{"env":"dev"}]},"auto_stop_interval":{"type":"integer","title":"Auto Stop Interval","description":"Minutes of inactivity before the sandbox is automatically stopped. 0 means never auto-stop.","default":60,"examples":[60]},"auto_delete_interval":{"type":"integer","title":"Auto Delete Interval","description":"Minutes after stop before the sandbox is automatically deleted. -1 disables auto-delete.","default":-1,"examples":[-1]},"persist":{"type":"boolean","title":"Persist","default":false,"examples":[false]},"storage_size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Storage Size","description":"Persistent volume size as '<integer>Gi' only (e.g. 5Gi, 10Gi, 20Gi). Allowed values depend on the sandbox template's annotation.","examples":["5Gi"]}},"type":"object","required":["template"],"title":"CreateSandboxRequest"},"CreateStorageQuotaGrantRequest":{"properties":{"size_gib":{"type":"integer","exclusiveMinimum":0.0,"title":"Size Gib","examples":[20]},"grant_type":{"type":"string","title":"Grant Type","examples":["admin_grant"]},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","examples":["Storage addon"]},"campaign_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Campaign Id"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At","examples":["2026-06-01T00:00:00Z"]}},"type":"object","required":["size_gib","grant_type"],"title":"CreateStorageQuotaGrantRequest"},"CreateStorageQuotaGrantResponse":{"properties":{"id":{"type":"string","title":"Id","examples":["sqgabc123def456"]},"user_id":{"type":"string","title":"User Id","examples":["userabc123def456"]},"size_gib":{"type":"integer","title":"Size Gib","examples":[20]},"grant_type":{"type":"string","title":"Grant Type","examples":["admin_grant"]},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason"},"granted_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Granted By"},"campaign_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Campaign Id"},"granted_at":{"type":"string","title":"Granted At","examples":["2026-03-26T12:00:00+00:00"]},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"}},"type":"object","required":["id","user_id","size_gib","grant_type","granted_at"],"title":"CreateStorageQuotaGrantResponse"},"FeedbackItemResponse":{"properties":{"id":{"type":"string","title":"Id","examples":["fbabc123def456"]},"user_id":{"type":"string","title":"User Id","examples":["userabc123"]},"email":{"type":"string","title":"Email","examples":["alice@example.com"]},"body":{"type":"string","title":"Body","examples":["The usage chart does not load on Safari."]},"gmt_created":{"type":"string","format":"date-time","title":"Gmt Created","examples":["2026-03-31T00:00:00Z"]}},"type":"object","required":["id","user_id","email","body","gmt_created"],"title":"FeedbackItemResponse"},"FeedbackListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/FeedbackItemResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total","examples":[42]}},"type":"object","required":["items","total"],"title":"FeedbackListResponse"},"GracePeriodStatus":{"properties":{"active":{"type":"boolean","title":"Active","examples":[false]},"started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Started At","examples":[null]},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At","examples":[null]},"grace_period_seconds":{"type":"integer","title":"Grace Period Seconds","examples":[7200]}},"type":"object","required":["active","grace_period_seconds"],"title":"GracePeriodStatus"},"GrantsResponse":{"properties":{"compute_grants":{"items":{"$ref":"#/components/schemas/ComputeGrantItem"},"type":"array","title":"Compute Grants"},"storage_quota_grants":{"items":{"$ref":"#/components/schemas/StorageQuotaGrantItem"},"type":"array","title":"Storage Quota Grants"}},"type":"object","required":["compute_grants","storage_quota_grants"],"title":"GrantsResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HealthResponse":{"properties":{"status":{"type":"string","title":"Status","examples":["ok"]}},"type":"object","required":["status"],"title":"HealthResponse"},"LoginRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email","examples":["user@example.com"]},"password":{"type":"string","title":"Password","examples":["MySecretPass123!"]}},"type":"object","required":["email","password"],"title":"LoginRequest"},"LoginResponse":{"properties":{"detail":{"type":"string","title":"Detail","examples":["Login successful"]}},"type":"object","required":["detail"],"title":"LoginResponse"},"LogtoConfig":{"properties":{"domain":{"type":"string","title":"Domain","examples":["myapp.logto.io"]},"app_id":{"type":"string","title":"App Id","examples":["abc123"]}},"type":"object","required":["domain","app_id"],"title":"LogtoConfig"},"MessageResponse":{"properties":{"detail":{"type":"string","title":"Detail","examples":["Password changed"]}},"type":"object","required":["detail"],"title":"MessageResponse"},"PasswordResetConfirmRequest":{"properties":{"token":{"type":"string","title":"Token","examples":["eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."]},"new_password":{"type":"string","title":"New Password","examples":["NewPass456!"]}},"type":"object","required":["token","new_password"],"title":"PasswordResetConfirmRequest"},"PasswordResetRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email","examples":["user@example.com"]}},"type":"object","required":["email"],"title":"PasswordResetRequest"},"PlatformLimitsConfig":{"properties":{"max_registered_users":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Registered Users","examples":[200]},"max_total_sandboxes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Total Sandboxes","examples":[1000]},"max_total_storage_gib":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Total Storage Gib","examples":[1000]},"max_waitlist_applications":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Waitlist Applications","examples":[500]}},"type":"object","title":"PlatformLimitsConfig"},"PlatformLimitsResponse":{"properties":{"config":{"$ref":"#/components/schemas/PlatformLimitsConfig"},"usage":{"$ref":"#/components/schemas/PlatformLimitsUsage"},"refreshed_at":{"type":"string","format":"date-time","title":"Refreshed At","examples":["2026-04-10T00:00:00Z"]}},"type":"object","required":["config","usage","refreshed_at"],"title":"PlatformLimitsResponse"},"PlatformLimitsUsage":{"properties":{"registered_users":{"type":"integer","title":"Registered Users","examples":[42]},"total_sandboxes":{"type":"integer","title":"Total Sandboxes","examples":[120]},"total_storage_gib":{"type":"integer","title":"Total Storage Gib","examples":[250]},"waitlist_applications":{"type":"integer","title":"Waitlist Applications","examples":[75]}},"type":"object","required":["registered_users","total_sandboxes","total_storage_gib","waitlist_applications"],"title":"PlatformLimitsUsage"},"PlatformStatsResponse":{"properties":{"users":{"$ref":"#/components/schemas/UserStats"},"sandboxes":{"$ref":"#/components/schemas/SandboxStats"},"compute":{"$ref":"#/components/schemas/ComputeStats"},"storage":{"$ref":"#/components/schemas/StorageStats"}},"type":"object","required":["users","sandboxes","compute","storage"],"title":"PlatformStatsResponse"},"RegisterRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email","examples":["user@example.com"]},"password":{"type":"string","title":"Password","examples":["MySecretPass123!"]}},"type":"object","required":["email","password"],"title":"RegisterRequest"},"RegisterResponse":{"properties":{"id":{"type":"string","title":"Id","examples":["usr-abc123def456"]},"email":{"type":"string","format":"email","title":"Email","examples":["user@example.com"]},"role":{"$ref":"#/components/schemas/Role","examples":["admin"]},"is_active":{"type":"boolean","title":"Is Active","examples":[true]},"is_verified":{"type":"boolean","title":"Is Verified","examples":[true]},"verification_email_sent":{"type":"boolean","title":"Verification Email Sent","examples":[true]}},"type":"object","required":["id","email","role","is_active","is_verified","verification_email_sent"],"title":"RegisterResponse"},"ResolveEmailsRequest":{"properties":{"emails":{"items":{"type":"string","format":"email"},"type":"array","maxItems":1000,"minItems":1,"title":"Emails","examples":[["alice@example.com"]]}},"type":"object","required":["emails"],"title":"ResolveEmailsRequest"},"ResolveEmailsResponse":{"properties":{"results":{"items":{"$ref":"#/components/schemas/ResolveEmailsResultItem"},"type":"array","title":"Results"}},"type":"object","required":["results"],"title":"ResolveEmailsResponse"},"ResolveEmailsResultItem":{"properties":{"email":{"type":"string","title":"Email","examples":["alice@example.com"]},"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id","examples":["userabc123def456"]},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"type":"object","required":["email"],"title":"ResolveEmailsResultItem"},"ResourceSpec":{"properties":{"cpu":{"type":"string","title":"Cpu","examples":["250m"]},"memory":{"type":"string","title":"Memory","examples":["512Mi"]}},"type":"object","required":["cpu","memory"],"title":"ResourceSpec"},"Role":{"type":"string","enum":["admin","rw","ro"],"title":"Role"},"SandboxDetailResponse":{"properties":{"id":{"type":"string","title":"Id","examples":["sb-abc123def456"]},"name":{"type":"string","title":"Name","examples":["my-sandbox"]},"template":{"type":"string","title":"Template","examples":["aio-sandbox-tiny"]},"status":{"type":"string","title":"Status","examples":["creating"]},"labels":{"additionalProperties":true,"type":"object","title":"Labels","examples":[{"env":"dev"}]},"auto_stop_interval":{"type":"integer","title":"Auto Stop Interval","description":"Minutes of inactivity before the sandbox is automatically stopped. 0 means never auto-stop.","examples":[15]},"auto_delete_interval":{"type":"integer","title":"Auto Delete Interval","description":"Minutes after stop before auto-delete. -1 means disabled.","examples":[-1]},"persist":{"type":"boolean","title":"Persist","description":"Whether persistent storage is attached.","default":false,"examples":[false]},"storage_size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Storage Size","description":"Persistent volume size when persist=true.","examples":["5Gi"]},"pending_operation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pending Operation","examples":[null,"snapshotting"]},"storage":{"anyOf":[{"$ref":"#/components/schemas/SandboxStorageResponse"},{"type":"null"}]},"urls":{"$ref":"#/components/schemas/SandboxUrls"},"created_at":{"type":"string","format":"date-time","title":"Created At","examples":["2026-03-21T12:00:00+00:00"]},"image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image","examples":["ghcr.io/earayu/treadstone-sandbox:v0.2.1"]},"status_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Status Message","examples":[null]},"started_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Started At","examples":["2026-03-21T12:01:00+00:00"]},"stopped_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Stopped At","examples":[null]}},"type":"object","required":["id","name","template","status","auto_stop_interval","auto_delete_interval","urls","created_at"],"title":"SandboxDetailResponse"},"SandboxListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SandboxResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total","examples":[1]}},"type":"object","required":["items","total"],"title":"SandboxListResponse"},"SandboxResponse":{"properties":{"id":{"type":"string","title":"Id","examples":["sb-abc123def456"]},"name":{"type":"string","title":"Name","examples":["my-sandbox"]},"template":{"type":"string","title":"Template","examples":["aio-sandbox-tiny"]},"status":{"type":"string","title":"Status","examples":["creating"]},"labels":{"additionalProperties":true,"type":"object","title":"Labels","examples":[{"env":"dev"}]},"auto_stop_interval":{"type":"integer","title":"Auto Stop Interval","description":"Minutes of inactivity before the sandbox is automatically stopped. 0 means never auto-stop.","examples":[15]},"auto_delete_interval":{"type":"integer","title":"Auto Delete Interval","description":"Minutes after stop before auto-delete. -1 means disabled.","examples":[-1]},"persist":{"type":"boolean","title":"Persist","description":"Whether persistent storage is attached.","default":false,"examples":[false]},"storage_size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Storage Size","description":"Persistent volume size when persist=true.","examples":["5Gi"]},"pending_operation":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pending Operation","examples":[null,"snapshotting"]},"storage":{"anyOf":[{"$ref":"#/components/schemas/SandboxStorageResponse"},{"type":"null"}]},"urls":{"$ref":"#/components/schemas/SandboxUrls"},"created_at":{"type":"string","format":"date-time","title":"Created At","examples":["2026-03-21T12:00:00+00:00"]}},"type":"object","required":["id","name","template","status","auto_stop_interval","auto_delete_interval","urls","created_at"],"title":"SandboxResponse"},"SandboxStats":{"properties":{"total_created":{"type":"integer","title":"Total Created"},"currently_running":{"type":"integer","title":"Currently Running"},"status_breakdown":{"items":{"$ref":"#/components/schemas/SandboxStatusCount"},"type":"array","title":"Status Breakdown"}},"type":"object","required":["total_created","currently_running","status_breakdown"],"title":"SandboxStats"},"SandboxStatusCount":{"properties":{"status":{"type":"string","title":"Status"},"count":{"type":"integer","title":"Count"}},"type":"object","required":["status","count"],"title":"SandboxStatusCount"},"SandboxStorageResponse":{"properties":{"mode":{"type":"string","title":"Mode","examples":["live_disk"]},"size":{"type":"string","title":"Size","examples":["5Gi"]},"snapshot_created_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Snapshot Created At","examples":["2026-03-21T12:00:00+00:00"]},"zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zone","examples":["ap-southeast-1a"]}},"type":"object","required":["mode","size"],"title":"SandboxStorageResponse"},"SandboxTemplateListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/SandboxTemplateResponse"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"SandboxTemplateListResponse"},"SandboxTemplateResponse":{"properties":{"name":{"type":"string","title":"Name","examples":["aio-sandbox-tiny"]},"display_name":{"type":"string","title":"Display Name","examples":["AIO Sandbox Tiny"]},"description":{"type":"string","title":"Description","examples":["Lightweight sandbox for code execution and scripting"]},"image":{"type":"string","title":"Image","examples":["ghcr.io/earayu/treadstone-sandbox:v0.2.1"]},"resource_spec":{"$ref":"#/components/schemas/ResourceSpec"},"allowed_storage_sizes":{"items":{"type":"string"},"type":"array","title":"Allowed Storage Sizes","examples":[["5Gi","10Gi","20Gi"]]}},"type":"object","required":["name","display_name","description","image","resource_spec"],"title":"SandboxTemplateResponse"},"SandboxUrls":{"properties":{"proxy":{"type":"string","title":"Proxy","examples":["http://localhost/v1/sandboxes/sb-abc123def456/proxy"]},"mcp":{"type":"string","title":"Mcp","description":"MCP server endpoint. Connect MCP clients (Cursor, Claude Desktop, scripts) directly to this URL. Authenticates via API key header.","examples":["http://localhost/v1/sandboxes/sb-abc123def456/proxy/mcp"]},"web":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Web","description":"Recommended browser entry URL. When a sandbox web link is enabled, this is the shareable hand-off URL.","examples":["http://sandbox-sbabc123def456.sandbox.localhost/_treadstone/open?token=swlabc123"]}},"type":"object","required":["proxy","mcp"],"title":"SandboxUrls"},"SandboxWebLinkResponse":{"properties":{"web_url":{"type":"string","title":"Web Url","examples":["https://sandbox-sbabc123def456.treadstone-ai.dev/"]},"open_link":{"type":"string","title":"Open Link","examples":["https://sandbox-sbabc123def456.treadstone-ai.dev/_treadstone/open?token=swlabc123"]},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At","examples":["2026-03-31T12:00:00+00:00"]}},"type":"object","required":["web_url","open_link"],"title":"SandboxWebLinkResponse"},"SandboxWebLinkStatusResponse":{"properties":{"web_url":{"type":"string","title":"Web Url","examples":["https://sandbox-sbabc123def456.treadstone-ai.dev/"]},"enabled":{"type":"boolean","title":"Enabled","examples":[true]},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At","examples":["2026-03-31T12:00:00+00:00"]},"last_used_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Last Used At","examples":[null]}},"type":"object","required":["web_url","enabled"],"title":"SandboxWebLinkStatusResponse"},"SetPasswordRequest":{"properties":{"new_password":{"type":"string","title":"New Password","examples":["NewPass456!"]}},"type":"object","required":["new_password"],"title":"SetPasswordRequest"},"StorageLedgerItem":{"properties":{"id":{"type":"string","title":"Id","examples":["slabc123def456"]},"sandbox_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sandbox Id","examples":["sbabc123def456"]},"size_gib":{"type":"integer","title":"Size Gib","examples":[10]},"storage_state":{"type":"string","title":"Storage State","examples":["active"]},"allocated_at":{"type":"string","title":"Allocated At","examples":["2026-03-26T08:00:00+00:00"]},"released_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Released At"},"gib_hours_consumed":{"type":"number","title":"Gib Hours Consumed","examples":[120.0]},"last_metered_at":{"type":"string","title":"Last Metered At","examples":["2026-03-26T09:00:00+00:00"]}},"type":"object","required":["id","size_gib","storage_state","allocated_at","gib_hours_consumed","last_metered_at"],"title":"StorageLedgerItem"},"StorageLedgerListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/StorageLedgerItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total","examples":[5]},"limit":{"type":"integer","title":"Limit","examples":[20]},"offset":{"type":"integer","title":"Offset","examples":[0]}},"type":"object","required":["items","total","limit","offset"],"title":"StorageLedgerListResponse"},"StorageQuotaGrantItem":{"properties":{"id":{"type":"string","title":"Id","examples":["sqgabc123def456"]},"grant_type":{"type":"string","title":"Grant Type","examples":["admin_grant"]},"size_gib":{"type":"integer","title":"Size Gib","examples":[20]},"reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reason","examples":["Storage addon"]},"granted_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Granted By"},"campaign_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Campaign Id"},"status":{"type":"string","title":"Status","examples":["active"]},"granted_at":{"type":"string","title":"Granted At","examples":["2026-03-01T00:00:00+00:00"]},"expires_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At","examples":["2026-06-01T00:00:00+00:00"]}},"type":"object","required":["id","grant_type","size_gib","status","granted_at"],"title":"StorageQuotaGrantItem"},"StorageStats":{"properties":{"total_allocated_gib":{"type":"number","title":"Total Allocated Gib"},"total_consumed_gib_hours":{"type":"number","title":"Total Consumed Gib Hours"}},"type":"object","required":["total_allocated_gib","total_consumed_gib_hours"],"title":"StorageStats"},"StorageUsage":{"properties":{"gib_hours":{"type":"number","title":"Gib Hours","examples":[120.0]},"current_used_gib":{"type":"integer","title":"Current Used Gib","examples":[5]},"total_quota_gib":{"type":"integer","title":"Total Quota Gib","examples":[10]},"available_gib":{"type":"integer","title":"Available Gib","examples":[5]},"unit":{"type":"string","title":"Unit","default":"GiB","examples":["GiB"]}},"type":"object","required":["gib_hours","current_used_gib","total_quota_gib","available_gib"],"title":"StorageUsage"},"TierTemplateItem":{"properties":{"tier":{"type":"string","title":"Tier","examples":["pro"]},"compute_units_monthly":{"type":"number","title":"Compute Units Monthly","examples":[180.0]},"storage_capacity_gib":{"type":"integer","title":"Storage Capacity Gib","examples":[20]},"max_concurrent_running":{"type":"integer","title":"Max Concurrent Running","examples":[5]},"max_sandbox_duration_seconds":{"type":"integer","title":"Max Sandbox Duration Seconds","examples":[0]},"allowed_templates":{"items":{"type":"string"},"type":"array","title":"Allowed Templates","examples":[["aio-sandbox-tiny","aio-sandbox-small","aio-sandbox-medium"]]},"grace_period_seconds":{"type":"integer","title":"Grace Period Seconds","examples":[7200]},"is_active":{"type":"boolean","title":"Is Active","examples":[true]},"created_at":{"type":"string","title":"Created At","examples":["2026-01-01T00:00:00+00:00"]},"updated_at":{"type":"string","title":"Updated At","examples":["2026-01-01T00:00:00+00:00"]}},"type":"object","required":["tier","compute_units_monthly","storage_capacity_gib","max_concurrent_running","max_sandbox_duration_seconds","allowed_templates","grace_period_seconds","is_active","created_at","updated_at"],"title":"TierTemplateItem"},"TierTemplateListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TierTemplateItem"},"type":"array","title":"Items"}},"type":"object","required":["items"],"title":"TierTemplateListResponse"},"UpdateApiKeyRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","examples":["renamed-key"]},"is_enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Is Enabled","description":"Enable or disable the API key.","examples":[true]},"expires_in":{"anyOf":[{"type":"integer","maximum":31536000.0,"minimum":1.0},{"type":"null"}],"title":"Expires In","description":"Reset the key lifetime from now in seconds.","examples":[86400]},"clear_expiration":{"type":"boolean","title":"Clear Expiration","default":false,"examples":[false]},"scope":{"anyOf":[{"$ref":"#/components/schemas/ApiKeyScope"},{"type":"null"}]}},"type":"object","title":"UpdateApiKeyRequest"},"UpdatePlanRequest":{"properties":{"tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tier","examples":["ultra"]},"overrides":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Overrides","examples":[{"compute_units_monthly_limit":500}]}},"type":"object","title":"UpdatePlanRequest"},"UpdatePlatformLimitsRequest":{"properties":{"max_registered_users":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Registered Users","examples":[200]},"max_total_sandboxes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Total Sandboxes","examples":[1000]},"max_total_storage_gib":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Total Storage Gib","examples":[1000]},"max_waitlist_applications":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Waitlist Applications","examples":[500]}},"type":"object","title":"UpdatePlatformLimitsRequest"},"UpdateSandboxRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Optional custom sandbox name. Sandbox name must be 1-55 characters of lowercase letters, numbers, or hyphens, and must start and end with a letter or number. Sandbox names only need to be unique for the current user."},"labels":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Labels","description":"Replace sandbox labels entirely when set."},"auto_stop_interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Auto Stop Interval","description":"Minutes of inactivity before auto-stop. 0 means never."},"auto_delete_interval":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Auto Delete Interval","description":"Minutes after stop before auto-delete. -1 disables auto-delete."}},"type":"object","title":"UpdateSandboxRequest","description":"Partial update for sandbox metadata (control plane). Immutable fields: template, persist, storage."},"UpdateTierTemplateRequest":{"properties":{"compute_units_monthly":{"anyOf":[{"type":"number","minimum":0.0},{"type":"null"}],"title":"Compute Units Monthly","examples":[180]},"storage_capacity_gib":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Storage Capacity Gib","examples":[20]},"max_concurrent_running":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Max Concurrent Running","examples":[5]},"max_sandbox_duration_seconds":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Max Sandbox Duration Seconds","examples":[0]},"allowed_templates":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Templates","examples":[["aio-sandbox-tiny","aio-sandbox-small","aio-sandbox-medium","aio-sandbox-large"]]},"grace_period_seconds":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Grace Period Seconds","examples":[7200]},"apply_to_existing":{"type":"boolean","title":"Apply To Existing","default":false}},"type":"object","title":"UpdateTierTemplateRequest"},"UpdateTierTemplateResponse":{"properties":{"tier":{"type":"string","title":"Tier","examples":["pro"]},"compute_units_monthly":{"type":"number","title":"Compute Units Monthly","examples":[180.0]},"storage_capacity_gib":{"type":"integer","title":"Storage Capacity Gib","examples":[20]},"max_concurrent_running":{"type":"integer","title":"Max Concurrent Running","examples":[5]},"max_sandbox_duration_seconds":{"type":"integer","title":"Max Sandbox Duration Seconds","examples":[0]},"allowed_templates":{"items":{"type":"string"},"type":"array","title":"Allowed Templates","examples":[["aio-sandbox-tiny","aio-sandbox-small","aio-sandbox-medium"]]},"grace_period_seconds":{"type":"integer","title":"Grace Period Seconds","examples":[7200]},"is_active":{"type":"boolean","title":"Is Active","examples":[true]},"created_at":{"type":"string","title":"Created At","examples":["2026-01-01T00:00:00+00:00"]},"updated_at":{"type":"string","title":"Updated At","examples":["2026-01-01T00:00:00+00:00"]},"users_affected":{"type":"integer","title":"Users Affected","examples":[0]}},"type":"object","required":["tier","compute_units_monthly","storage_capacity_gib","max_concurrent_running","max_sandbox_duration_seconds","allowed_templates","grace_period_seconds","is_active","created_at","updated_at","users_affected"],"title":"UpdateTierTemplateResponse"},"UpdateUserStatusRequest":{"properties":{"is_active":{"type":"boolean","title":"Is Active","description":"Set to false to disable the user account.","examples":[false]}},"type":"object","required":["is_active"],"title":"UpdateUserStatusRequest"},"UpdateWaitlistApplicationRequest":{"properties":{"status":{"type":"string","title":"Status","description":"Set to 'approved' or 'rejected'. Only allowed while the application is still pending.","examples":["approved"]}},"type":"object","required":["status"],"title":"UpdateWaitlistApplicationRequest"},"UsageLimits":{"properties":{"max_concurrent_running":{"type":"integer","title":"Max Concurrent Running","examples":[3]},"current_running":{"type":"integer","title":"Current Running","examples":[1]},"max_sandbox_duration_seconds":{"type":"integer","title":"Max Sandbox Duration Seconds","description":"Maximum auto-stop interval in seconds. 0 means unlimited (never).","examples":[7200]},"allowed_templates":{"items":{"type":"string"},"type":"array","title":"Allowed Templates","examples":[["aio-sandbox-tiny","aio-sandbox-small","aio-sandbox-medium"]]}},"type":"object","required":["max_concurrent_running","current_running","max_sandbox_duration_seconds","allowed_templates"],"title":"UsageLimits"},"UsageSummaryResponse":{"properties":{"tier":{"type":"string","title":"Tier","examples":["pro"]},"billing_period":{"$ref":"#/components/schemas/BillingPeriod"},"compute":{"$ref":"#/components/schemas/ComputeUsage"},"storage":{"$ref":"#/components/schemas/StorageUsage"},"limits":{"$ref":"#/components/schemas/UsageLimits"},"grace_period":{"$ref":"#/components/schemas/GracePeriodStatus"}},"type":"object","required":["tier","billing_period","compute","storage","limits","grace_period"],"title":"UsageSummaryResponse"},"UserDetailResponse":{"properties":{"id":{"type":"string","title":"Id","examples":["usr-abc123def456"]},"email":{"type":"string","format":"email","title":"Email","examples":["user@example.com"]},"role":{"$ref":"#/components/schemas/Role","examples":["admin"]},"is_active":{"type":"boolean","title":"Is Active","examples":[true]},"username":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Username","examples":["alice"]},"is_verified":{"type":"boolean","title":"Is Verified","examples":[true]},"has_local_password":{"type":"boolean","title":"Has Local Password","examples":[true]}},"type":"object","required":["id","email","role","is_active","is_verified","has_local_password"],"title":"UserDetailResponse"},"UserListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/UserResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total","examples":[1]}},"type":"object","required":["items","total"],"title":"UserListResponse"},"UserLookupResponse":{"properties":{"user_id":{"type":"string","title":"User Id","examples":["userabc123def456"]},"email":{"type":"string","title":"Email","examples":["alice@example.com"]}},"type":"object","required":["user_id","email"],"title":"UserLookupResponse"},"UserPlanResponse":{"properties":{"id":{"type":"string","title":"Id","examples":["planabc123def456"]},"user_id":{"type":"string","title":"User Id","examples":["userabc123def456"]},"tier":{"type":"string","title":"Tier","examples":["pro"]},"compute_units_monthly_limit":{"type":"number","title":"Compute Units Monthly Limit","examples":[180.0]},"compute_units_monthly_used":{"type":"number","title":"Compute Units Monthly Used","examples":[45.5]},"storage_capacity_limit_gib":{"type":"integer","title":"Storage Capacity Limit Gib","examples":[20]},"max_concurrent_running":{"type":"integer","title":"Max Concurrent Running","examples":[5]},"max_sandbox_duration_seconds":{"type":"integer","title":"Max Sandbox Duration Seconds","examples":[0]},"allowed_templates":{"items":{"type":"string"},"type":"array","title":"Allowed Templates","examples":[["aio-sandbox-tiny","aio-sandbox-small","aio-sandbox-medium"]]},"grace_period_seconds":{"type":"integer","title":"Grace Period Seconds","examples":[7200]},"overrides":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Overrides"},"billing_period_start":{"type":"string","title":"Billing Period Start","examples":["2026-03-01T00:00:00+00:00"]},"billing_period_end":{"type":"string","title":"Billing Period End","examples":["2026-04-01T00:00:00+00:00"]},"grace_period_started_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Grace Period Started At"},"warning_80_notified_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Warning 80 Notified At"},"warning_100_notified_at":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Warning 100 Notified At"},"created_at":{"type":"string","title":"Created At","examples":["2026-01-15T08:00:00+00:00"]},"updated_at":{"type":"string","title":"Updated At","examples":["2026-03-01T00:00:00+00:00"]}},"type":"object","required":["id","user_id","tier","compute_units_monthly_limit","compute_units_monthly_used","storage_capacity_limit_gib","max_concurrent_running","max_sandbox_duration_seconds","allowed_templates","grace_period_seconds","billing_period_start","billing_period_end","created_at","updated_at"],"title":"UserPlanResponse"},"UserResponse":{"properties":{"id":{"type":"string","title":"Id","examples":["usr-abc123def456"]},"email":{"type":"string","format":"email","title":"Email","examples":["user@example.com"]},"role":{"$ref":"#/components/schemas/Role","examples":["admin"]},"is_active":{"type":"boolean","title":"Is Active","examples":[true]}},"type":"object","required":["id","email","role","is_active"],"title":"UserResponse"},"UserStats":{"properties":{"total":{"type":"integer","title":"Total"},"active":{"type":"integer","title":"Active"},"admin_count":{"type":"integer","title":"Admin Count"}},"type":"object","required":["total","active","admin_count"],"title":"UserStats"},"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"},"VerificationConfirmRequest":{"properties":{"token":{"type":"string","title":"Token","examples":["eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."]}},"type":"object","required":["token"],"title":"VerificationConfirmRequest"},"WaitlistApplicationListResponse":{"properties":{"items":{"items":{"$ref":"#/components/schemas/WaitlistApplicationResponse"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total","examples":[42]}},"type":"object","required":["items","total"],"title":"WaitlistApplicationListResponse"},"WaitlistApplicationRequest":{"properties":{"email":{"type":"string","format":"email","title":"Email","description":"Applicant email. Does not require an existing account; multiple applications allowed.","examples":["alice@example.com"]},"name":{"type":"string","maxLength":256,"minLength":1,"title":"Name","examples":["Alice Smith"]},"target_tier":{"type":"string","title":"Target Tier","description":"Target tier: 'pro' or 'ultra'","examples":["pro"]},"company":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Company","examples":["Acme Corp"]},"github_or_portfolio_url":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}],"title":"Github Or Portfolio Url","description":"Optional HTTPS URL (GitHub profile, repository, or portfolio).","examples":["https://github.com/octocat"]},"use_case":{"anyOf":[{"type":"string","maxLength":1000},{"type":"null"}],"title":"Use Case","examples":["Building AI coding agents"]}},"type":"object","required":["email","name","target_tier"],"title":"WaitlistApplicationRequest"},"WaitlistApplicationResponse":{"properties":{"id":{"type":"string","title":"Id","examples":["wlabc123def456"]},"email":{"type":"string","title":"Email","examples":["alice@example.com"]},"name":{"type":"string","title":"Name","examples":["Alice Smith"]},"target_tier":{"type":"string","title":"Target Tier","examples":["pro"]},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Company","examples":["Acme Corp"]},"github_or_portfolio_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Github Or Portfolio Url","examples":["https://github.com/octocat"]},"use_case":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Use Case"},"status":{"type":"string","title":"Status","examples":["pending"]},"processed_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Processed At"},"gmt_created":{"type":"string","format":"date-time","title":"Gmt Created","examples":["2026-03-30T00:00:00Z"]}},"type":"object","required":["id","email","name","target_tier","status","gmt_created"],"title":"WaitlistApplicationResponse"},"ActionResponse":{"properties":{"status":{"type":"string","const":"success","title":"Status"},"action_performed":{"type":"string","title":"Action Performed"}},"type":"object","required":["status","action_performed"],"title":"ActionResponse"},"ActiveSessionsResult":{"properties":{"sessions":{"additionalProperties":{"$ref":"#/components/schemas/SessionInfo"},"type":"object","title":"Sessions","description":"Map of session ID to session info"}},"type":"object","required":["sessions"],"title":"ActiveSessionsResult","description":"Active sessions result"},"ActiveShellSessionsResult":{"properties":{"sessions":{"additionalProperties":{"$ref":"#/components/schemas/ShellSessionInfo"},"type":"object","title":"Sessions","description":"Map of session ID to session info"}},"type":"object","required":["sessions"],"title":"ActiveShellSessionsResult","description":"Active shell sessions result"},"Annotations":{"properties":{"audience":{"anyOf":[{"items":{"type":"string","enum":["user","assistant"]},"type":"array"},{"type":"null"}],"title":"Audience"},"priority":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"null"}],"title":"Priority"}},"additionalProperties":true,"type":"object","title":"Annotations"},"AudioContent":{"properties":{"type":{"type":"string","const":"audio","title":"Type"},"data":{"type":"string","title":"Data"},"mimeType":{"type":"string","title":"Mimetype"},"annotations":{"anyOf":[{"$ref":"#/components/schemas/Annotations"},{"type":"null"}]},"_meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta"}},"additionalProperties":true,"type":"object","required":["type","data","mimeType"],"title":"AudioContent","description":"Audio content for a message."},"AvailableTool":{"properties":{"name":{"type":"string","title":"Name","description":"Tool’s command / binary name"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Tool’s functionality description","default":""}},"type":"object","required":["name"],"title":"AvailableTool","description":"Describe an available command-line tool."},"BashCommandStatus":{"type":"string","enum":["running","completed","no_change_timeout","hard_timeout","terminated"],"title":"BashCommandStatus","description":"Shell command execution status (compatible with OpenHands)"},"BlobResourceContents":{"properties":{"uri":{"type":"string","minLength":1,"format":"uri","title":"Uri"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"_meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta"},"blob":{"type":"string","title":"Blob"}},"additionalProperties":true,"type":"object","required":["uri","blob"],"title":"BlobResourceContents","description":"Binary contents of a resource."},"Body_register_skills":{"properties":{"file":{"anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"File"},"path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Path"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name"}},"type":"object","title":"Body_register_skills"},"Body_upload_file":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"path":{"type":"string","title":"Path"}},"type":"object","required":["file"],"title":"Body_upload_file"},"BrowserConfigRequest":{"properties":{"resolution":{"anyOf":[{"$ref":"#/components/schemas/Resolution"},{"type":"null"}],"description":"The desired screen resolution, allowed values are: 1920x1080, 640x480, 1360x768, 1280x720, 800x600, 1024x768, 1280x800, 1920x1200, 1280x960, 1400x1050, 1680x1050, 1280x1024, 1600x1200."}},"type":"object","title":"BrowserConfigRequest","description":"Browser configuration request"},"BrowserInfoResult":{"properties":{"user_agent":{"type":"string","title":"User Agent","description":"User agent"},"cdp_url":{"type":"string","title":"Cdp Url","description":"Browser CDP URL"},"vnc_url":{"type":"string","title":"Vnc Url","description":"VNC URL"},"viewport":{"$ref":"#/components/schemas/BrowserViewport","description":"Viewport size"}},"type":"object","required":["user_agent","cdp_url","vnc_url","viewport"],"title":"BrowserInfoResult","description":"Browser Info result"},"BrowserViewport":{"properties":{"width":{"type":"integer","title":"Width","description":"Viewport width"},"height":{"type":"integer","title":"Height","description":"Viewport height"}},"type":"object","required":["width","height"],"title":"BrowserViewport"},"ClickAction":{"properties":{"action_type":{"type":"string","const":"CLICK","title":"Action Type","default":"CLICK"},"x":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"X"},"y":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Y"},"button":{"type":"string","enum":["left","right","middle"],"title":"Button","default":"left"},"num_clicks":{"type":"integer","enum":[1,2,3],"title":"Num Clicks","default":1}},"type":"object","title":"ClickAction"},"CodeExecuteRequest":{"properties":{"language":{"$ref":"#/components/schemas/Language","description":"Target runtime language"},"code":{"type":"string","title":"Code","description":"Source code to execute"},"timeout":{"anyOf":[{"type":"integer","maximum":300.0,"minimum":1.0},{"type":"null"}],"title":"Timeout","description":"Execution timeout in seconds"}},"type":"object","required":["language","code"],"title":"CodeExecuteRequest","description":"Unified code execution request model"},"CodeExecuteResponse":{"properties":{"language":{"$ref":"#/components/schemas/Language","description":"Runtime language that executed the code"},"status":{"type":"string","title":"Status","description":"Execution status indicator"},"outputs":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Outputs","description":"Structured execution outputs"},"code":{"type":"string","title":"Code","description":"Echo of executed code"},"stdout":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stdout","description":"Captured standard output stream"},"stderr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stderr","description":"Captured standard error stream"},"exit_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exit Code","description":"Process exit code when applicable"}},"type":"object","required":["language","status","code"],"title":"CodeExecuteResponse","description":"Unified code execution response model"},"CodeInfoResponse":{"properties":{"languages":{"items":{"$ref":"#/components/schemas/CodeLanguageInfo"},"type":"array","title":"Languages","description":"List of supported languages and metadata"}},"type":"object","required":["languages"],"title":"CodeInfoResponse","description":"Unified code information response"},"CodeLanguageInfo":{"properties":{"language":{"$ref":"#/components/schemas/Language","description":"Supported language identifier"},"description":{"type":"string","title":"Description","description":"Human readable runtime description"},"runtime_version":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Runtime Version","description":"Primary runtime version identifier"},"default_timeout":{"type":"integer","maximum":300.0,"minimum":1.0,"title":"Default Timeout","description":"Default timeout in seconds","default":30},"max_timeout":{"type":"integer","maximum":300.0,"minimum":1.0,"title":"Max Timeout","description":"Maximum allowed timeout in seconds","default":300},"details":{"additionalProperties":true,"type":"object","title":"Details","description":"Additional runtime specific metadata"}},"type":"object","required":["language","description"],"title":"CodeLanguageInfo","description":"Metadata about a supported code runtime"},"ConsoleRecord":{"properties":{"ps1":{"type":"string","title":"Ps1","description":"Command prompt"},"command":{"type":"string","title":"Command","description":"Executed command"},"output":{"type":"string","title":"Output","description":"Command output","default":""}},"type":"object","required":["ps1","command"],"title":"ConsoleRecord","description":"Shell command console record model"},"DependencyCommandResult":{"properties":{"command":{"items":{"type":"string"},"type":"array","title":"Command","description":"Executed dependency command"},"success":{"type":"boolean","title":"Success","description":"Whether the command succeeded"},"stdout":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stdout","description":"Standard output from command"},"stderr":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stderr","description":"Standard error from command"}},"type":"object","required":["command","success"],"title":"DependencyCommandResult"},"DoubleClickAction":{"properties":{"action_type":{"type":"string","const":"DOUBLE_CLICK","title":"Action Type","default":"DOUBLE_CLICK"},"x":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"X"},"y":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Y"}},"type":"object","title":"DoubleClickAction"},"DragRelAction":{"properties":{"action_type":{"type":"string","const":"DRAG_REL","title":"Action Type","default":"DRAG_REL"},"x_offset":{"type":"number","title":"X Offset","description":"Relative current position x-axis drag movement"},"y_offset":{"type":"number","title":"Y Offset","description":"Relative current position y-axis drag movement"}},"type":"object","required":["x_offset","y_offset"],"title":"DragRelAction"},"DragToAction":{"properties":{"action_type":{"type":"string","const":"DRAG_TO","title":"Action Type","default":"DRAG_TO"},"x":{"type":"number","title":"X","description":"Target x-coordinate for drag"},"y":{"type":"number","title":"Y","description":"Target y-coordinate for drag"}},"type":"object","required":["x","y"],"title":"DragToAction"},"EmbeddedResource":{"properties":{"type":{"type":"string","const":"resource","title":"Type"},"resource":{"anyOf":[{"$ref":"#/components/schemas/TextResourceContents"},{"$ref":"#/components/schemas/BlobResourceContents"}],"title":"Resource"},"annotations":{"anyOf":[{"$ref":"#/components/schemas/Annotations"},{"type":"null"}]},"_meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta"}},"additionalProperties":true,"type":"object","required":["type","resource"],"title":"EmbeddedResource","description":"The contents of a resource, embedded into a prompt or tool call result.\n\nIt is up to the client how best to render embedded resources for the benefit\nof the LLM and/or the user."},"FileContentEncoding":{"type":"string","enum":["utf-8","base64","raw"],"title":"FileContentEncoding","description":"File content encoding type"},"FileFindRequest":{"properties":{"path":{"type":"string","title":"Path","description":"Directory path to search"},"glob":{"type":"string","title":"Glob","description":"Filename pattern (glob syntax)"}},"type":"object","required":["path","glob"],"title":"FileFindRequest","description":"File find request"},"FileFindResult":{"properties":{"path":{"type":"string","title":"Path","description":"Path of the search directory"},"files":{"items":{"type":"string"},"type":"array","title":"Files","description":"List of found files","default":[]}},"type":"object","required":["path"],"title":"FileFindResult","description":"File find result"},"FileInfo":{"properties":{"name":{"type":"string","title":"Name","description":"File name"},"path":{"type":"string","title":"Path","description":"Full file path"},"is_directory":{"type":"boolean","title":"Is Directory","description":"Whether it's a directory"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size","description":"File size in bytes"},"modified_time":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modified Time","description":"Last modified time (ISO format)"},"permissions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Permissions","description":"File permissions"},"extension":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Extension","description":"File extension"}},"type":"object","required":["name","path","is_directory"],"title":"FileInfo","description":"File information"},"FileListRequest":{"properties":{"path":{"type":"string","title":"Path","description":"Directory path to list"},"recursive":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Recursive","description":"Whether to list recursively","default":false},"show_hidden":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show Hidden","description":"Whether to show hidden files","default":true},"file_types":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"File Types","description":"Filter by file extensions (e.g., ['.py', '.txt'])"},"max_depth":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Depth","description":"Maximum depth for recursive listing"},"include_size":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Size","description":"Whether to include file size information","default":true},"include_permissions":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Include Permissions","description":"Whether to include file permissions","default":false},"sort_by":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sort By","description":"Sort by: name, size, modified, type","default":"name"},"sort_desc":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Sort Desc","description":"Sort in descending order","default":false}},"type":"object","required":["path"],"title":"FileListRequest","description":"File list request"},"FileListResult":{"properties":{"path":{"type":"string","title":"Path","description":"Listed directory path"},"files":{"items":{"$ref":"#/components/schemas/FileInfo"},"type":"array","title":"Files","description":"List of files and directories","default":[]},"total_count":{"type":"integer","title":"Total Count","description":"Total number of items","default":0},"directory_count":{"type":"integer","title":"Directory Count","description":"Number of directories","default":0},"file_count":{"type":"integer","title":"File Count","description":"Number of files","default":0}},"type":"object","required":["path"],"title":"FileListResult","description":"File list result"},"FileReadRequest":{"properties":{"file":{"type":"string","title":"File","description":"Absolute file path"},"start_line":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Start Line","description":"Start line (0-based)"},"end_line":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"End Line","description":"End line (not inclusive)"},"sudo":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Sudo","description":"Whether to use sudo privileges","default":false}},"type":"object","required":["file"],"title":"FileReadRequest","description":"File read request"},"FileReadResult":{"properties":{"content":{"type":"string","title":"Content","description":"File content"},"file":{"type":"string","title":"File","description":"Path of the read file"}},"type":"object","required":["content","file"],"title":"FileReadResult","description":"File read result"},"FileReplaceRequest":{"properties":{"file":{"type":"string","title":"File","description":"Absolute file path"},"old_str":{"type":"string","title":"Old Str","description":"Original string to replace"},"new_str":{"type":"string","title":"New Str","description":"New string to replace with"},"sudo":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Sudo","description":"Whether to use sudo privileges","default":false}},"type":"object","required":["file","old_str","new_str"],"title":"FileReplaceRequest","description":"File content replacement request"},"FileReplaceResult":{"properties":{"file":{"type":"string","title":"File","description":"Path of the operated file"},"replaced_count":{"type":"integer","title":"Replaced Count","description":"Number of replacements","default":0}},"type":"object","required":["file"],"title":"FileReplaceResult","description":"File content replacement result"},"FileSearchRequest":{"properties":{"file":{"type":"string","title":"File","description":"Absolute file path"},"regex":{"type":"string","title":"Regex","description":"Regular expression pattern"},"sudo":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Sudo","description":"Whether to use sudo privileges","default":false}},"type":"object","required":["file","regex"],"title":"FileSearchRequest","description":"File content search request"},"FileSearchResult":{"properties":{"file":{"type":"string","title":"File","description":"Path of the searched file"},"matches":{"items":{"type":"string"},"type":"array","title":"Matches","description":"List of matched content","default":[]},"line_numbers":{"items":{"type":"integer"},"type":"array","title":"Line Numbers","description":"List of matched line numbers","default":[]}},"type":"object","required":["file"],"title":"FileSearchResult","description":"File content search result"},"FileUploadResult":{"properties":{"file_path":{"type":"string","title":"File Path","description":"Path of the uploaded file"},"file_size":{"type":"integer","title":"File Size","description":"Size of the uploaded file in bytes"},"success":{"type":"boolean","title":"Success","description":"Whether upload was successful"}},"type":"object","required":["file_path","file_size","success"],"title":"FileUploadResult","description":"File upload result"},"FileWriteRequest":{"properties":{"file":{"type":"string","title":"File","description":"Absolute file path"},"content":{"type":"string","title":"Content","description":"Content to write (text or base64 encoded for binary)"},"encoding":{"anyOf":[{"$ref":"#/components/schemas/FileContentEncoding"},{"type":"null"}],"description":"Content encoding: utf-8 for text, base64 for binary data","default":"utf-8"},"append":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Append","description":"Whether to use append mode","default":false},"leading_newline":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Leading Newline","description":"Whether to add leading newline (only for text mode)","default":false},"trailing_newline":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Trailing Newline","description":"Whether to add trailing newline (only for text mode)","default":false},"sudo":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Sudo","description":"Whether to use sudo privileges","default":false}},"type":"object","required":["file","content"],"title":"FileWriteRequest","description":"File write request - supports both text and binary content"},"FileWriteResult":{"properties":{"file":{"type":"string","title":"File","description":"Path of the written file"},"bytes_written":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Bytes Written","description":"Number of bytes written"}},"type":"object","required":["file"],"title":"FileWriteResult","description":"File write result"},"SandboxHTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/SandboxValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HotkeyAction":{"properties":{"action_type":{"type":"string","const":"HOTKEY","title":"Action Type","default":"HOTKEY"},"keys":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Keys"}},"type":"object","required":["keys"],"title":"HotkeyAction"},"Icon":{"properties":{"src":{"type":"string","title":"Src"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"sizes":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Sizes"}},"additionalProperties":true,"type":"object","required":["src"],"title":"Icon","description":"An icon for display in user interfaces."},"ImageContent":{"properties":{"type":{"type":"string","const":"image","title":"Type"},"data":{"type":"string","title":"Data"},"mimeType":{"type":"string","title":"Mimetype"},"annotations":{"anyOf":[{"$ref":"#/components/schemas/Annotations"},{"type":"null"}]},"_meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta"}},"additionalProperties":true,"type":"object","required":["type","data","mimeType"],"title":"ImageContent","description":"Image content for a message."},"JupyterCreateSessionRequest":{"properties":{"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Unique identifier for the session, auto-generated if not provided"},"kernel_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kernel Name","description":"Kernel name to use (e.g., 'python3', 'python3.11', 'python3.12'). Defaults to 'python3'","default":"python3"}},"type":"object","title":"JupyterCreateSessionRequest","description":"Jupyter session creation request model"},"JupyterCreateSessionResponse":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier of the created session"},"kernel_name":{"type":"string","title":"Kernel Name","description":"Name of the kernel associated with the session"},"message":{"type":"string","title":"Message","description":"Status message about session creation"}},"type":"object","required":["session_id","kernel_name","message"],"title":"JupyterCreateSessionResponse","description":"Jupyter session creation response model"},"JupyterExecuteRequest":{"properties":{"code":{"type":"string","title":"Code","description":"Python code to execute"},"timeout":{"anyOf":[{"type":"integer","maximum":300.0,"minimum":1.0},{"type":"null"}],"title":"Timeout","description":"Execution timeout in seconds","default":30},"kernel_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kernel Name","description":"Kernel name to use (e.g., 'python3', 'python3.11', 'python3.12'). Defaults to 'python3'","default":"python3"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id","description":"Session ID to maintain kernel state across requests"}},"type":"object","required":["code"],"title":"JupyterExecuteRequest","description":"Jupyter code execution request model"},"JupyterExecuteResponse":{"properties":{"kernel_name":{"type":"string","title":"Kernel Name","description":"Name of the kernel used for execution"},"session_id":{"type":"string","title":"Session Id","description":"Session ID for this kernel instance"},"status":{"type":"string","title":"Status","description":"Execution status: ok, error, or timeout"},"execution_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Execution Count","description":"Execution count from the kernel"},"outputs":{"items":{"$ref":"#/components/schemas/JupyterOutput"},"type":"array","title":"Outputs","description":"List of execution outputs"},"code":{"type":"string","title":"Code","description":"The executed code"},"msg_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Msg Id","description":"Message ID from Jupyter kernel"}},"type":"object","required":["kernel_name","session_id","status","outputs","code"],"title":"JupyterExecuteResponse","description":"Jupyter code execution response model"},"JupyterInfoResponse":{"properties":{"default_kernel":{"type":"string","title":"Default Kernel","description":"Default kernel name"},"available_kernels":{"items":{"type":"string"},"type":"array","title":"Available Kernels","description":"List of available kernel names"},"active_sessions":{"type":"integer","title":"Active Sessions","description":"Number of active sessions"},"session_timeout_seconds":{"type":"integer","title":"Session Timeout Seconds","description":"Session timeout in seconds"},"max_sessions":{"type":"integer","title":"Max Sessions","description":"Maximum number of concurrent sessions"},"description":{"type":"string","title":"Description","description":"Service description"},"kernel_detection":{"type":"string","title":"Kernel Detection","description":"Kernel detection strategy"}},"type":"object","required":["default_kernel","available_kernels","active_sessions","session_timeout_seconds","max_sessions","description","kernel_detection"],"title":"JupyterInfoResponse","description":"Jupyter service information response model"},"JupyterOutput":{"properties":{"output_type":{"type":"string","title":"Output Type","description":"Type of output: stream, execute_result, display_data, or error"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Stream name (stdout/stderr) for stream outputs"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","description":"Text content for stream outputs"},"data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Data","description":"Output data for execute_result/display_data"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Output metadata"},"execution_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Execution Count","description":"Execution count for execute_result"},"ename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ename","description":"Error name for error outputs"},"evalue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evalue","description":"Error value for error outputs"},"traceback":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Traceback","description":"Error traceback for error outputs"}},"type":"object","required":["output_type"],"title":"JupyterOutput","description":"Jupyter execution output model"},"KeyDownAction":{"properties":{"action_type":{"type":"string","const":"KEY_DOWN","title":"Action Type","default":"KEY_DOWN"},"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"KeyDownAction"},"KeyUpAction":{"properties":{"action_type":{"type":"string","const":"KEY_UP","title":"Action Type","default":"KEY_UP"},"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"KeyUpAction"},"Language":{"type":"string","enum":["python","javascript"],"title":"Language","description":"Supported programming languages for code execution"},"MouseDownAction":{"properties":{"action_type":{"type":"string","const":"MOUSE_DOWN","title":"Action Type","default":"MOUSE_DOWN"},"button":{"type":"string","enum":["left","right","middle"],"title":"Button","default":"left"}},"type":"object","title":"MouseDownAction"},"MouseUpAction":{"properties":{"action_type":{"type":"string","const":"MOUSE_UP","title":"Action Type","default":"MOUSE_UP"},"button":{"type":"string","enum":["left","right","middle"],"title":"Button","default":"left"}},"type":"object","title":"MouseUpAction"},"MoveRelAction":{"properties":{"action_type":{"type":"string","const":"MOVE_REL","title":"Action Type","default":"MOVE_REL"},"x_offset":{"type":"number","title":"X Offset","description":"Relative current position x-axis movement"},"y_offset":{"type":"number","title":"Y Offset","description":"Relative current position y-axis movement"}},"type":"object","required":["x_offset","y_offset"],"title":"MoveRelAction"},"MoveToAction":{"properties":{"action_type":{"type":"string","const":"MOVE_TO","title":"Action Type","default":"MOVE_TO"},"x":{"type":"number","title":"X","description":"Target x-coordinate"},"y":{"type":"number","title":"Y","description":"Target y-coordinate"}},"type":"object","required":["x","y"],"title":"MoveToAction"},"NodeJSExecuteRequest":{"properties":{"code":{"type":"string","title":"Code","description":"JavaScript code to execute"},"timeout":{"anyOf":[{"type":"integer","maximum":300.0,"minimum":1.0},{"type":"null"}],"title":"Timeout","description":"Execution timeout in seconds","default":30},"stdin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stdin","description":"Standard input for the process"},"files":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Files","description":"Additional files to create in execution directory"}},"type":"object","required":["code"],"title":"NodeJSExecuteRequest"},"NodeJSExecuteResponse":{"properties":{"language":{"type":"string","const":"javascript","title":"Language","description":"Language that was executed (always 'javascript')"},"status":{"type":"string","title":"Status","description":"Execution status: ok, error, or timeout"},"execution_count":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Execution Count","description":"Execution count"},"outputs":{"items":{"$ref":"#/components/schemas/NodeJSOutput"},"type":"array","title":"Outputs","description":"List of execution outputs","default":[]},"code":{"type":"string","title":"Code","description":"Code that was executed"},"stdout":{"type":"string","title":"Stdout","description":"Standard output","default":""},"stderr":{"type":"string","title":"Stderr","description":"Standard error","default":""},"exit_code":{"type":"integer","title":"Exit Code","description":"Process exit code"}},"type":"object","required":["language","status","code","exit_code"],"title":"NodeJSExecuteResponse"},"NodeJSOutput":{"properties":{"output_type":{"type":"string","title":"Output Type","description":"Type of output: stream, error, or execute_result"},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Stream name (stdout/stderr) for stream outputs"},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","description":"Text content for stream outputs"},"ename":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ename","description":"Error name for error outputs"},"evalue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Evalue","description":"Error value for error outputs"},"traceback":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Traceback","description":"Error traceback for error outputs"},"data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Data","description":"Data for execute_result outputs"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata","description":"Metadata for outputs"}},"type":"object","required":["output_type"],"title":"NodeJSOutput"},"NodeJSRuntimeInfo":{"properties":{"node_version":{"type":"string","title":"Node Version","description":"Node.js version"},"npm_version":{"type":"string","title":"Npm Version","description":"npm version"},"supported_languages":{"items":{"type":"string"},"type":"array","title":"Supported Languages","description":"List of supported languages"},"description":{"type":"string","title":"Description","description":"Service description"},"runtime_directory":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Runtime Directory","description":"Runtime directory path"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if runtime info retrieval failed"}},"type":"object","required":["node_version","npm_version","supported_languages","description"],"title":"NodeJSRuntimeInfo","description":"NodeJS runtime information model"},"PressAction":{"properties":{"action_type":{"type":"string","const":"PRESS","title":"Action Type","default":"PRESS"},"key":{"type":"string","title":"Key"}},"type":"object","required":["key"],"title":"PressAction"},"Resolution":{"properties":{"width":{"type":"integer","exclusiveMinimum":0.0,"title":"Width","description":"Screen width in pixels."},"height":{"type":"integer","exclusiveMinimum":0.0,"title":"Height","description":"Screen height in pixels."}},"type":"object","required":["width","height"],"title":"Resolution"},"ResourceLink":{"properties":{"name":{"type":"string","title":"Name"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"uri":{"type":"string","minLength":1,"format":"uri","title":"Uri"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"size":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Size"},"icons":{"anyOf":[{"items":{"$ref":"#/components/schemas/Icon"},"type":"array"},{"type":"null"}],"title":"Icons"},"annotations":{"anyOf":[{"$ref":"#/components/schemas/Annotations"},{"type":"null"}]},"_meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta"},"type":{"type":"string","const":"resource_link","title":"Type"}},"additionalProperties":true,"type":"object","required":["name","uri","type"],"title":"ResourceLink","description":"A resource that the server is capable of reading, included in a prompt or tool call result.\n\nNote: resource links returned by tools are not guaranteed to appear in the results of `resources/list` requests."},"SandboxApiResponse":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{},{"type":"null"}],"title":"Data","description":"Data returned from the operation"}},"type":"object","title":"Response","description":"Generic response model for API interface return results"},"Response_ActiveSessionsResult_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/ActiveSessionsResult"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[ActiveSessionsResult]"},"Response_ActiveShellSessionsResult_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/ActiveShellSessionsResult"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[ActiveShellSessionsResult]"},"Response_BrowserInfoResult_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/BrowserInfoResult"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[BrowserInfoResult]"},"Response_CallToolResultModel_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"properties":{"_meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta"},"content":{"items":{"anyOf":[{"$ref":"#/components/schemas/TextContent"},{"$ref":"#/components/schemas/ImageContent"},{"$ref":"#/components/schemas/AudioContent"},{"$ref":"#/components/schemas/ResourceLink"},{"$ref":"#/components/schemas/EmbeddedResource"}]},"type":"array","title":"Content"},"structuredContent":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Structuredcontent"},"isError":{"type":"boolean","title":"Iserror","default":false}},"additionalProperties":true,"type":"object","required":["content"],"title":"CallToolResult","description":"The server's response to a tool call."},{"type":"null"}],"title":"Data","description":"Data returned from the operation"}},"type":"object","title":"Response[CallToolResultModel]"},"Response_CodeExecuteResponse_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/CodeExecuteResponse"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[CodeExecuteResponse]"},"Response_CodeInfoResponse_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/CodeInfoResponse"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[CodeInfoResponse]"},"Response_FileFindResult_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/FileFindResult"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[FileFindResult]"},"Response_FileListResult_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/FileListResult"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[FileListResult]"},"Response_FileReadResult_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/FileReadResult"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[FileReadResult]"},"Response_FileReplaceResult_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/FileReplaceResult"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[FileReplaceResult]"},"Response_FileSearchResult_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/FileSearchResult"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[FileSearchResult]"},"Response_FileUploadResult_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/FileUploadResult"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[FileUploadResult]"},"Response_FileWriteResult_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/FileWriteResult"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[FileWriteResult]"},"Response_JupyterCreateSessionResponse_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/JupyterCreateSessionResponse"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[JupyterCreateSessionResponse]"},"Response_JupyterExecuteResponse_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/JupyterExecuteResponse"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[JupyterExecuteResponse]"},"Response_JupyterInfoResponse_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/JupyterInfoResponse"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[JupyterInfoResponse]"},"Response_ListToolsResultModel_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"properties":{"_meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nextcursor"},"tools":{"items":{"$ref":"#/components/schemas/Tool"},"type":"array","title":"Tools"}},"additionalProperties":true,"type":"object","required":["tools"],"title":"ListToolsResult","description":"The server's response to a tools/list request from the client."},{"type":"null"}],"title":"Data","description":"Data returned from the operation"}},"type":"object","title":"Response[ListToolsResultModel]"},"Response_List_str__":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Data","description":"Data returned from the operation"}},"type":"object","title":"Response[List[str]]"},"Response_NodeJSExecuteResponse_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/NodeJSExecuteResponse"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[NodeJSExecuteResponse]"},"Response_NodeJSRuntimeInfo_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/NodeJSRuntimeInfo"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[NodeJSRuntimeInfo]"},"Response_ShellCommandResult_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/ShellCommandResult"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[ShellCommandResult]"},"Response_ShellCreateSessionResponse_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/ShellCreateSessionResponse"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[ShellCreateSessionResponse]"},"Response_ShellKillResult_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/ShellKillResult"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[ShellKillResult]"},"Response_ShellViewResult_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/ShellViewResult"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[ShellViewResult]"},"Response_ShellWaitResult_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/ShellWaitResult"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[ShellWaitResult]"},"Response_ShellWriteResult_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/ShellWriteResult"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[ShellWriteResult]"},"Response_SkillContentResult_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/SkillContentResult"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[SkillContentResult]"},"Response_SkillMetadataCollection_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/SkillMetadataCollection"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[SkillMetadataCollection]"},"Response_SkillMetadata_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/SkillMetadata"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[SkillMetadata]"},"Response_SkillRegistrationResult_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/SkillRegistrationResult"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[SkillRegistrationResult]"},"Response_StrReplaceEditorResult_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"$ref":"#/components/schemas/StrReplaceEditorResult"},{"type":"null"}],"description":"Data returned from the operation"}},"type":"object","title":"Response[StrReplaceEditorResult]"},"Response_dict_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Data","description":"Data returned from the operation"}},"type":"object","title":"Response[dict]"},"Response_str_":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Data","description":"Data returned from the operation"}},"type":"object","title":"Response[str]"},"RightClickAction":{"properties":{"action_type":{"type":"string","const":"RIGHT_CLICK","title":"Action Type","default":"RIGHT_CLICK"},"x":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"X"},"y":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Y"}},"type":"object","title":"RightClickAction"},"RuntimeEnv":{"properties":{"python":{"items":{"$ref":"#/components/schemas/ToolSpec"},"type":"array","title":"Python"},"nodejs":{"items":{"$ref":"#/components/schemas/ToolSpec"},"type":"array","title":"Nodejs"}},"type":"object","required":["python","nodejs"],"title":"RuntimeEnv","description":"version, path, etc. (python3, python3.11, python3.12, pip3, pip, uv, jupyter)"},"SandboxDetail":{"properties":{"system":{"$ref":"#/components/schemas/SystemEnv"},"runtime":{"$ref":"#/components/schemas/RuntimeEnv"},"utils":{"items":{"$ref":"#/components/schemas/ToolCategory"},"type":"array","title":"Utils"}},"type":"object","required":["system","runtime","utils"],"title":"SandboxDetail","description":"system environment info"},"SandboxRuntimeResponse":{"properties":{"success":{"type":"boolean","title":"Success","description":"Whether the operation was successful","default":true},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"Operation result message","default":"Operation successful"},"data":{"anyOf":[{},{"type":"null"}],"title":"Data","description":"Data returned from the operation"},"home_dir":{"type":"string","title":"Home Dir"},"version":{"type":"string","title":"Version"},"detail":{"$ref":"#/components/schemas/SandboxDetail"}},"type":"object","required":["home_dir","version","detail"],"title":"SandboxResponse"},"ScrollAction":{"properties":{"action_type":{"type":"string","const":"SCROLL","title":"Action Type","default":"SCROLL"},"dx":{"type":"integer","title":"Dx","default":0},"dy":{"type":"integer","title":"Dy","default":0}},"type":"object","title":"ScrollAction"},"SessionInfo":{"properties":{"kernel_name":{"type":"string","title":"Kernel Name","description":"Kernel name"},"last_used":{"type":"number","title":"Last Used","description":"Last used timestamp"},"age_seconds":{"type":"integer","title":"Age Seconds","description":"Age of session in seconds"}},"type":"object","required":["kernel_name","last_used","age_seconds"],"title":"SessionInfo","description":"Active session information"},"ShellCommandResult":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Shell session ID"},"command":{"type":"string","title":"Command","description":"Executed command"},"status":{"$ref":"#/components/schemas/BashCommandStatus","description":"Command execution status"},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Command execution output, only has value when status is completed"},"console":{"anyOf":[{"items":{"$ref":"#/components/schemas/ConsoleRecord"},"type":"array"},{"type":"null"}],"title":"Console","description":"Console command records"},"exit_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exit Code","description":"Command execution exit code, only has value when status is completed"}},"type":"object","required":["session_id","command","status"],"title":"ShellCommandResult","description":"Shell command execution result model"},"ShellCreateSessionRequest":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier for the shell session, auto-generated if not provided"},"exec_dir":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exec Dir","description":"Working directory for the new session (must use absolute path)"}},"type":"object","title":"ShellCreateSessionRequest","description":"Shell session creation request model"},"ShellCreateSessionResponse":{"properties":{"session_id":{"type":"string","title":"Session Id","description":"Unique identifier of the created shell session"},"working_dir":{"type":"string","title":"Working Dir","description":"Working directory of the created session"}},"type":"object","required":["session_id","working_dir"],"title":"ShellCreateSessionResponse","description":"Shell session creation response model"},"ShellExecRequest":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier of the target shell session, if not provided, one will be automatically created"},"exec_dir":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Exec Dir","description":"Working directory for command execution (must use absolute path)"},"command":{"type":"string","title":"Command","description":"Shell command to execute"},"async_mode":{"type":"boolean","title":"Async Mode","description":"Whether to execute command asynchronously (default: False for async, False for synchronous execution)","default":false},"timeout":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Timeout","description":"Maximum time (seconds) to wait for command completion before returning running status"}},"type":"object","required":["command"],"title":"ShellExecRequest","description":"Shell command execution request model"},"ShellKillProcessRequest":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier of the target shell session"}},"type":"object","required":["id"],"title":"ShellKillProcessRequest","description":"Request model for terminating a running process"},"ShellKillResult":{"properties":{"status":{"$ref":"#/components/schemas/BashCommandStatus","description":"Process status"},"returncode":{"type":"integer","title":"Returncode","description":"Process return code"}},"type":"object","required":["status","returncode"],"title":"ShellKillResult","description":"Process termination result model"},"ShellSessionInfo":{"properties":{"working_dir":{"type":"string","title":"Working Dir","description":"Working directory"},"created_at":{"type":"string","format":"date-time","title":"Created At","description":"Creation timestamp"},"last_used_at":{"type":"string","format":"date-time","title":"Last Used At","description":"Last used timestamp"},"age_seconds":{"type":"integer","title":"Age Seconds","description":"Age of session in seconds"},"status":{"type":"string","title":"Status","description":"Session status"},"current_command":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Current Command","description":"Currently executing command"}},"type":"object","required":["working_dir","created_at","last_used_at","age_seconds","status"],"title":"ShellSessionInfo","description":"Shell session information"},"ShellViewRequest":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier of the target shell session"}},"type":"object","required":["id"],"title":"ShellViewRequest","description":"Shell session content view request model"},"ShellViewResult":{"properties":{"output":{"type":"string","title":"Output","description":"Shell session output content"},"session_id":{"type":"string","title":"Session Id","description":"Shell session ID"},"console":{"anyOf":[{"items":{"$ref":"#/components/schemas/ConsoleRecord"},"type":"array"},{"type":"null"}],"title":"Console","description":"Console command records"},"status":{"$ref":"#/components/schemas/BashCommandStatus","description":"Shell session status"},"command":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Command","description":"Last executed or currently executing command"},"exit_code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Exit Code","description":"Command execution exit code, only has value when status is completed"}},"type":"object","required":["output","session_id","status"],"title":"ShellViewResult","description":"Shell session content view result model"},"ShellWaitRequest":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier of the target shell session"},"seconds":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seconds","description":"Wait time (seconds)"}},"type":"object","required":["id"],"title":"ShellWaitRequest","description":"Shell process wait request model"},"ShellWaitResult":{"properties":{"status":{"$ref":"#/components/schemas/BashCommandStatus","description":"Process status"}},"type":"object","required":["status"],"title":"ShellWaitResult","description":"Process wait result model"},"ShellWriteResult":{"properties":{"status":{"$ref":"#/components/schemas/BashCommandStatus","description":"Write status"}},"type":"object","required":["status"],"title":"ShellWriteResult","description":"Process input write result model"},"ShellWriteToProcessRequest":{"properties":{"id":{"type":"string","title":"Id","description":"Unique identifier of the target shell session"},"input":{"type":"string","title":"Input","description":"Input content to write to the process"},"press_enter":{"type":"boolean","title":"Press Enter","description":"Whether to press enter key after input"}},"type":"object","required":["id","input","press_enter"],"title":"ShellWriteToProcessRequest","description":"Request model for writing input to a running process"},"SkillContentResult":{"properties":{"name":{"type":"string","title":"Name","description":"Skill name"},"path":{"type":"string","title":"Path","description":"Absolute path to the skill directory"},"content":{"type":"string","title":"Content","description":"Skill content excluding front matter"}},"type":"object","required":["name","path","content"],"title":"SkillContentResult"},"SkillMetadata":{"properties":{"name":{"type":"string","title":"Name","description":"Skill name"},"path":{"type":"string","title":"Path","description":"Absolute path to the skill directory"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata","description":"Metadata parsed from SKILL.md front matter"},"dependency_commands":{"items":{"$ref":"#/components/schemas/DependencyCommandResult"},"type":"array","title":"Dependency Commands","description":"Dependency commands for the skill"}},"type":"object","required":["name","path"],"title":"SkillMetadata"},"SkillMetadataCollection":{"properties":{"skills":{"items":{"$ref":"#/components/schemas/SkillMetadata"},"type":"array","title":"Skills","description":"Collection of skill metadata entries"}},"type":"object","title":"SkillMetadataCollection"},"SkillRegistrationResult":{"properties":{"count":{"type":"integer","title":"Count","description":"Number of registered skills"},"registered":{"items":{"$ref":"#/components/schemas/SkillMetadata"},"type":"array","title":"Registered","description":"Registered skills and metadata"}},"type":"object","required":["count"],"title":"SkillRegistrationResult"},"StrReplaceEditorRequest":{"properties":{"command":{"type":"string","enum":["view","create","str_replace","insert","undo_edit"],"title":"Command","description":"The commands to run. Allowed options are: `view`, `create`, `str_replace`, `insert`, `undo_edit`."},"path":{"type":"string","title":"Path","description":"Absolute path to file or directory, e.g. `/workspace/file.py` or `/workspace`."},"file_text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"File Text","description":"Required parameter of `create` command, with the content of the file to be created."},"old_str":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Old Str","description":"Required parameter of `str_replace` command containing the string in `path` to replace."},"new_str":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"New Str","description":"Optional parameter of `str_replace` command containing the new string (if not given, no string will be added). Required parameter of `insert` command containing the string to insert."},"insert_line":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Insert Line","description":"Required parameter of `insert` command. The `new_str` will be inserted AFTER the line `insert_line` of `path`."},"view_range":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"View Range","description":"Optional parameter of `view` command when `path` points to a file. If none is given, the full file is shown. If provided, the file will be shown in the indicated line number range, e.g. [11, 12] will show lines 11 and 12. Indexing at 1 to start. Setting `[start_line, -1]` shows all lines from `start_line` to the end of the file.","default":[]}},"type":"object","required":["command","path"],"title":"StrReplaceEditorRequest","description":"String replace editor request based on openhands_aci"},"StrReplaceEditorResult":{"properties":{"output":{"type":"string","title":"Output","description":"Command execution output"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error","description":"Error message if any"},"path":{"type":"string","title":"Path","description":"File path that was operated on"},"prev_exist":{"type":"boolean","title":"Prev Exist","description":"Whether the file existed before operation"},"old_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Old Content","description":"Previous file content"},"new_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"New Content","description":"New file content after operation"}},"type":"object","required":["output","path","prev_exist"],"title":"StrReplaceEditorResult","description":"String replace editor result based on openhands_aci CLIResult"},"SystemEnv":{"properties":{"os":{"type":"string","title":"Os"},"os_version":{"type":"string","title":"Os Version"},"arch":{"type":"string","title":"Arch"},"user":{"type":"string","title":"User"},"home_dir":{"type":"string","title":"Home Dir"},"timezone":{"type":"string","title":"Timezone"},"occupied_ports":{"items":{"type":"string"},"type":"array","title":"Occupied Ports"}},"type":"object","required":["os","os_version","arch","user","home_dir","timezone","occupied_ports"],"title":"SystemEnv"},"TextContent":{"properties":{"type":{"type":"string","const":"text","title":"Type"},"text":{"type":"string","title":"Text"},"annotations":{"anyOf":[{"$ref":"#/components/schemas/Annotations"},{"type":"null"}]},"_meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta"}},"additionalProperties":true,"type":"object","required":["type","text"],"title":"TextContent","description":"Text content for a message."},"TextResourceContents":{"properties":{"uri":{"type":"string","minLength":1,"format":"uri","title":"Uri"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype"},"_meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta"},"text":{"type":"string","title":"Text"}},"additionalProperties":true,"type":"object","required":["uri","text"],"title":"TextResourceContents","description":"Text contents of a resource."},"Tool":{"properties":{"name":{"type":"string","title":"Name"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"inputSchema":{"additionalProperties":true,"type":"object","title":"Inputschema"},"outputSchema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Outputschema"},"icons":{"anyOf":[{"items":{"$ref":"#/components/schemas/Icon"},"type":"array"},{"type":"null"}],"title":"Icons"},"annotations":{"anyOf":[{"$ref":"#/components/schemas/ToolAnnotations"},{"type":"null"}]},"_meta":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Meta"}},"additionalProperties":true,"type":"object","required":["name","inputSchema"],"title":"Tool","description":"Definition for a tool the client can call."},"ToolAnnotations":{"properties":{"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title"},"readOnlyHint":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Readonlyhint"},"destructiveHint":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Destructivehint"},"idempotentHint":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Idempotenthint"},"openWorldHint":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Openworldhint"}},"additionalProperties":true,"type":"object","title":"ToolAnnotations","description":"Additional properties describing a Tool to clients.\n\nNOTE: all properties in ToolAnnotations are **hints**.\nThey are not guaranteed to provide a faithful description of\ntool behavior (including descriptive properties like `title`).\n\nClients should never make tool use decisions based on ToolAnnotations\nreceived from untrusted servers."},"ToolCategory":{"properties":{"category":{"type":"string","title":"Category","description":"Name of tool category"},"tools":{"items":{"$ref":"#/components/schemas/AvailableTool"},"type":"array","title":"Tools","description":"List of tools under this category"}},"type":"object","required":["category","tools"],"title":"ToolCategory","description":"将可用工具按功能分类"},"ToolSpec":{"properties":{"ver":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ver"},"bin":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bin"},"alias":{"items":{"type":"string"},"type":"array","title":"Alias"}},"type":"object","title":"ToolSpec","description":"Tool specification"},"TypingAction":{"properties":{"action_type":{"type":"string","const":"TYPING","title":"Action Type","default":"TYPING"},"text":{"type":"string","minLength":1,"title":"Text"},"use_clipboard":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Use Clipboard","description":"Use clipboard for better character support (recommended for special/ASCII characters)","default":true}},"type":"object","required":["text"],"title":"TypingAction"},"UtilConvertToMarkdownRequest":{"properties":{"uri":{"type":"string","title":"Uri","description":"The URI of the resource to convert"}},"type":"object","required":["uri"],"title":"UtilConvertToMarkdownRequest","description":"convert to markdown request"},"SandboxValidationError":{"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"},"WaitAction":{"properties":{"action_type":{"type":"string","const":"WAIT","title":"Action Type","default":"WAIT"},"duration":{"type":"number","exclusiveMinimum":0.0,"title":"Duration","description":"Duration to wait in seconds"}},"type":"object","required":["duration"],"title":"WaitAction"}},"securitySchemes":{"HTTPBearer":{"type":"http","scheme":"bearer"},"APIKeyCookie":{"type":"apiKey","in":"cookie","name":"session"}}}}