{ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "GooseExtensions", "$defs": { "AddExtensionRequest_unstable": { "type": "object", "properties": { "sessionId": { "type": "string" }, "config": { "description": "Extension configuration (see ExtensionConfig variants: Stdio, StreamableHttp, Builtin, Platform).", "default": null } }, "required": [ "sessionId" ], "description": "Add an extension to an active session.", "x-side": "agent", "x-method": "_goose/unstable/session/extensions/add" }, "EmptyResponse": { "type": "object", "description": "Empty success response for operations that return no data.", "x-side": "agent" }, "RemoveExtensionRequest_unstable": { "type": "object", "properties": { "sessionId": { "type": "string" }, "name": { "type": "string" } }, "required": [ "sessionId", "name" ], "description": "Remove an extension from an active session.", "x-side": "agent", "x-method": "_goose/unstable/session/extensions/remove" }, "GetToolsRequest_unstable": { "type": "object", "properties": { "sessionId": { "type": "string" } }, "required": [ "sessionId" ], "description": "List all tools available in a session.", "x-side": "agent", "x-method": "_goose/unstable/tools/list" }, "GetToolsResponse_unstable": { "type": "object", "properties": { "tools": { "type": "array", "items": {}, "description": "Array of tool info objects with `name`, `description`, `parameters`, and optional `permission`." } }, "required": [ "tools" ], "description": "Tools response.", "x-side": "agent", "x-method": "_goose/unstable/tools/list" }, "GooseToolCallRequest_unstable": { "type": "object", "properties": { "sessionId": { "type": "string" }, "name": { "type": "string" }, "arguments": { "default": null } }, "required": [ "sessionId", "name" ], "description": "Call a tool from an extension.", "x-side": "agent", "x-method": "_goose/unstable/tools/call" }, "GooseToolCallResponse_unstable": { "type": "object", "properties": { "content": { "type": "array", "items": {}, "default": [] }, "structuredContent": {}, "isError": { "type": "boolean" }, "_meta": {} }, "required": [ "isError" ], "description": "Tool call response.", "x-side": "agent", "x-method": "_goose/unstable/tools/call" }, "ReadResourceRequest_unstable": { "type": "object", "properties": { "sessionId": { "type": "string" }, "uri": { "type": "string" }, "extensionName": { "type": "string" } }, "required": [ "sessionId", "uri", "extensionName" ], "description": "Read a resource from an extension.", "x-side": "agent", "x-method": "_goose/unstable/resources/read" }, "ReadResourceResponse_unstable": { "type": "object", "properties": { "result": { "description": "The resource result from the extension (MCP ReadResourceResult).", "default": null } }, "description": "Resource read response.", "x-side": "agent", "x-method": "_goose/unstable/resources/read" }, "UpdateWorkingDirRequest_unstable": { "type": "object", "properties": { "sessionId": { "type": "string" }, "workingDir": { "type": "string" } }, "required": [ "sessionId", "workingDir" ], "description": "Update the working directory for a session.", "x-side": "agent", "x-method": "_goose/unstable/session/working-dir/update" }, "SetSessionSystemPromptRequest_unstable": { "type": "object", "properties": { "sessionId": { "type": "string" }, "mode": { "$ref": "#/$defs/SessionSystemPromptMode", "default": "append" }, "key": { "type": [ "string", "null" ] }, "text": { "type": "string" } }, "required": [ "sessionId", "text" ], "description": "Set, append, or clear system prompt text for a session.\n\n`mode: \"set\"` replaces Goose's base system prompt. `mode: \"append\"` adds an\ninstruction under \"Additional Instructions\". Reusing a key replaces the\nprevious value for that mode/key; sending empty text clears it.", "x-side": "agent", "x-method": "_goose/unstable/session/system-prompt/set" }, "SessionSystemPromptMode": { "oneOf": [ { "type": "string", "const": "set", "description": "Replace Goose's base system prompt with the provided text." }, { "type": "string", "const": "append", "description": "Append the provided text under Goose's \"Additional Instructions\" section." } ], "description": "How a session system prompt update should be applied." }, "DeleteSessionRequest": { "type": "object", "properties": { "sessionId": { "type": "string" } }, "required": [ "sessionId" ], "description": "Delete a session.", "x-side": "agent", "x-method": "session/delete" }, "GetConfigExtensionsRequest_unstable": { "type": "object", "description": "List configured extensions and any warnings.", "x-side": "agent", "x-method": "_goose/unstable/config/extensions/list" }, "GetConfigExtensionsResponse_unstable": { "type": "object", "properties": { "extensions": { "type": "array", "items": { "$ref": "#/$defs/GooseExtensionEntry" } }, "warnings": { "type": "array", "items": { "type": "string" }, "default": [] } }, "required": [ "extensions" ], "description": "List configured extensions and any warnings.", "x-side": "agent", "x-method": "_goose/unstable/config/extensions/list" }, "GooseExtensionEntry": { "type": "object", "properties": { "extension": { "$ref": "#/$defs/GooseExtension" }, "enabled": { "type": "boolean" }, "configKey": { "type": [ "string", "null" ] } }, "required": [ "extension", "enabled" ] }, "GooseExtension": { "oneOf": [ { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": [ "string", "null" ] }, "display_name": { "type": [ "string", "null" ] }, "timeout": { "type": [ "integer", "null" ], "minimum": 0 }, "bundled": { "type": [ "boolean", "null" ] }, "type": { "type": "string", "const": "builtin" } }, "required": [ "type", "name" ] }, { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": [ "string", "null" ] }, "display_name": { "type": [ "string", "null" ] }, "bundled": { "type": [ "boolean", "null" ] }, "type": { "type": "string", "const": "platform" } }, "required": [ "type", "name" ] }, { "type": "object", "properties": { "server": { "$ref": "#/$defs/McpServer" }, "envKeys": { "type": "array", "items": { "type": "string" } }, "description": { "type": [ "string", "null" ] }, "timeout": { "type": [ "integer", "null" ], "minimum": 0 }, "socket": { "type": [ "string", "null" ] }, "bundled": { "type": [ "boolean", "null" ] }, "type": { "type": "string", "const": "mcp" } }, "required": [ "type", "server" ] } ] }, "McpServer": { "anyOf": [ { "$ref": "#/$defs/McpServerHttp", "type": "object", "properties": { "type": { "type": "string", "const": "http" } }, "required": [ "type" ], "description": "HTTP transport configuration\n\nOnly available when the Agent capabilities indicate `mcp_capabilities.http` is `true`." }, { "$ref": "#/$defs/McpServerSse", "type": "object", "properties": { "type": { "type": "string", "const": "sse" } }, "required": [ "type" ], "description": "SSE transport configuration\n\nOnly available when the Agent capabilities indicate `mcp_capabilities.sse` is `true`." }, { "$ref": "#/$defs/McpServerStdio", "description": "Stdio transport configuration\n\nAll Agents MUST support this transport." } ], "description": "Configuration for connecting to an MCP (Model Context Protocol) server.\n\nMCP servers provide tools and context that the agent can use when\nprocessing prompts.\n\nSee protocol docs: [MCP Servers](https://agentclientprotocol.com/protocol/session-setup#mcp-servers)" }, "HttpHeader": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the HTTP header." }, "value": { "type": "string", "description": "The value to set for the HTTP header." }, "_meta": { "type": [ "object", "null" ], "additionalProperties": {}, "description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)" } }, "required": [ "name", "value" ], "description": "An HTTP header to set when making requests to the MCP server." }, "McpServerHttp": { "type": "object", "properties": { "name": { "type": "string", "description": "Human-readable name identifying this MCP server." }, "url": { "type": "string", "description": "URL to the MCP server." }, "headers": { "type": "array", "items": { "$ref": "#/$defs/HttpHeader" }, "description": "HTTP headers to set when making requests to the MCP server." }, "_meta": { "type": [ "object", "null" ], "additionalProperties": {}, "description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)" }, "type": { "type": "string", "const": "http" } }, "required": [ "type", "name", "url", "headers" ], "description": "HTTP transport configuration for MCP." }, "McpServerSse": { "type": "object", "properties": { "name": { "type": "string", "description": "Human-readable name identifying this MCP server." }, "url": { "type": "string", "description": "URL to the MCP server." }, "headers": { "type": "array", "items": { "$ref": "#/$defs/HttpHeader" }, "description": "HTTP headers to set when making requests to the MCP server." }, "_meta": { "type": [ "object", "null" ], "additionalProperties": {}, "description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)" }, "type": { "type": "string", "const": "sse" } }, "required": [ "type", "name", "url", "headers" ], "description": "SSE transport configuration for MCP." }, "McpServerStdio": { "type": "object", "properties": { "name": { "type": "string", "description": "Human-readable name identifying this MCP server." }, "command": { "type": "string", "description": "Path to the MCP server executable." }, "args": { "type": "array", "items": { "type": "string" }, "description": "Command-line arguments to pass to the MCP server." }, "env": { "type": "array", "items": { "$ref": "#/$defs/EnvVariable" }, "description": "Environment variables to set when launching the MCP server." }, "_meta": { "type": [ "object", "null" ], "additionalProperties": {}, "description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)" } }, "required": [ "name", "command", "args", "env" ], "description": "Stdio transport configuration for MCP." }, "EnvVariable": { "type": "object", "properties": { "name": { "type": "string", "description": "The name of the environment variable." }, "value": { "type": "string", "description": "The value to set for the environment variable." }, "_meta": { "type": [ "object", "null" ], "additionalProperties": {}, "description": "The _meta property is reserved by ACP to allow clients and agents to attach additional\nmetadata to their interactions. Implementations MUST NOT make assumptions about values at\nthese keys.\n\nSee protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)" } }, "required": [ "name", "value" ], "description": "An environment variable to set when launching an MCP server." }, "GetAvailableExtensionsRequest_unstable": { "type": "object", "description": "List Goose-owned extension definitions available to configure or enable.", "x-side": "agent", "x-method": "_goose/unstable/extensions/available" }, "GetAvailableExtensionsResponse_unstable": { "type": "object", "properties": { "extensions": { "type": "array", "items": { "$ref": "#/$defs/GooseExtension" } } }, "required": [ "extensions" ], "x-side": "agent", "x-method": "_goose/unstable/extensions/available" }, "AddConfigExtensionRequest_unstable": { "type": "object", "properties": { "extension": { "$ref": "#/$defs/GooseExtension" }, "enabled": { "type": "boolean", "default": false } }, "required": [ "extension" ], "description": "Persist a new extension to the user's global goose config.", "x-side": "agent", "x-method": "_goose/unstable/config/extensions/add" }, "RemoveConfigExtensionRequest_unstable": { "type": "object", "properties": { "configKey": { "type": "string" } }, "required": [ "configKey" ], "description": "Remove a persisted extension from the user's global goose config.", "x-side": "agent", "x-method": "_goose/unstable/config/extensions/remove" }, "SetConfigExtensionEnabledRequest_unstable": { "type": "object", "properties": { "configKey": { "type": "string" }, "enabled": { "type": "boolean" } }, "required": [ "configKey", "enabled" ], "description": "Set the `enabled` flag for a persisted extension in the user's global goose config.", "x-side": "agent", "x-method": "_goose/unstable/config/extensions/set-enabled" }, "GetSessionExtensionsRequest_unstable": { "type": "object", "properties": { "sessionId": { "type": "string" } }, "required": [ "sessionId" ], "x-side": "agent", "x-method": "_goose/unstable/session/extensions/list" }, "GetSessionExtensionsResponse_unstable": { "type": "object", "properties": { "extensions": { "type": "array", "items": {} } }, "required": [ "extensions" ], "x-side": "agent", "x-method": "_goose/unstable/session/extensions/list" }, "ListProvidersRequest_unstable": { "type": "object", "properties": { "providerIds": { "type": "array", "items": { "type": "string" }, "description": "Only return entries for these providers. Empty means all.", "default": [] } }, "description": "List providers with setup metadata and the current model inventory snapshot.", "x-side": "agent", "x-method": "_goose/unstable/providers/list" }, "ListProvidersResponse_unstable": { "type": "object", "properties": { "entries": { "type": "array", "items": { "$ref": "#/$defs/ProviderInventoryEntryDto" } } }, "required": [ "entries" ], "description": "Provider list response.", "x-side": "agent", "x-method": "_goose/unstable/providers/list" }, "ProviderInventoryEntryDto": { "type": "object", "properties": { "providerId": { "type": "string", "description": "Provider identifier." }, "providerName": { "type": "string", "description": "Human-readable provider name." }, "description": { "type": "string", "description": "Description of the provider's capabilities." }, "defaultModel": { "type": "string", "description": "The default/recommended model for this provider." }, "configured": { "type": "boolean", "description": "Whether Goose has enough configuration to use this provider." }, "providerType": { "type": "string", "description": "Provider classification such as `Preferred`, `Builtin`, `Declarative`, or `Custom`." }, "category": { "$ref": "#/$defs/ProviderSetupCategoryDto", "description": "Whether this inventory entry represents an agent provider or a model provider." }, "configKeys": { "type": "array", "items": { "$ref": "#/$defs/ProviderConfigKey" }, "description": "Required configuration keys and setup metadata." }, "setupSteps": { "type": "array", "items": { "type": "string" }, "description": "Step-by-step setup instructions, when present." }, "supportsRefresh": { "type": "boolean", "description": "Whether this provider supports background inventory refresh." }, "refreshing": { "type": "boolean", "description": "Whether a refresh is currently in flight." }, "models": { "type": "array", "items": { "$ref": "#/$defs/ProviderInventoryModelDto" }, "description": "The list of available models." }, "lastUpdatedAt": { "type": [ "string", "null" ], "description": "When this entry was last successfully refreshed (ISO 8601)." }, "lastRefreshAttemptAt": { "type": [ "string", "null" ], "description": "When a refresh was most recently attempted (ISO 8601)." }, "lastRefreshError": { "type": [ "string", "null" ], "description": "The last refresh failure message, if any." }, "stale": { "type": "boolean", "description": "Whether we believe this data may be outdated." }, "modelSelectionHint": { "type": [ "string", "null" ], "description": "Guidance message shown when this provider manages its own model selection externally." } }, "required": [ "providerId", "providerName", "description", "defaultModel", "configured", "providerType", "category", "configKeys", "setupSteps", "supportsRefresh", "refreshing", "models", "stale" ], "description": "Provider inventory entry." }, "ProviderSetupCategoryDto": { "type": "string", "enum": [ "agent", "model" ] }, "ProviderConfigKey": { "type": "object", "properties": { "name": { "type": "string" }, "required": { "type": "boolean" }, "secret": { "type": "boolean" }, "default": { "type": [ "string", "null" ], "default": null }, "oauthFlow": { "type": "boolean", "default": false }, "deviceCodeFlow": { "type": "boolean", "default": false }, "primary": { "type": "boolean", "default": false } }, "required": [ "name", "required", "secret" ] }, "ProviderInventoryModelDto": { "type": "object", "properties": { "id": { "type": "string", "description": "Model identifier as the provider knows it." }, "name": { "type": "string", "description": "Human-readable display name." }, "family": { "type": [ "string", "null" ], "description": "Model family for grouping in UI." }, "contextLimit": { "type": [ "integer", "null" ], "description": "Context window size in tokens.", "minimum": 0 }, "reasoning": { "type": [ "boolean", "null" ], "description": "Whether the model supports reasoning/extended thinking." }, "recommended": { "type": "boolean", "description": "Whether this model should appear in the compact recommended picker.", "default": false } }, "required": [ "id", "name" ], "description": "A single model in provider inventory." }, "ProviderSupportedModelsListRequest_unstable": { "type": "object", "properties": { "providerId": { "type": "string" } }, "required": [ "providerId" ], "description": "List the raw model identifiers returned by a provider's live supported-models API.", "x-side": "agent", "x-method": "_goose/unstable/providers/supported-models/list" }, "ProviderSupportedModelsListResponse_unstable": { "type": "object", "properties": { "providerId": { "type": "string" }, "models": { "type": "array", "items": { "type": "string" } } }, "required": [ "providerId", "models" ], "x-side": "agent", "x-method": "_goose/unstable/providers/supported-models/list" }, "ProviderCatalogListRequest_unstable": { "type": "object", "properties": { "format": { "type": [ "string", "null" ] } }, "description": "List custom-provider catalog entries. Omit `format` to list all formats.", "x-side": "agent", "x-method": "_goose/unstable/providers/catalog/list" }, "ProviderCatalogListResponse_unstable": { "type": "object", "properties": { "providers": { "type": "array", "items": { "$ref": "#/$defs/ProviderTemplateCatalogEntryDto" } } }, "required": [ "providers" ], "x-side": "agent", "x-method": "_goose/unstable/providers/catalog/list" }, "ProviderTemplateCatalogEntryDto": { "type": "object", "properties": { "providerId": { "type": "string" }, "name": { "type": "string" }, "format": { "type": "string" }, "apiUrl": { "type": "string" }, "modelCount": { "type": "integer", "minimum": 0 }, "docUrl": { "type": "string" }, "envVar": { "type": "string" } }, "required": [ "providerId", "name", "format", "apiUrl", "modelCount", "docUrl", "envVar" ] }, "ProviderSetupCatalogListRequest_unstable": { "type": "object", "description": "List provider setup catalog entries", "x-side": "agent", "x-method": "_goose/unstable/providers/setup/catalog/list" }, "ProviderSetupCatalogListResponse_unstable": { "type": "object", "properties": { "providers": { "type": "array", "items": { "$ref": "#/$defs/ProviderSetupCatalogEntryDto" } } }, "required": [ "providers" ], "x-side": "agent", "x-method": "_goose/unstable/providers/setup/catalog/list" }, "ProviderSetupCatalogEntryDto": { "type": "object", "properties": { "providerId": { "type": "string" }, "name": { "type": "string" }, "category": { "$ref": "#/$defs/ProviderSetupCategoryDto" }, "description": { "type": "string" }, "setupMethod": { "$ref": "#/$defs/ProviderSetupMethodDto" }, "nativeConnectQuery": { "type": [ "string", "null" ] }, "fields": { "type": "array", "items": { "$ref": "#/$defs/ProviderSetupFieldDto" }, "default": [] }, "binaryName": { "type": [ "string", "null" ] }, "docUrl": { "type": [ "string", "null" ] }, "group": { "$ref": "#/$defs/ProviderSetupGroupDto" }, "showOnlyWhenInstalled": { "type": "boolean" }, "aliases": { "type": "array", "items": { "type": "string" }, "default": [] }, "supportsInstall": { "type": "boolean" }, "supportsAuth": { "type": "boolean" }, "supportsAuthStatus": { "type": "boolean" } }, "required": [ "providerId", "name", "category", "description", "setupMethod", "group", "showOnlyWhenInstalled", "supportsInstall", "supportsAuth", "supportsAuthStatus" ] }, "ProviderSetupMethodDto": { "type": "string", "enum": [ "none", "single_api_key", "config_fields", "host_with_oauth_fallback", "oauth_browser", "oauth_device_code", "cloud_credentials", "local", "cli_auth" ] }, "ProviderSetupFieldDto": { "type": "object", "properties": { "key": { "type": "string" }, "label": { "type": "string" }, "secret": { "type": "boolean" }, "required": { "type": "boolean" }, "placeholder": { "type": [ "string", "null" ] }, "defaultValue": { "type": [ "string", "null" ] } }, "required": [ "key", "label", "secret", "required" ] }, "ProviderSetupGroupDto": { "type": "string", "enum": [ "default", "additional" ] }, "ProviderCatalogTemplateRequest_unstable": { "type": "object", "properties": { "providerId": { "type": "string" } }, "required": [ "providerId" ], "description": "Return the editable template for one catalog provider.", "x-side": "agent", "x-method": "_goose/unstable/providers/catalog/template" }, "ProviderCatalogTemplateResponse_unstable": { "type": "object", "properties": { "template": { "$ref": "#/$defs/ProviderTemplateDto" } }, "required": [ "template" ], "x-side": "agent", "x-method": "_goose/unstable/providers/catalog/template" }, "ProviderTemplateDto": { "type": "object", "properties": { "providerId": { "type": "string" }, "name": { "type": "string" }, "format": { "type": "string" }, "apiUrl": { "type": "string" }, "models": { "type": "array", "items": { "$ref": "#/$defs/ProviderTemplateModelDto" } }, "supportsStreaming": { "type": "boolean" }, "envVar": { "type": "string" }, "docUrl": { "type": "string" } }, "required": [ "providerId", "name", "format", "apiUrl", "models", "supportsStreaming", "envVar", "docUrl" ] }, "ProviderTemplateModelDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "contextLimit": { "type": "integer", "minimum": 0 }, "capabilities": { "$ref": "#/$defs/ProviderTemplateCapabilitiesDto" }, "deprecated": { "type": "boolean" } }, "required": [ "id", "name", "contextLimit", "capabilities", "deprecated" ] }, "ProviderTemplateCapabilitiesDto": { "type": "object", "properties": { "toolCall": { "type": "boolean" }, "reasoning": { "type": "boolean" }, "attachment": { "type": "boolean" }, "temperature": { "type": "boolean" } }, "required": [ "toolCall", "reasoning", "attachment", "temperature" ] }, "CustomProviderCreateRequest_unstable": { "type": "object", "properties": { "engine": { "type": "string" }, "displayName": { "type": "string" }, "apiUrl": { "type": "string" }, "apiKey": { "type": [ "string", "null" ] }, "models": { "type": "array", "items": { "type": "string" }, "default": [] }, "supportsStreaming": { "type": [ "boolean", "null" ] }, "headers": { "type": "object", "additionalProperties": { "type": "string" }, "default": {} }, "requiresAuth": { "type": "boolean" }, "catalogProviderId": { "type": [ "string", "null" ] }, "basePath": { "type": [ "string", "null" ] }, "preservesThinking": { "type": [ "boolean", "null" ] } }, "required": [ "engine", "displayName", "apiUrl", "requiresAuth" ], "description": "Create a custom provider backed by Goose's declarative provider store.", "x-side": "agent", "x-method": "_goose/unstable/providers/custom/create" }, "CustomProviderCreateResponse_unstable": { "type": "object", "properties": { "providerId": { "type": "string" }, "status": { "$ref": "#/$defs/ProviderConfigStatusDto" }, "refresh": { "$ref": "#/$defs/RefreshProviderInventoryResponse_unstable" } }, "required": [ "providerId", "status", "refresh" ], "x-side": "agent", "x-method": "_goose/unstable/providers/custom/create" }, "ProviderConfigStatusDto": { "type": "object", "properties": { "providerId": { "type": "string" }, "isConfigured": { "type": "boolean" } }, "required": [ "providerId", "isConfigured" ] }, "RefreshProviderInventoryResponse_unstable": { "type": "object", "properties": { "started": { "type": "array", "items": { "type": "string" }, "description": "Which providers will be refreshed." }, "skipped": { "type": "array", "items": { "$ref": "#/$defs/RefreshProviderInventorySkipDto" }, "description": "Which providers were skipped and why.", "default": [] } }, "required": [ "started" ], "description": "Refresh acknowledgement.", "x-side": "agent", "x-method": "_goose/unstable/providers/inventory/refresh" }, "RefreshProviderInventorySkipDto": { "type": "object", "properties": { "providerId": { "type": "string" }, "reason": { "$ref": "#/$defs/RefreshProviderInventorySkipReasonDto" } }, "required": [ "providerId", "reason" ] }, "RefreshProviderInventorySkipReasonDto": { "type": "string", "enum": [ "unknown_provider", "not_configured", "does_not_support_refresh", "already_refreshing" ] }, "CustomProviderReadRequest_unstable": { "type": "object", "properties": { "providerId": { "type": "string" } }, "required": [ "providerId" ], "description": "Read a declarative provider config. Custom configs are editable; bundled configs are read-only.", "x-side": "agent", "x-method": "_goose/unstable/providers/custom/read" }, "CustomProviderReadResponse_unstable": { "type": "object", "properties": { "provider": { "$ref": "#/$defs/CustomProviderConfigDto" }, "editable": { "type": "boolean" }, "status": { "$ref": "#/$defs/ProviderConfigStatusDto" } }, "required": [ "provider", "editable", "status" ], "x-side": "agent", "x-method": "_goose/unstable/providers/custom/read" }, "CustomProviderConfigDto": { "type": "object", "properties": { "providerId": { "type": "string" }, "engine": { "type": "string" }, "displayName": { "type": "string" }, "apiUrl": { "type": "string" }, "models": { "type": "array", "items": { "type": "string" }, "default": [] }, "supportsStreaming": { "type": [ "boolean", "null" ] }, "headers": { "type": "object", "additionalProperties": { "type": "string" }, "default": {} }, "requiresAuth": { "type": "boolean" }, "catalogProviderId": { "type": [ "string", "null" ] }, "basePath": { "type": [ "string", "null" ] }, "apiKeyEnv": { "type": [ "string", "null" ] }, "apiKeySet": { "type": "boolean" }, "preservesThinking": { "type": "boolean" } }, "required": [ "providerId", "engine", "displayName", "apiUrl", "requiresAuth", "apiKeySet", "preservesThinking" ] }, "CustomProviderUpdateRequest_unstable": { "type": "object", "properties": { "providerId": { "type": "string" }, "engine": { "type": "string" }, "displayName": { "type": "string" }, "apiUrl": { "type": "string" }, "apiKey": { "type": [ "string", "null" ] }, "models": { "type": "array", "items": { "type": "string" }, "default": [] }, "supportsStreaming": { "type": [ "boolean", "null" ] }, "headers": { "type": "object", "additionalProperties": { "type": "string" }, "default": {} }, "requiresAuth": { "type": "boolean" }, "catalogProviderId": { "type": [ "string", "null" ] }, "basePath": { "type": [ "string", "null" ] }, "preservesThinking": { "type": [ "boolean", "null" ] } }, "required": [ "providerId", "engine", "displayName", "apiUrl", "requiresAuth" ], "description": "Update a custom provider backed by Goose's declarative provider store.", "x-side": "agent", "x-method": "_goose/unstable/providers/custom/update" }, "CustomProviderUpdateResponse_unstable": { "type": "object", "properties": { "providerId": { "type": "string" }, "status": { "$ref": "#/$defs/ProviderConfigStatusDto" }, "refresh": { "$ref": "#/$defs/RefreshProviderInventoryResponse_unstable" } }, "required": [ "providerId", "status", "refresh" ], "x-side": "agent", "x-method": "_goose/unstable/providers/custom/update" }, "CustomProviderDeleteRequest_unstable": { "type": "object", "properties": { "providerId": { "type": "string" } }, "required": [ "providerId" ], "description": "Delete a custom provider from Goose's declarative provider store.", "x-side": "agent", "x-method": "_goose/unstable/providers/custom/delete" }, "CustomProviderDeleteResponse_unstable": { "type": "object", "properties": { "providerId": { "type": "string" }, "refresh": { "$ref": "#/$defs/RefreshProviderInventoryResponse_unstable" } }, "required": [ "providerId", "refresh" ], "x-side": "agent", "x-method": "_goose/unstable/providers/custom/delete" }, "RefreshProviderInventoryRequest_unstable": { "type": "object", "properties": { "providerIds": { "type": "array", "items": { "type": "string" }, "description": "Which providers to refresh. Empty means all known providers.", "default": [] } }, "description": "Trigger a background refresh of provider inventories.", "x-side": "agent", "x-method": "_goose/unstable/providers/inventory/refresh" }, "ProviderConfigReadRequest_unstable": { "type": "object", "properties": { "providerId": { "type": "string" } }, "required": [ "providerId" ], "description": "Read saved configuration field values for one provider.", "x-side": "agent", "x-method": "_goose/unstable/providers/config/read" }, "ProviderConfigReadResponse_unstable": { "type": "object", "properties": { "fields": { "type": "array", "items": { "$ref": "#/$defs/ProviderConfigFieldValueDto" } } }, "required": [ "fields" ], "x-side": "agent", "x-method": "_goose/unstable/providers/config/read" }, "ProviderConfigFieldValueDto": { "type": "object", "properties": { "key": { "type": "string" }, "value": { "type": [ "string", "null" ], "default": null }, "isSet": { "type": "boolean" }, "isSecret": { "type": "boolean" }, "required": { "type": "boolean" } }, "required": [ "key", "isSet", "isSecret", "required" ] }, "ProviderConfigStatusRequest_unstable": { "type": "object", "properties": { "providerIds": { "type": "array", "items": { "type": "string" }, "default": [] } }, "description": "Return provider configured statuses. Empty provider_ids means all providers.", "x-side": "agent", "x-method": "_goose/unstable/providers/config/status" }, "ProviderConfigStatusResponse_unstable": { "type": "object", "properties": { "statuses": { "type": "array", "items": { "$ref": "#/$defs/ProviderConfigStatusDto" } } }, "required": [ "statuses" ], "x-side": "agent", "x-method": "_goose/unstable/providers/config/status" }, "ProviderConfigSaveRequest_unstable": { "type": "object", "properties": { "providerId": { "type": "string" }, "fields": { "type": "array", "items": { "$ref": "#/$defs/ProviderConfigFieldUpdate" } } }, "required": [ "providerId", "fields" ], "description": "Save provider configuration fields and start an inventory refresh when supported.", "x-side": "agent", "x-method": "_goose/unstable/providers/config/save" }, "ProviderConfigFieldUpdate": { "type": "object", "properties": { "key": { "type": "string" }, "value": { "type": "string" } }, "required": [ "key", "value" ] }, "ProviderConfigChangeResponse_unstable": { "type": "object", "properties": { "status": { "$ref": "#/$defs/ProviderConfigStatusDto" }, "refresh": { "$ref": "#/$defs/RefreshProviderInventoryResponse_unstable" } }, "required": [ "status", "refresh" ], "x-side": "agent" }, "ProviderConfigDeleteRequest_unstable": { "type": "object", "properties": { "providerId": { "type": "string" } }, "required": [ "providerId" ], "description": "Delete provider configuration fields and start an inventory refresh when supported.", "x-side": "agent", "x-method": "_goose/unstable/providers/config/delete" }, "ProviderConfigAuthenticateRequest_unstable": { "type": "object", "properties": { "providerId": { "type": "string" } }, "required": [ "providerId" ], "description": "Run a provider-owned native authentication flow and start an inventory refresh when supported.", "x-side": "agent", "x-method": "_goose/unstable/providers/config/authenticate" }, "PreferencesReadRequest_unstable": { "type": "object", "properties": { "keys": { "type": "array", "items": { "$ref": "#/$defs/PreferenceKey" }, "default": [] } }, "description": "Read allowlisted user preferences. Empty `keys` means all supported preferences.", "x-side": "agent", "x-method": "_goose/unstable/preferences/read" }, "PreferenceKey": { "type": "string", "enum": [ "autoCompactThreshold", "voiceAutoSubmitPhrases", "voiceDictationProvider", "voiceDictationPreferredMic" ] }, "PreferencesReadResponse_unstable": { "type": "object", "properties": { "values": { "type": "array", "items": { "$ref": "#/$defs/PreferenceValue" } } }, "required": [ "values" ], "x-side": "agent", "x-method": "_goose/unstable/preferences/read" }, "PreferenceValue": { "type": "object", "properties": { "key": { "$ref": "#/$defs/PreferenceKey" }, "value": { "default": null } }, "required": [ "key" ] }, "PreferencesSaveRequest_unstable": { "type": "object", "properties": { "values": { "type": "array", "items": { "$ref": "#/$defs/PreferenceValue" }, "default": [] } }, "description": "Save allowlisted user preferences.", "x-side": "agent", "x-method": "_goose/unstable/preferences/save" }, "PreferencesRemoveRequest_unstable": { "type": "object", "properties": { "keys": { "type": "array", "items": { "$ref": "#/$defs/PreferenceKey" }, "default": [] } }, "description": "Remove allowlisted user preferences.", "x-side": "agent", "x-method": "_goose/unstable/preferences/remove" }, "DefaultsReadRequest_unstable": { "type": "object", "description": "Read Goose default provider and model configuration.", "x-side": "agent", "x-method": "_goose/unstable/defaults/read" }, "DefaultsReadResponse_unstable": { "type": "object", "properties": { "providerId": { "type": [ "string", "null" ] }, "modelId": { "type": [ "string", "null" ] } }, "x-side": "agent" }, "DefaultsSaveRequest_unstable": { "type": "object", "properties": { "providerId": { "type": "string" }, "modelId": { "type": [ "string", "null" ] } }, "required": [ "providerId" ], "description": "Save Goose default provider and model configuration.", "x-side": "agent", "x-method": "_goose/unstable/defaults/save" }, "OnboardingImportScanRequest_unstable": { "type": "object", "properties": { "sources": { "type": "array", "items": { "$ref": "#/$defs/OnboardingImportSourceKind" }, "description": "Empty means all supported import sources.", "default": [] } }, "description": "Scan for existing Goose and compatible app data that onboarding can import.", "x-side": "agent", "x-method": "_goose/unstable/onboarding/import/scan" }, "OnboardingImportSourceKind": { "type": "string", "enum": [ "goose_config", "claude_desktop" ], "description": "Sources that onboarding knows how to discover and import." }, "OnboardingImportScanResponse_unstable": { "type": "object", "properties": { "candidates": { "type": "array", "items": { "$ref": "#/$defs/OnboardingImportCandidate" } } }, "required": [ "candidates" ], "x-side": "agent", "x-method": "_goose/unstable/onboarding/import/scan" }, "OnboardingImportCandidate": { "type": "object", "properties": { "id": { "type": "string" }, "sourceKind": { "$ref": "#/$defs/OnboardingImportSourceKind" }, "displayName": { "type": "string" }, "path": { "type": "string" }, "counts": { "$ref": "#/$defs/OnboardingImportCounts" }, "warnings": { "type": "array", "items": { "type": "string" }, "default": [] } }, "required": [ "id", "sourceKind", "displayName", "path", "counts" ] }, "OnboardingImportCounts": { "type": "object", "properties": { "providers": { "type": "integer", "minimum": 0 }, "extensions": { "type": "integer", "minimum": 0 }, "sessions": { "type": "integer", "minimum": 0 }, "skills": { "type": "integer", "minimum": 0 }, "projects": { "type": "integer", "minimum": 0 }, "preferences": { "type": "integer", "minimum": 0 } }, "required": [ "providers", "extensions", "sessions", "skills", "projects", "preferences" ] }, "OnboardingImportApplyRequest_unstable": { "type": "object", "properties": { "candidateIds": { "type": "array", "items": { "type": "string" }, "default": [] }, "enableImportedExtensions": { "type": "boolean", "default": false } }, "description": "Import selected onboarding candidates.", "x-side": "agent", "x-method": "_goose/unstable/onboarding/import/apply" }, "OnboardingImportApplyResponse_unstable": { "type": "object", "properties": { "imported": { "$ref": "#/$defs/OnboardingImportCounts" }, "skipped": { "$ref": "#/$defs/OnboardingImportCounts" }, "warnings": { "type": "array", "items": { "type": "string" }, "default": [] }, "providerDefaults": { "anyOf": [ { "$ref": "#/$defs/DefaultsReadResponse_unstable" }, { "type": "null" } ] } }, "required": [ "imported", "skipped" ], "x-side": "agent", "x-method": "_goose/unstable/onboarding/import/apply" }, "ExportSessionRequest_unstable": { "type": "object", "properties": { "sessionId": { "type": "string" } }, "required": [ "sessionId" ], "description": "Export a session as a JSON string.", "x-side": "agent", "x-method": "_goose/unstable/session/export" }, "ExportSessionResponse_unstable": { "type": "object", "properties": { "data": { "type": "string" } }, "required": [ "data" ], "description": "Export session response — raw JSON of the goose session with `conversation`.", "x-side": "agent", "x-method": "_goose/unstable/session/export" }, "ImportSessionRequest_unstable": { "type": "object", "properties": { "data": { "type": "string" } }, "required": [ "data" ], "description": "Import a session from a JSON string.", "x-side": "agent", "x-method": "_goose/unstable/session/import" }, "ImportSessionResponse_unstable": { "type": "object", "properties": { "sessionId": { "type": "string" }, "title": { "type": [ "string", "null" ] }, "updatedAt": { "type": [ "string", "null" ] }, "messageCount": { "type": "integer", "minimum": 0 } }, "required": [ "sessionId", "messageCount" ], "description": "Import session response — metadata about the newly created session.", "x-side": "agent", "x-method": "_goose/unstable/session/import" }, "ElicitationRespondRequest_unstable": { "type": "object", "properties": { "sessionId": { "type": "string" }, "elicitationId": { "type": "string" }, "userData": { "default": null } }, "required": [ "sessionId", "elicitationId" ], "description": "Submit a response for a pending MCP elicitation in an active session.", "x-side": "agent", "x-method": "_goose/unstable/elicitation/respond" }, "UpdateSessionProjectRequest_unstable": { "type": "object", "properties": { "sessionId": { "type": "string" }, "projectId": { "type": [ "string", "null" ] } }, "required": [ "sessionId" ], "description": "Update the project association for a session.", "x-side": "agent", "x-method": "_goose/unstable/session/project/update" }, "RenameSessionRequest_unstable": { "type": "object", "properties": { "sessionId": { "type": "string" }, "title": { "type": "string" } }, "required": [ "sessionId", "title" ], "description": "Rename a session.", "x-side": "agent", "x-method": "_goose/unstable/session/rename" }, "ArchiveSessionRequest_unstable": { "type": "object", "properties": { "sessionId": { "type": "string" } }, "required": [ "sessionId" ], "description": "Archive a session (soft delete).", "x-side": "agent", "x-method": "_goose/unstable/session/archive" }, "UnarchiveSessionRequest_unstable": { "type": "object", "properties": { "sessionId": { "type": "string" } }, "required": [ "sessionId" ], "description": "Unarchive a previously archived session.", "x-side": "agent", "x-method": "_goose/unstable/session/unarchive" }, "CreateSourceRequest_unstable": { "type": "object", "properties": { "type": { "$ref": "#/$defs/SourceType" }, "name": { "type": "string" }, "description": { "type": "string" }, "content": { "type": "string" }, "target": { "$ref": "#/$defs/SourceScope" }, "properties": { "type": "object", "additionalProperties": {}, "description": "Arbitrary key/value metadata." } }, "required": [ "type", "name", "description", "content", "target" ], "description": "Create a new source in an explicit target scope (global or project-scoped).", "x-side": "agent", "x-method": "_goose/unstable/sources/create" }, "SourceType": { "type": "string", "enum": [ "skill", "builtinSkill", "recipe", "subrecipe", "agent", "project" ], "description": "The type of source entity." }, "SourceScope": { "oneOf": [ { "type": "object", "properties": { "scope": { "type": "string", "const": "global" } }, "required": [ "scope" ] }, { "type": "object", "properties": { "projectDir": { "type": "string" }, "scope": { "type": "string", "const": "projectDir" } }, "required": [ "scope", "projectDir" ] }, { "type": "object", "properties": { "projectId": { "type": "string" }, "scope": { "type": "string", "const": "projectId" } }, "required": [ "scope", "projectId" ] } ], "description": "Target scope for creating or importing sources." }, "CreateSourceResponse_unstable": { "type": "object", "properties": { "source": { "$ref": "#/$defs/SourceEntry" } }, "required": [ "source" ], "x-side": "agent", "x-method": "_goose/unstable/sources/create" }, "SourceEntry": { "type": "object", "properties": { "type": { "$ref": "#/$defs/SourceType" }, "name": { "type": "string" }, "description": { "type": "string" }, "content": { "type": "string" }, "path": { "type": "string", "description": "Stable on-disk path identifying this source. Pass it back to\nupdate/delete/export to operate on this entry. Skills use the directory\ncontaining `SKILL.md`; projects use the project file path; built-in\nskills use `builtin://skills/` synthetic paths." }, "global": { "type": "boolean", "description": "True when the source lives in the user's global sources directory; false\nwhen it lives inside a specific project." }, "writable": { "type": "boolean", "description": "True when this source can be modified through source CRUD methods.\nClient-provided bundled sources are returned as read-only.", "default": false }, "supportingFiles": { "type": "array", "items": { "type": "string" }, "description": "Paths (absolute) of additional files that live alongside the source.\nOnly skills currently populate this; empty for other source types." }, "properties": { "type": "object", "additionalProperties": {}, "description": "Arbitrary key/value pairs for type-specific metadata (e.g. icon, color,\npreferredProvider for projects). Stored in the frontmatter." } }, "required": [ "type", "name", "description", "content", "path", "global" ], "description": "A source discovered by Goose. Filesystem sources use an on-disk path;\nbuilt-in sources use a stable synthetic path. Sources may be either\n`global` (shared across all projects) or project-specific." }, "ListSourcesRequest_unstable": { "type": "object", "properties": { "type": { "anyOf": [ { "$ref": "#/$defs/SourceType" }, { "type": "null" } ] }, "projectDir": { "type": [ "string", "null" ] }, "includeProjectSources": { "type": "boolean", "description": "When true, also scan the working directories of all known projects for\nproject-scoped sources (e.g. skills stored under `{workingDir}/.agents/skills/`).", "default": false } }, "description": "List discovered sources.\n\nIf `type` is omitted or `skill`, this lists filesystem/plugin skills only.\nBoth global and project-scoped skills are included when `project_dir` is\nset. If `type` is `builtinSkill`, this lists shipped read-only built-in\nskills.", "x-side": "agent", "x-method": "_goose/unstable/sources/list" }, "ListSourcesResponse_unstable": { "type": "object", "properties": { "sources": { "type": "array", "items": { "$ref": "#/$defs/SourceEntry" } } }, "required": [ "sources" ], "x-side": "agent", "x-method": "_goose/unstable/sources/list" }, "UpdateSourceRequest_unstable": { "type": "object", "properties": { "type": { "$ref": "#/$defs/SourceType" }, "path": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "content": { "type": "string" }, "properties": { "type": [ "object", "null" ], "additionalProperties": {}, "description": "When `Some`, replaces all stored properties on the source. When\n`None` (or omitted), the source's existing properties are\npreserved. Callers that don't model the full property bag (e.g.\nthe skills editor, which only edits name/description/content)\nshould omit this so per-skill metadata isn't silently erased." } }, "required": [ "type", "path", "name", "description", "content" ], "description": "Update an existing source's name, description, and content by absolute path.", "x-side": "agent", "x-method": "_goose/unstable/sources/update" }, "UpdateSourceResponse_unstable": { "type": "object", "properties": { "source": { "$ref": "#/$defs/SourceEntry" } }, "required": [ "source" ], "x-side": "agent", "x-method": "_goose/unstable/sources/update" }, "DeleteSourceRequest_unstable": { "type": "object", "properties": { "type": { "$ref": "#/$defs/SourceType" }, "path": { "type": "string" } }, "required": [ "type", "path" ], "description": "Delete a source and its on-disk directory by absolute path.", "x-side": "agent", "x-method": "_goose/unstable/sources/delete" }, "ExportSourceRequest_unstable": { "type": "object", "properties": { "type": { "$ref": "#/$defs/SourceType" }, "path": { "type": "string" } }, "required": [ "type", "path" ], "description": "Export a source at an absolute path as a portable JSON payload.", "x-side": "agent", "x-method": "_goose/unstable/sources/export" }, "ExportSourceResponse_unstable": { "type": "object", "properties": { "json": { "type": "string" }, "filename": { "type": "string" } }, "required": [ "json", "filename" ], "x-side": "agent", "x-method": "_goose/unstable/sources/export" }, "ImportSourcesRequest_unstable": { "type": "object", "properties": { "data": { "type": "string" }, "target": { "$ref": "#/$defs/SourceScope" } }, "required": [ "data", "target" ], "description": "Import a source from a JSON export payload produced by `_goose/unstable/sources/export`.\nThe imported source is written into the explicit target scope; on name\ncollisions a `-imported` suffix is appended.", "x-side": "agent", "x-method": "_goose/unstable/sources/import" }, "ImportSourcesResponse_unstable": { "type": "object", "properties": { "sources": { "type": "array", "items": { "$ref": "#/$defs/SourceEntry" } } }, "required": [ "sources" ], "x-side": "agent", "x-method": "_goose/unstable/sources/import" }, "DictationTranscribeRequest_unstable": { "type": "object", "properties": { "audio": { "type": "string", "description": "Base64-encoded audio data" }, "mimeType": { "type": "string", "description": "MIME type (e.g. \"audio/wav\", \"audio/webm\")" }, "provider": { "type": "string", "description": "Provider to use: \"openai\", \"groq\", \"elevenlabs\", or \"local\"" } }, "required": [ "audio", "mimeType", "provider" ], "description": "Transcribe audio via a dictation provider.", "x-side": "agent", "x-method": "_goose/unstable/dictation/transcribe" }, "DictationTranscribeResponse_unstable": { "type": "object", "properties": { "text": { "type": "string" } }, "required": [ "text" ], "description": "Transcription result.", "x-side": "agent", "x-method": "_goose/unstable/dictation/transcribe" }, "DictationConfigRequest_unstable": { "type": "object", "description": "Get the configuration status of all dictation providers.", "x-side": "agent", "x-method": "_goose/unstable/dictation/config" }, "DictationConfigResponse_unstable": { "type": "object", "properties": { "providers": { "type": "object", "additionalProperties": { "$ref": "#/$defs/DictationProviderStatusEntry" } } }, "required": [ "providers" ], "description": "Dictation config response — map of provider name to status.", "x-side": "agent", "x-method": "_goose/unstable/dictation/config" }, "DictationProviderStatusEntry": { "type": "object", "properties": { "configured": { "type": "boolean" }, "host": { "type": [ "string", "null" ] }, "description": { "type": "string" }, "usesProviderConfig": { "type": "boolean" }, "settingsPath": { "type": [ "string", "null" ] }, "configKey": { "type": [ "string", "null" ] }, "modelConfigKey": { "type": [ "string", "null" ] }, "defaultModel": { "type": [ "string", "null" ] }, "selectedModel": { "type": [ "string", "null" ] }, "availableModels": { "type": "array", "items": { "$ref": "#/$defs/DictationModelOption" }, "default": [] } }, "required": [ "configured", "description", "usesProviderConfig" ], "description": "Per-provider configuration status." }, "DictationModelOption": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" }, "description": { "type": "string" } }, "required": [ "id", "label", "description" ] }, "DictationSecretSaveRequest_unstable": { "type": "object", "properties": { "provider": { "type": "string" }, "value": { "type": "string" } }, "required": [ "provider", "value" ], "description": "Set a dictation provider secret value.", "x-side": "agent", "x-method": "_goose/unstable/dictation/secret/save" }, "DictationSecretDeleteRequest_unstable": { "type": "object", "properties": { "provider": { "type": "string" } }, "required": [ "provider" ], "description": "Remove a dictation provider secret value.", "x-side": "agent", "x-method": "_goose/unstable/dictation/secret/delete" }, "DictationModelsListRequest_unstable": { "type": "object", "description": "List available local Whisper models with their download status.", "x-side": "agent", "x-method": "_goose/unstable/dictation/models/list" }, "DictationModelsListResponse_unstable": { "type": "object", "properties": { "models": { "type": "array", "items": { "$ref": "#/$defs/DictationLocalModelStatus" } } }, "required": [ "models" ], "x-side": "agent", "x-method": "_goose/unstable/dictation/models/list" }, "DictationLocalModelStatus": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" }, "description": { "type": "string" }, "sizeMb": { "type": "integer", "minimum": 0 }, "downloaded": { "type": "boolean" }, "downloadInProgress": { "type": "boolean" } }, "required": [ "id", "label", "description", "sizeMb", "downloaded", "downloadInProgress" ] }, "DictationModelDownloadRequest_unstable": { "type": "object", "properties": { "modelId": { "type": "string" } }, "required": [ "modelId" ], "description": "Kick off a background download of a local Whisper model.", "x-side": "agent", "x-method": "_goose/unstable/dictation/models/download" }, "DictationModelDownloadProgressRequest_unstable": { "type": "object", "properties": { "modelId": { "type": "string" } }, "required": [ "modelId" ], "description": "Poll the progress of an in-flight download.", "x-side": "agent", "x-method": "_goose/unstable/dictation/models/download/progress" }, "DictationModelDownloadProgressResponse_unstable": { "type": "object", "properties": { "progress": { "anyOf": [ { "$ref": "#/$defs/DictationDownloadProgress" }, { "type": "null" } ], "description": "None when no download is active for this model id." } }, "x-side": "agent", "x-method": "_goose/unstable/dictation/models/download/progress" }, "DictationDownloadProgress": { "type": "object", "properties": { "bytesDownloaded": { "type": "integer", "minimum": 0 }, "totalBytes": { "type": "integer", "minimum": 0 }, "progressPercent": { "type": "number", "format": "float" }, "status": { "type": "string", "description": "serde lowercase of DownloadStatus: \"downloading\" | \"completed\" | \"failed\" | \"cancelled\"" }, "error": { "type": [ "string", "null" ] } }, "required": [ "bytesDownloaded", "totalBytes", "progressPercent", "status" ] }, "DictationModelCancelRequest_unstable": { "type": "object", "properties": { "modelId": { "type": "string" } }, "required": [ "modelId" ], "description": "Cancel an in-flight download.", "x-side": "agent", "x-method": "_goose/unstable/dictation/models/cancel" }, "DictationModelDeleteRequest_unstable": { "type": "object", "properties": { "modelId": { "type": "string" } }, "required": [ "modelId" ], "description": "Delete a downloaded local Whisper model from disk.", "x-side": "agent", "x-method": "_goose/unstable/dictation/models/delete" }, "DictationModelSelectRequest_unstable": { "type": "object", "properties": { "provider": { "type": "string" }, "modelId": { "type": "string" } }, "required": [ "provider", "modelId" ], "description": "Persist the user's model selection for a given provider.", "x-side": "agent", "x-method": "_goose/unstable/dictation/models/select" }, "GooseSessionNotification_unstable": { "type": "object", "properties": { "sessionId": { "type": "string" }, "update": { "$ref": "#/$defs/GooseSessionUpdate" } }, "required": [ "sessionId", "update" ], "description": "Goose-custom session update notification — a parallel to ACP's\n`session/update` carrying goose-specific update variants.", "x-side": "agent", "x-method": "_goose/unstable/session/update" }, "GooseSessionUpdate": { "oneOf": [ { "$ref": "#/$defs/SessionUsageUpdate", "type": "object", "properties": { "sessionUpdate": { "type": "string", "const": "usage_update" } }, "required": [ "sessionUpdate" ] }, { "$ref": "#/$defs/StatusMessageUpdate", "type": "object", "properties": { "sessionUpdate": { "type": "string", "const": "status_message" } }, "required": [ "sessionUpdate" ] }, { "$ref": "#/$defs/InteractionUpdate", "type": "object", "properties": { "sessionUpdate": { "type": "string", "const": "interaction_update" } }, "required": [ "sessionUpdate" ] } ], "description": "Discriminated union of goose-specific session update payloads.\nVariant tag matches ACP's convention (`sessionUpdate: \"\"`).\n\n`discriminator.mapping` is what makes TS codegen (`@hey-api/openapi-ts`)\nemit the correct snake_case tag value even when this enum has a single\nvariant. Add a mapping entry per variant.", "discriminator": { "propertyName": "sessionUpdate", "mapping": { "usage_update": "#/$defs/SessionUsageUpdate", "status_message": "#/$defs/StatusMessageUpdate", "interaction_update": "#/$defs/InteractionUpdate" } } }, "SessionUsageUpdate": { "type": "object", "properties": { "used": { "type": "integer", "minimum": 0 }, "contextLimit": { "type": "integer", "minimum": 0 }, "accumulatedInputTokens": { "type": "integer", "minimum": 0 }, "accumulatedOutputTokens": { "type": "integer", "minimum": 0 }, "accumulatedCost": { "type": [ "number", "null" ], "format": "double" } }, "required": [ "used", "contextLimit", "accumulatedInputTokens", "accumulatedOutputTokens" ], "description": "Streaming context-window usage update for a session." }, "StatusMessage": { "oneOf": [ { "type": "object", "properties": { "message": { "type": "string" }, "type": { "type": "string", "const": "notice" } }, "required": [ "type", "message" ] }, { "type": "object", "properties": { "message": { "type": "string" }, "type": { "type": "string", "const": "progress" } }, "required": [ "type", "message" ] } ] }, "StatusMessageUpdate": { "type": "object", "properties": { "status": { "$ref": "#/$defs/StatusMessage" } }, "required": [ "status" ], "description": "Live UI/session status. This is not conversation transcript content, and\nshould not be persisted or replayed as history." }, "Interaction": { "oneOf": [ { "type": "object", "properties": { "id": { "type": "string" }, "state": { "$ref": "#/$defs/InteractionState" }, "message": { "type": [ "string", "null" ] }, "requestedSchema": {}, "type": { "type": "string", "const": "elicitation" } }, "required": [ "type", "id", "state" ] } ] }, "InteractionState": { "type": "string", "enum": [ "pending", "submitted" ] }, "InteractionUpdate": { "type": "object", "properties": { "interaction": { "$ref": "#/$defs/Interaction" }, "_meta": {} }, "required": [ "interaction" ] }, "ExtRequest": { "properties": { "id": { "type": "string" }, "method": { "type": "string" }, "params": { "anyOf": [ { "anyOf": [ { "allOf": [ { "$ref": "#/$defs/AddExtensionRequest_unstable" } ], "description": "Params for _goose/unstable/session/extensions/add", "title": "AddExtensionRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/RemoveExtensionRequest_unstable" } ], "description": "Params for _goose/unstable/session/extensions/remove", "title": "RemoveExtensionRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/GetToolsRequest_unstable" } ], "description": "Params for _goose/unstable/tools/list", "title": "GetToolsRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/GooseToolCallRequest_unstable" } ], "description": "Params for _goose/unstable/tools/call", "title": "GooseToolCallRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/ReadResourceRequest_unstable" } ], "description": "Params for _goose/unstable/resources/read", "title": "ReadResourceRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/UpdateWorkingDirRequest_unstable" } ], "description": "Params for _goose/unstable/session/working-dir/update", "title": "UpdateWorkingDirRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/SetSessionSystemPromptRequest_unstable" } ], "description": "Params for _goose/unstable/session/system-prompt/set", "title": "SetSessionSystemPromptRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/DeleteSessionRequest" } ], "description": "Params for session/delete", "title": "DeleteSessionRequest" }, { "allOf": [ { "$ref": "#/$defs/GetConfigExtensionsRequest_unstable" } ], "description": "Params for _goose/unstable/config/extensions/list", "title": "GetConfigExtensionsRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/GetAvailableExtensionsRequest_unstable" } ], "description": "Params for _goose/unstable/extensions/available", "title": "GetAvailableExtensionsRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/AddConfigExtensionRequest_unstable" } ], "description": "Params for _goose/unstable/config/extensions/add", "title": "AddConfigExtensionRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/RemoveConfigExtensionRequest_unstable" } ], "description": "Params for _goose/unstable/config/extensions/remove", "title": "RemoveConfigExtensionRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/SetConfigExtensionEnabledRequest_unstable" } ], "description": "Params for _goose/unstable/config/extensions/set-enabled", "title": "SetConfigExtensionEnabledRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/GetSessionExtensionsRequest_unstable" } ], "description": "Params for _goose/unstable/session/extensions/list", "title": "GetSessionExtensionsRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/ListProvidersRequest_unstable" } ], "description": "Params for _goose/unstable/providers/list", "title": "ListProvidersRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/ProviderSupportedModelsListRequest_unstable" } ], "description": "Params for _goose/unstable/providers/supported-models/list", "title": "ProviderSupportedModelsListRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/ProviderCatalogListRequest_unstable" } ], "description": "Params for _goose/unstable/providers/catalog/list", "title": "ProviderCatalogListRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/ProviderSetupCatalogListRequest_unstable" } ], "description": "Params for _goose/unstable/providers/setup/catalog/list", "title": "ProviderSetupCatalogListRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/ProviderCatalogTemplateRequest_unstable" } ], "description": "Params for _goose/unstable/providers/catalog/template", "title": "ProviderCatalogTemplateRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/CustomProviderCreateRequest_unstable" } ], "description": "Params for _goose/unstable/providers/custom/create", "title": "CustomProviderCreateRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/CustomProviderReadRequest_unstable" } ], "description": "Params for _goose/unstable/providers/custom/read", "title": "CustomProviderReadRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/CustomProviderUpdateRequest_unstable" } ], "description": "Params for _goose/unstable/providers/custom/update", "title": "CustomProviderUpdateRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/CustomProviderDeleteRequest_unstable" } ], "description": "Params for _goose/unstable/providers/custom/delete", "title": "CustomProviderDeleteRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/RefreshProviderInventoryRequest_unstable" } ], "description": "Params for _goose/unstable/providers/inventory/refresh", "title": "RefreshProviderInventoryRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/ProviderConfigReadRequest_unstable" } ], "description": "Params for _goose/unstable/providers/config/read", "title": "ProviderConfigReadRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/ProviderConfigStatusRequest_unstable" } ], "description": "Params for _goose/unstable/providers/config/status", "title": "ProviderConfigStatusRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/ProviderConfigSaveRequest_unstable" } ], "description": "Params for _goose/unstable/providers/config/save", "title": "ProviderConfigSaveRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/ProviderConfigDeleteRequest_unstable" } ], "description": "Params for _goose/unstable/providers/config/delete", "title": "ProviderConfigDeleteRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/ProviderConfigAuthenticateRequest_unstable" } ], "description": "Params for _goose/unstable/providers/config/authenticate", "title": "ProviderConfigAuthenticateRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/PreferencesReadRequest_unstable" } ], "description": "Params for _goose/unstable/preferences/read", "title": "PreferencesReadRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/PreferencesSaveRequest_unstable" } ], "description": "Params for _goose/unstable/preferences/save", "title": "PreferencesSaveRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/PreferencesRemoveRequest_unstable" } ], "description": "Params for _goose/unstable/preferences/remove", "title": "PreferencesRemoveRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/DefaultsReadRequest_unstable" } ], "description": "Params for _goose/unstable/defaults/read", "title": "DefaultsReadRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/DefaultsSaveRequest_unstable" } ], "description": "Params for _goose/unstable/defaults/save", "title": "DefaultsSaveRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/OnboardingImportScanRequest_unstable" } ], "description": "Params for _goose/unstable/onboarding/import/scan", "title": "OnboardingImportScanRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/OnboardingImportApplyRequest_unstable" } ], "description": "Params for _goose/unstable/onboarding/import/apply", "title": "OnboardingImportApplyRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/ExportSessionRequest_unstable" } ], "description": "Params for _goose/unstable/session/export", "title": "ExportSessionRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/ImportSessionRequest_unstable" } ], "description": "Params for _goose/unstable/session/import", "title": "ImportSessionRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/ElicitationRespondRequest_unstable" } ], "description": "Params for _goose/unstable/elicitation/respond", "title": "ElicitationRespondRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/UpdateSessionProjectRequest_unstable" } ], "description": "Params for _goose/unstable/session/project/update", "title": "UpdateSessionProjectRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/RenameSessionRequest_unstable" } ], "description": "Params for _goose/unstable/session/rename", "title": "RenameSessionRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/ArchiveSessionRequest_unstable" } ], "description": "Params for _goose/unstable/session/archive", "title": "ArchiveSessionRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/UnarchiveSessionRequest_unstable" } ], "description": "Params for _goose/unstable/session/unarchive", "title": "UnarchiveSessionRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/CreateSourceRequest_unstable" } ], "description": "Params for _goose/unstable/sources/create", "title": "CreateSourceRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/ListSourcesRequest_unstable" } ], "description": "Params for _goose/unstable/sources/list", "title": "ListSourcesRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/UpdateSourceRequest_unstable" } ], "description": "Params for _goose/unstable/sources/update", "title": "UpdateSourceRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/DeleteSourceRequest_unstable" } ], "description": "Params for _goose/unstable/sources/delete", "title": "DeleteSourceRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/ExportSourceRequest_unstable" } ], "description": "Params for _goose/unstable/sources/export", "title": "ExportSourceRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/ImportSourcesRequest_unstable" } ], "description": "Params for _goose/unstable/sources/import", "title": "ImportSourcesRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/DictationTranscribeRequest_unstable" } ], "description": "Params for _goose/unstable/dictation/transcribe", "title": "DictationTranscribeRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/DictationConfigRequest_unstable" } ], "description": "Params for _goose/unstable/dictation/config", "title": "DictationConfigRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/DictationSecretSaveRequest_unstable" } ], "description": "Params for _goose/unstable/dictation/secret/save", "title": "DictationSecretSaveRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/DictationSecretDeleteRequest_unstable" } ], "description": "Params for _goose/unstable/dictation/secret/delete", "title": "DictationSecretDeleteRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/DictationModelsListRequest_unstable" } ], "description": "Params for _goose/unstable/dictation/models/list", "title": "DictationModelsListRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/DictationModelDownloadRequest_unstable" } ], "description": "Params for _goose/unstable/dictation/models/download", "title": "DictationModelDownloadRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/DictationModelDownloadProgressRequest_unstable" } ], "description": "Params for _goose/unstable/dictation/models/download/progress", "title": "DictationModelDownloadProgressRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/DictationModelCancelRequest_unstable" } ], "description": "Params for _goose/unstable/dictation/models/cancel", "title": "DictationModelCancelRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/DictationModelDeleteRequest_unstable" } ], "description": "Params for _goose/unstable/dictation/models/delete", "title": "DictationModelDeleteRequest_unstable" }, { "allOf": [ { "$ref": "#/$defs/DictationModelSelectRequest_unstable" } ], "description": "Params for _goose/unstable/dictation/models/select", "title": "DictationModelSelectRequest_unstable" } ] }, { "description": "Untyped params", "type": [ "object", "null" ] } ] } }, "required": [ "id", "method" ], "type": "object", "x-docs-ignore": true }, "ExtResponse": { "anyOf": [ { "properties": { "id": { "type": "string" }, "result": { "anyOf": [ { "anyOf": [ { "allOf": [ { "$ref": "#/$defs/EmptyResponse" } ], "title": "EmptyResponse" }, { "allOf": [ { "$ref": "#/$defs/GetToolsResponse_unstable" } ], "title": "GetToolsResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/GooseToolCallResponse_unstable" } ], "title": "GooseToolCallResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/ReadResourceResponse_unstable" } ], "title": "ReadResourceResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/GetConfigExtensionsResponse_unstable" } ], "title": "GetConfigExtensionsResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/GetAvailableExtensionsResponse_unstable" } ], "title": "GetAvailableExtensionsResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/GetSessionExtensionsResponse_unstable" } ], "title": "GetSessionExtensionsResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/ListProvidersResponse_unstable" } ], "title": "ListProvidersResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/ProviderSupportedModelsListResponse_unstable" } ], "title": "ProviderSupportedModelsListResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/ProviderCatalogListResponse_unstable" } ], "title": "ProviderCatalogListResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/ProviderSetupCatalogListResponse_unstable" } ], "title": "ProviderSetupCatalogListResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/ProviderCatalogTemplateResponse_unstable" } ], "title": "ProviderCatalogTemplateResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/CustomProviderCreateResponse_unstable" } ], "title": "CustomProviderCreateResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/CustomProviderReadResponse_unstable" } ], "title": "CustomProviderReadResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/CustomProviderUpdateResponse_unstable" } ], "title": "CustomProviderUpdateResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/CustomProviderDeleteResponse_unstable" } ], "title": "CustomProviderDeleteResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/RefreshProviderInventoryResponse_unstable" } ], "title": "RefreshProviderInventoryResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/ProviderConfigReadResponse_unstable" } ], "title": "ProviderConfigReadResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/ProviderConfigStatusResponse_unstable" } ], "title": "ProviderConfigStatusResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/ProviderConfigChangeResponse_unstable" } ], "title": "ProviderConfigChangeResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/PreferencesReadResponse_unstable" } ], "title": "PreferencesReadResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/DefaultsReadResponse_unstable" } ], "title": "DefaultsReadResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/OnboardingImportScanResponse_unstable" } ], "title": "OnboardingImportScanResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/OnboardingImportApplyResponse_unstable" } ], "title": "OnboardingImportApplyResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/ExportSessionResponse_unstable" } ], "title": "ExportSessionResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/ImportSessionResponse_unstable" } ], "title": "ImportSessionResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/CreateSourceResponse_unstable" } ], "title": "CreateSourceResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/ListSourcesResponse_unstable" } ], "title": "ListSourcesResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/UpdateSourceResponse_unstable" } ], "title": "UpdateSourceResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/ExportSourceResponse_unstable" } ], "title": "ExportSourceResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/ImportSourcesResponse_unstable" } ], "title": "ImportSourcesResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/DictationTranscribeResponse_unstable" } ], "title": "DictationTranscribeResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/DictationConfigResponse_unstable" } ], "title": "DictationConfigResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/DictationModelsListResponse_unstable" } ], "title": "DictationModelsListResponse_unstable" }, { "allOf": [ { "$ref": "#/$defs/DictationModelDownloadProgressResponse_unstable" } ], "title": "DictationModelDownloadProgressResponse_unstable" } ] }, { "description": "Untyped result" } ] } }, "required": [ "id" ], "title": "Success", "type": "object" }, { "properties": { "error": { "type": "object", "properties": { "code": { "type": "integer" }, "message": { "type": "string" }, "data": {} }, "required": [ "code", "message" ] }, "id": { "type": "string" } }, "required": [ "id", "error" ], "title": "Error", "type": "object" } ], "x-docs-ignore": true }, "ExtNotification": { "properties": { "method": { "type": "string" }, "params": { "anyOf": [ { "anyOf": [ { "allOf": [ { "$ref": "#/$defs/GooseSessionNotification_unstable" } ], "description": "Params for _goose/unstable/session/update", "title": "GooseSessionNotification_unstable" } ] }, { "description": "Untyped params", "type": [ "object", "null" ] } ] } }, "required": [ "method" ], "type": "object", "x-docs-ignore": true } }, "anyOf": [ { "allOf": [ { "$ref": "#/$defs/ExtRequest" } ], "description": "Extension request (client → agent)", "title": "Request" }, { "allOf": [ { "$ref": "#/$defs/ExtResponse" } ], "description": "Extension response (agent → client)", "title": "Response" }, { "allOf": [ { "$ref": "#/$defs/ExtNotification" } ], "description": "Extension notification (agent → client, fire-and-forget)", "title": "Notification" } ] }