{
  "openapi": "3.1.0",
  "info": {
    "title": "SeaChat Public Developer API",
    "version": "2026-06-28",
    "description": "Public SeaChat gateway API surface generated for docs.seachat.ai."
  },
  "servers": [
    {
      "url": "https://seachat.ai"
    }
  ],
  "paths": {
    "/api/seadb/api/v1/artifacts": {
      "get": {
        "operationId": "seadb_artifacts_list",
        "tags": [
          "seadb",
          "artifacts"
        ],
        "summary": "List artifacts",
        "description": "List content-library artifacts.",
        "parameters": [],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seadb.artifacts.list",
        "x-required-scopes": [
          "seadb:content:read",
          "seadb:content:*",
          "seadb:*",
          "seagate:route:seadb",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seadb/_ls/{namespace}": {
      "get": {
        "operationId": "seadb_docs_list",
        "tags": [
          "seadb",
          "docs"
        ],
        "summary": "List documents",
        "description": "List SeaDB document namespaces or namespace contents.",
        "parameters": [
          {
            "name": "namespace",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seadb.docs.list",
        "x-required-scopes": [
          "seadb:content:read",
          "seadb:content:*",
          "seadb:*",
          "seagate:route:seadb",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seadb/{path}": {
      "get": {
        "operationId": "seadb_docs_read",
        "tags": [
          "seadb",
          "docs"
        ],
        "summary": "Read document",
        "description": "Read one SeaDB document by path.",
        "parameters": [
          {
            "name": "path",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seadb.docs.read",
        "x-required-scopes": [
          "seadb:content:read",
          "seadb:content:*",
          "seadb:*",
          "seagate:route:seadb",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      },
      "post": {
        "operationId": "seadb_docs_write",
        "tags": [
          "seadb",
          "docs"
        ],
        "summary": "Write document",
        "description": "Write one SeaDB document by path.",
        "parameters": [
          {
            "name": "path",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seadb.docs.write",
        "x-required-scopes": [
          "seadb:content:write",
          "seadb:content:*",
          "seadb:*",
          "seagate:route:seadb",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "JSON body forwarded through SeaGate.",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seadb/_search": {
      "get": {
        "operationId": "seadb_docs_search",
        "tags": [
          "seadb",
          "docs"
        ],
        "summary": "Search documents",
        "description": "Search SeaDB documents.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seadb.docs.search",
        "x-required-scopes": [
          "seadb:content:read",
          "seadb:content:*",
          "seadb:*",
          "seagate:route:seadb",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/files/delegations/download": {
      "post": {
        "operationId": "files_download_delegate",
        "tags": [
          "seadb",
          "files"
        ],
        "summary": "Create download delegation",
        "description": "Create a delegated download/read URL for an artifact.",
        "parameters": [],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "files.download.delegate",
        "x-required-scopes": [
          "files:read",
          "files:*",
          "seadb:content:read",
          "seadb:*",
          "seagate:route:seadb",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "JSON body forwarded through SeaGate.",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/files/delegations/upload/complete": {
      "post": {
        "operationId": "files_upload_complete",
        "tags": [
          "seadb",
          "files"
        ],
        "summary": "Complete upload delegation",
        "description": "Complete a delegated upload after object storage write succeeds.",
        "parameters": [],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "files.upload.complete",
        "x-required-scopes": [
          "files:write",
          "files:*",
          "seadb:content:write",
          "seadb:*",
          "seagate:route:seadb",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "JSON body forwarded through SeaGate.",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/files/delegations/upload": {
      "post": {
        "operationId": "files_upload_delegate",
        "tags": [
          "seadb",
          "files"
        ],
        "summary": "Create upload delegation",
        "description": "Create a delegated upload for a content-library artifact.",
        "parameters": [],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "files.upload.delegate",
        "x-required-scopes": [
          "files:write",
          "files:*",
          "seadb:content:write",
          "seadb:*",
          "seagate:route:seadb",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "JSON body forwarded through SeaGate.",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seadb/api/v1/public/harness-packs/{pack}/{path}": {
      "get": {
        "operationId": "seadb_harness_packs_public",
        "tags": [
          "seadb",
          "harness"
        ],
        "summary": "Read public harness packs",
        "description": "Read SeaDB public harness seed packs.",
        "parameters": [
          {
            "name": "pack",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "path",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seadb.harness_packs.public",
        "x-required-scopes": [
          "public:read",
          "seagate:route:seadb",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seadb/api/v1/public/skill-catalog/catalog.json": {
      "get": {
        "operationId": "seadb_skill_catalog_public",
        "tags": [
          "seadb",
          "skills"
        ],
        "summary": "Read public skill catalog",
        "description": "Legacy SeaDB public Skill Hub catalog route; canonical catalog is seaplane.skill_catalog.public.",
        "parameters": [],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seadb.skill_catalog.public",
        "x-required-scopes": [
          "public:read",
          "seagate:route:seadb",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/keys": {
      "post": {
        "operationId": "seagate_api_keys_create",
        "tags": [
          "seagate",
          "auth"
        ],
        "summary": "Create API key",
        "description": "Create a project-scoped API key. The raw token is returned only once.",
        "parameters": [],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seagate.api_keys.create",
        "x-required-scopes": [
          "api-keys:write",
          "seagate:api-keys:write",
          "seagate:admin"
        ],
        "x-runtime-safe": false,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      },
      "get": {
        "operationId": "seagate_api_keys_list",
        "tags": [
          "seagate",
          "auth"
        ],
        "summary": "List API keys",
        "description": "List visible, non-revoked API keys for the current user/project.",
        "parameters": [],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seagate.api_keys.list",
        "x-required-scopes": [
          "api-keys:read",
          "api-keys:write",
          "seagate:api-keys:read",
          "seagate:admin"
        ],
        "x-runtime-safe": false,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/keys/{keyId}": {
      "delete": {
        "operationId": "seagate_api_keys_revoke",
        "tags": [
          "seagate",
          "auth"
        ],
        "summary": "Revoke API key",
        "description": "Revoke a project API key.",
        "parameters": [
          {
            "name": "keyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seagate.api_keys.revoke",
        "x-required-scopes": [
          "api-keys:write",
          "seagate:api-keys:write",
          "seagate:admin"
        ],
        "x-runtime-safe": false,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      },
      "patch": {
        "operationId": "seagate_api_keys_update",
        "tags": [
          "seagate",
          "auth"
        ],
        "summary": "Update API key metadata",
        "description": "Update a key label, scopes, expiration, or spend policy metadata.",
        "parameters": [
          {
            "name": "keyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seagate.api_keys.update",
        "x-required-scopes": [
          "api-keys:write",
          "seagate:api-keys:write",
          "seagate:admin"
        ],
        "x-runtime-safe": false,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seagate/v1/capabilities": {
      "get": {
        "operationId": "seagate_capabilities_list",
        "tags": [
          "seagate",
          "catalog"
        ],
        "summary": "List SeaGate capabilities",
        "description": "Discover runtime-safe SeaGate capabilities with scope and schema metadata.",
        "parameters": [
          {
            "name": "runtime",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [],
        "x-capability-id": "seagate.capabilities.list",
        "x-required-scopes": [],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seaplane/v1/threads/{threadId}/events": {
      "get": {
        "operationId": "events_thread",
        "tags": [
          "seaplane",
          "events"
        ],
        "summary": "List thread events",
        "description": "Read recent event evidence for a thread.",
        "parameters": [
          {
            "name": "threadId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "events.thread",
        "x-required-scopes": [
          "seaplane:read",
          "seaplane:admin",
          "seaplane:*",
          "seagate:route:seaplane",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seaplane/v1/play/apps": {
      "post": {
        "operationId": "seaplane_play_apps_create",
        "tags": [
          "seaplane",
          "play"
        ],
        "summary": "Create Play app",
        "description": "Create a private SeaChat Play app with an optional slug.",
        "parameters": [],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seaplane.play.apps.create",
        "x-required-scopes": [
          "seaplane:write",
          "seaplane:admin",
          "seaplane:*",
          "seagate:route:seaplane",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "JSON body forwarded through SeaGate.",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      },
      "get": {
        "operationId": "seaplane_play_apps_list",
        "tags": [
          "seaplane",
          "play"
        ],
        "summary": "List Play apps",
        "description": "List SeaChat Play apps owned by the current credential.",
        "parameters": [],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seaplane.play.apps.list",
        "x-required-scopes": [
          "seaplane:read",
          "seaplane:admin",
          "seaplane:*",
          "seagate:route:seaplane",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seaplane/v1/play/hosts/{slug}/allow": {
      "get": {
        "operationId": "seaplane_play_host_allow",
        "tags": [
          "seaplane",
          "play"
        ],
        "summary": "Check Play host registration",
        "description": "Check whether a Play slug is registered before browser verification.",
        "parameters": [
          {
            "name": "slug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seaplane.play.host.allow",
        "x-required-scopes": [
          "public:read",
          "seagate:route:seaplane",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seaplane/v1/play/apps/{appId}/launch-link": {
      "post": {
        "operationId": "seaplane_play_launch_create",
        "tags": [
          "seaplane",
          "play"
        ],
        "summary": "Create Play launch link",
        "description": "Create a short-lived owner launch link for a private Play app.",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seaplane.play.launch.create",
        "x-required-scopes": [
          "seaplane:write",
          "seaplane:admin",
          "seaplane:*",
          "seagate:route:seaplane",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "JSON body forwarded through SeaGate.",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seaplane/v1/play/releases/{releaseId}/complete": {
      "post": {
        "operationId": "seaplane_play_releases_complete",
        "tags": [
          "seaplane",
          "play"
        ],
        "summary": "Complete Play release",
        "description": "Complete a delegated Play bundle upload and activate the ready release.",
        "parameters": [
          {
            "name": "releaseId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seaplane.play.releases.complete",
        "x-required-scopes": [
          "seaplane:write",
          "seaplane:admin",
          "seaplane:*",
          "seagate:route:seaplane",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "JSON body forwarded through SeaGate.",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seaplane/v1/play/apps/{appId}/releases": {
      "post": {
        "operationId": "seaplane_play_releases_prepare",
        "tags": [
          "seaplane",
          "play"
        ],
        "summary": "Prepare Play release",
        "description": "Prepare a Play release upload delegation for built static app bytes.",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seaplane.play.releases.prepare",
        "x-required-scopes": [
          "seaplane:write",
          "seaplane:admin",
          "seaplane:*",
          "seagate:route:seaplane",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "JSON body forwarded through SeaGate.",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seaplane/v1/play/apps/{appId}/share-links": {
      "post": {
        "operationId": "seaplane_play_share_create",
        "tags": [
          "seaplane",
          "play"
        ],
        "summary": "Create Play share link",
        "description": "Create a time-bound access link for a private Play app.",
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seaplane.play.share.create",
        "x-required-scopes": [
          "seaplane:write",
          "seaplane:admin",
          "seaplane:*",
          "seagate:route:seaplane",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "JSON body forwarded through SeaGate.",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seaplane/v1/public/skill-catalog/catalog.json": {
      "get": {
        "operationId": "seaplane_skill_catalog_public",
        "tags": [
          "seaplane",
          "skills"
        ],
        "summary": "Read Skill Hub catalog",
        "description": "Read canonical seaplane Skill Hub catalog records used by managed runtime installs.",
        "parameters": [],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seaplane.skill_catalog.public",
        "x-required-scopes": [
          "public:read",
          "seagate:route:seaplane",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seaplane/v1/public/skill-catalog/releases/{path}": {
      "get": {
        "operationId": "seaplane_skill_package_public",
        "tags": [
          "seaplane",
          "skills"
        ],
        "summary": "Download Skill Hub package",
        "description": "Download immutable skill package bytes referenced by the canonical seaplane public skill catalog.",
        "parameters": [
          {
            "name": "path",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seaplane.skill_package.public",
        "x-required-scopes": [
          "public:read",
          "seagate:route:seaplane",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seaplane/v1/threads": {
      "post": {
        "operationId": "threads_create",
        "tags": [
          "seaplane",
          "threads"
        ],
        "summary": "Create thread",
        "description": "Create a product thread.",
        "parameters": [],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "threads.create",
        "x-required-scopes": [
          "seaplane:write",
          "seaplane:admin",
          "seaplane:*",
          "seagate:route:seaplane",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "JSON body forwarded through SeaGate.",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      },
      "get": {
        "operationId": "threads_list",
        "tags": [
          "seaplane",
          "threads"
        ],
        "summary": "List threads",
        "description": "List product threads visible to the current credential.",
        "parameters": [],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "threads.list",
        "x-required-scopes": [
          "seaplane:read",
          "seaplane:admin",
          "seaplane:*",
          "seagate:route:seaplane",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seaplane/v1/threads/{threadId}/fork": {
      "post": {
        "operationId": "threads_fork",
        "tags": [
          "seaplane",
          "threads"
        ],
        "summary": "Fork thread",
        "description": "Fork a conversation into a new thread.",
        "parameters": [
          {
            "name": "threadId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "threads.fork",
        "x-required-scopes": [
          "seaplane:write",
          "seaplane:admin",
          "seaplane:*",
          "seagate:route:seaplane",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "JSON body forwarded through SeaGate.",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seaplane/v1/threads/{threadId}/messages": {
      "get": {
        "operationId": "threads_messages_list",
        "tags": [
          "seaplane",
          "threads"
        ],
        "summary": "List thread messages",
        "description": "List messages in a thread.",
        "parameters": [
          {
            "name": "threadId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "threads.messages.list",
        "x-required-scopes": [
          "seaplane:read",
          "seaplane:admin",
          "seaplane:*",
          "seagate:route:seaplane",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      },
      "post": {
        "operationId": "threads_messages_send",
        "tags": [
          "seaplane",
          "threads"
        ],
        "summary": "Send thread message",
        "description": "Create and dispatch a user message in a thread.",
        "parameters": [
          {
            "name": "threadId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "threads.messages.send",
        "x-required-scopes": [
          "seaplane:write",
          "seaplane:admin",
          "seaplane:*",
          "seagate:route:seaplane",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "JSON body forwarded through SeaGate.",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seaplane/v1/threads/{threadId}/pin": {
      "put": {
        "operationId": "threads_pin",
        "tags": [
          "seaplane",
          "threads"
        ],
        "summary": "Pin thread",
        "description": "Pin or unpin a thread.",
        "parameters": [
          {
            "name": "threadId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "threads.pin",
        "x-required-scopes": [
          "seaplane:write",
          "seaplane:admin",
          "seaplane:*",
          "seagate:route:seaplane",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "JSON body forwarded through SeaGate.",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seaplane/v1/threads/{threadId}": {
      "patch": {
        "operationId": "threads_rename",
        "tags": [
          "seaplane",
          "threads"
        ],
        "summary": "Rename thread",
        "description": "Update a thread title.",
        "parameters": [
          {
            "name": "threadId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "threads.rename",
        "x-required-scopes": [
          "seaplane:write",
          "seaplane:admin",
          "seaplane:*",
          "seagate:route:seaplane",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "JSON body forwarded through SeaGate.",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      },
      "get": {
        "operationId": "threads_show",
        "tags": [
          "seaplane",
          "threads"
        ],
        "summary": "Show thread",
        "description": "Read a product thread by id.",
        "parameters": [
          {
            "name": "threadId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "threads.show",
        "x-required-scopes": [
          "seaplane:read",
          "seaplane:admin",
          "seaplane:*",
          "seagate:route:seaplane",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seaplane/v1/threads/{threadId}/share": {
      "post": {
        "operationId": "threads_share",
        "tags": [
          "seaplane",
          "threads"
        ],
        "summary": "Share thread context",
        "description": "Share one thread's context into another thread through an artifact.",
        "parameters": [
          {
            "name": "threadId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "threads.share",
        "x-required-scopes": [
          "seaplane:write",
          "seaplane:admin",
          "seaplane:*",
          "seagate:route:seaplane",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "JSON body forwarded through SeaGate.",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seaplane/v1/scheduler/timers": {
      "get": {
        "operationId": "timers_list",
        "tags": [
          "seaplane",
          "timers"
        ],
        "summary": "List global timers",
        "description": "List scheduled timers visible to the current credential.",
        "parameters": [],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "timers.list",
        "x-required-scopes": [
          "seaplane:read",
          "seaplane:admin",
          "seaplane:*",
          "seagate:route:seaplane",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/searouter/v1/help": {
      "get": {
        "operationId": "searouter_help",
        "tags": [
          "searouter",
          "models"
        ],
        "summary": "SeaRouter help",
        "description": "Read SeaRouter model and multimodal help.",
        "parameters": [],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "searouter.help",
        "x-required-scopes": [
          "model:invoke",
          "searouter:invoke",
          "searouter:*",
          "searouter:admin",
          "platform:admin",
          "seagate:route:searouter",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/searouter/v1/invoke/image/{model}/{version}": {
      "post": {
        "operationId": "searouter_image_generate",
        "tags": [
          "searouter",
          "models"
        ],
        "summary": "Generate image",
        "description": "Invoke a SeaRouter image generation model.",
        "parameters": [
          {
            "name": "model",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "searouter.image.generate",
        "x-required-scopes": [
          "model:invoke",
          "searouter:invoke",
          "searouter:*",
          "searouter:admin",
          "platform:admin",
          "seagate:route:searouter",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "JSON body forwarded through SeaGate.",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/searouter/llm/v1/responses": {
      "post": {
        "operationId": "searouter_llm_responses",
        "tags": [
          "searouter",
          "models"
        ],
        "summary": "Invoke LLM Responses API",
        "description": "Send one OpenAI-compatible Responses API request through SeaRouter.",
        "parameters": [],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "searouter.llm.responses",
        "x-required-scopes": [
          "model:invoke",
          "searouter:invoke",
          "searouter:*",
          "searouter:admin",
          "platform:admin",
          "seagate:route:searouter",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "JSON body forwarded through SeaGate.",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/searouter/v1/help/models/search": {
      "get": {
        "operationId": "searouter_models_search",
        "tags": [
          "searouter",
          "models"
        ],
        "summary": "Search model catalog",
        "description": "Search SeaRouter model help/catalog entries.",
        "parameters": [
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "searouter.models.search",
        "x-required-scopes": [
          "model:invoke",
          "searouter:invoke",
          "searouter:*",
          "searouter:admin",
          "platform:admin",
          "seagate:route:searouter",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/searouter/v1/usage/summary": {
      "get": {
        "operationId": "searouter_usage_summary",
        "tags": [
          "searouter",
          "usage"
        ],
        "summary": "Read usage summary",
        "description": "Read model usage summary for the current credential scope.",
        "parameters": [],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "searouter.usage.summary",
        "x-required-scopes": [
          "usage:read",
          "usage:read:org",
          "usage:read:all",
          "billing:read",
          "billing:usage:read",
          "searouter:usage:read",
          "searouter:*",
          "searouter:admin",
          "platform:admin",
          "admin",
          "seagate:route:searouter",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seatool/v1/skill-catalog/catalog.json": {
      "get": {
        "operationId": "seatool_skill_catalog_public",
        "tags": [
          "seatool",
          "skills"
        ],
        "summary": "Read dynamic skill catalog",
        "description": "Read Seatool dynamic Skill Hub catalog records used by managed runtime installs.",
        "parameters": [],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seatool.skill_catalog.public",
        "x-required-scopes": [
          "public:read",
          "seagate:route:seatool",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seatool/v1/skill-catalog/releases/{path}": {
      "get": {
        "operationId": "seatool_skill_package_public",
        "tags": [
          "seatool",
          "skills"
        ],
        "summary": "Read dynamic skill package",
        "description": "Download a Seatool dynamic skill package referenced by the public skill catalog.",
        "parameters": [
          {
            "name": "path",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seatool.skill_package.public",
        "x-required-scopes": [
          "public:read",
          "seagate:route:seatool",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seatool/v1/catalog": {
      "get": {
        "operationId": "seatool_catalog",
        "tags": [
          "seatool",
          "tools"
        ],
        "summary": "List tool catalog",
        "description": "Read tool/plugin catalog metadata.",
        "parameters": [],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seatool.catalog",
        "x-required-scopes": [
          "seatool:read",
          "seaplane:read",
          "seatool:*",
          "seatool:admin",
          "platform:admin",
          "admin",
          "seagate:route:seatool",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    },
    "/api/seatool/v1/invoke/{plugin}/{tool}": {
      "post": {
        "operationId": "seatool_invoke",
        "tags": [
          "seatool",
          "tools"
        ],
        "summary": "Invoke tool",
        "description": "Invoke a Seatool plugin tool.",
        "parameters": [
          {
            "name": "plugin",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tool",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "bearerAuth": []
          },
          {
            "apiKeyAuth": []
          }
        ],
        "x-capability-id": "seatool.invoke",
        "x-required-scopes": [
          "tool:invoke",
          "seatool:invoke",
          "seatool:*",
          "seatool:admin",
          "platform:admin",
          "seagate:route:seatool",
          "seagate:route:*",
          "seagate:admin"
        ],
        "x-runtime-safe": true,
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "description": "JSON body forwarded through SeaGate.",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": true
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid credentials"
          },
          "403": {
            "description": "Credential lacks one of the required scopes"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer"
      },
      "apiKeyAuth": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key"
      }
    }
  }
}
