From 826906b5ca2d483123735c24c92dfb7bc778bbcf Mon Sep 17 00:00:00 2001 From: Jack Amadeo Date: Mon, 11 May 2026 15:57:14 -0400 Subject: [PATCH 1/8] protocol cleanup --- crates/goose-sdk/src/custom_requests.rs | 140 +++---- crates/goose/acp-meta.json | 108 +++--- crates/goose/acp-schema.json | 359 ++++++++++-------- crates/goose/src/acp/server/sources.rs | 37 +- .../tests/acp_custom_provider_methods_test.rs | 40 +- .../goose/tests/acp_custom_requests_test.rs | 58 +-- .../acp_secret_cache_invalidation_test.rs | 12 +- ui/goose2/src/features/chat/ui/McpAppView.tsx | 4 +- .../chat/ui/__tests__/McpAppView.test.tsx | 2 +- .../src/features/extensions/api/extensions.ts | 2 +- .../src/features/projects/api/projects.ts | 14 +- ui/goose2/src/features/skills/api/skills.ts | 7 +- .../src/shared/api/__tests__/agents.test.ts | 4 +- ui/goose2/src/shared/api/acp.ts | 2 +- ui/goose2/src/shared/api/acpApi.ts | 10 +- ui/goose2/src/shared/api/agents.ts | 4 +- ui/goose2/src/shared/api/dictation.ts | 2 +- ui/goose2/tests/e2e/fixtures/tauri-mock.ts | 32 +- ui/sdk/generate-schema.ts | 4 + ui/sdk/src/generated/client.gen.ts | 138 +++---- ui/sdk/src/generated/index.ts | 110 +++--- ui/sdk/src/generated/types.gen.ts | 30 +- ui/sdk/src/generated/zod.gen.ts | 35 +- 23 files changed, 615 insertions(+), 539 deletions(-) diff --git a/crates/goose-sdk/src/custom_requests.rs b/crates/goose-sdk/src/custom_requests.rs index e9626d45897e..d4031e8fbd99 100644 --- a/crates/goose-sdk/src/custom_requests.rs +++ b/crates/goose-sdk/src/custom_requests.rs @@ -23,7 +23,7 @@ pub struct CustomMethodSchema { /// Add an extension to an active session. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/extensions/add", response = EmptyResponse)] +#[request(method = "_goose/v1/session/extensions/add", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct AddExtensionRequest { pub session_id: String, @@ -34,7 +34,7 @@ pub struct AddExtensionRequest { /// Remove an extension from an active session. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/extensions/remove", response = EmptyResponse)] +#[request(method = "_goose/v1/session/extensions/remove", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct RemoveExtensionRequest { pub session_id: String, @@ -43,7 +43,7 @@ pub struct RemoveExtensionRequest { /// List all tools available in a session. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/tools", response = GetToolsResponse)] +#[request(method = "_goose/v1/tools/list", response = GetToolsResponse)] #[serde(rename_all = "camelCase")] pub struct GetToolsRequest { pub session_id: String, @@ -58,7 +58,7 @@ pub struct GetToolsResponse { /// Read a resource from an extension. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/resource/read", response = ReadResourceResponse)] +#[request(method = "_goose/v1/resources/read", response = ReadResourceResponse)] #[serde(rename_all = "camelCase")] pub struct ReadResourceRequest { pub session_id: String, @@ -76,7 +76,7 @@ pub struct ReadResourceResponse { /// Call a tool from an extension. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/tool/call", response = GooseToolCallResponse)] +#[request(method = "_goose/v1/tools/call", response = GooseToolCallResponse)] #[serde(rename_all = "camelCase")] pub struct GooseToolCallRequest { pub session_id: String, @@ -101,7 +101,7 @@ pub struct GooseToolCallResponse { /// Update the working directory for a session. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/working_dir/update", response = EmptyResponse)] +#[request(method = "_goose/v1/session/working-dir/update", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct UpdateWorkingDirRequest { pub session_id: String, @@ -118,7 +118,7 @@ pub struct DeleteSessionRequest { /// List configured extensions and any warnings. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/config/extensions", response = GetExtensionsResponse)] +#[request(method = "_goose/v1/config/extensions/list", response = GetExtensionsResponse)] pub struct GetExtensionsRequest {} /// List configured extensions and any warnings. @@ -131,7 +131,7 @@ pub struct GetExtensionsResponse { /// Persist a new extension to the user's global goose config. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/config/extensions/add", response = EmptyResponse)] +#[request(method = "_goose/v1/config/extensions/add", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct AddConfigExtensionRequest { pub name: String, @@ -146,7 +146,7 @@ pub struct AddConfigExtensionRequest { /// Remove a persisted extension from the user's global goose config. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/config/extensions/remove", response = EmptyResponse)] +#[request(method = "_goose/v1/config/extensions/remove", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct RemoveConfigExtensionRequest { pub config_key: String, @@ -154,7 +154,7 @@ pub struct RemoveConfigExtensionRequest { /// Toggle the `enabled` flag for a persisted extension in the user's global goose config. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/config/extensions/toggle", response = EmptyResponse)] +#[request(method = "_goose/v1/config/extensions/toggle", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct ToggleConfigExtensionRequest { pub config_key: String, @@ -162,7 +162,7 @@ pub struct ToggleConfigExtensionRequest { } #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/session/extensions", response = GetSessionExtensionsResponse)] +#[request(method = "_goose/v1/session/extensions/list", response = GetSessionExtensionsResponse)] #[serde(rename_all = "camelCase")] pub struct GetSessionExtensionsRequest { pub session_id: String, @@ -175,7 +175,7 @@ pub struct GetSessionExtensionsResponse { /// Read allowlisted user preferences. Empty `keys` means all supported preferences. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/preferences/read", response = PreferencesReadResponse)] +#[request(method = "_goose/v1/preferences/read", response = PreferencesReadResponse)] #[serde(rename_all = "camelCase")] pub struct PreferencesReadRequest { #[serde(default)] @@ -184,7 +184,7 @@ pub struct PreferencesReadRequest { /// Save allowlisted user preferences. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/preferences/save", response = EmptyResponse)] +#[request(method = "_goose/v1/preferences/save", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct PreferencesSaveRequest { #[serde(default)] @@ -193,7 +193,7 @@ pub struct PreferencesSaveRequest { /// Remove allowlisted user preferences. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/preferences/remove", response = EmptyResponse)] +#[request(method = "_goose/v1/preferences/remove", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct PreferencesRemoveRequest { #[serde(default)] @@ -226,7 +226,7 @@ pub struct PreferencesReadResponse { /// Read Goose default provider and model configuration. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/defaults/read", response = DefaultsReadResponse)] +#[request(method = "_goose/v1/defaults/read", response = DefaultsReadResponse)] #[serde(rename_all = "camelCase")] pub struct DefaultsReadRequest {} @@ -239,7 +239,7 @@ pub struct DefaultsReadResponse { /// Save Goose default provider and model configuration. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/defaults/save", response = DefaultsReadResponse)] +#[request(method = "_goose/v1/defaults/save", response = DefaultsReadResponse)] #[serde(rename_all = "camelCase")] pub struct DefaultsSaveRequest { pub provider_id: String, @@ -282,7 +282,7 @@ pub struct OnboardingImportCandidate { /// Scan for existing Goose and compatible app data that onboarding can import. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/onboarding/import/scan", + method = "_goose/v1/onboarding/import/scan", response = OnboardingImportScanResponse )] #[serde(rename_all = "camelCase")] @@ -301,7 +301,7 @@ pub struct OnboardingImportScanResponse { /// Import selected onboarding candidates. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/onboarding/import/apply", + method = "_goose/v1/onboarding/import/apply", response = OnboardingImportApplyResponse )] #[serde(rename_all = "camelCase")] @@ -325,7 +325,7 @@ pub struct OnboardingImportApplyResponse { /// Set a dictation provider secret value. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/dictation/secret/save", response = EmptyResponse)] +#[request(method = "_goose/v1/dictation/secret/save", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct DictationSecretSaveRequest { pub provider: String, @@ -334,7 +334,7 @@ pub struct DictationSecretSaveRequest { /// Remove a dictation provider secret value. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/dictation/secret/delete", response = EmptyResponse)] +#[request(method = "_goose/v1/dictation/secret/delete", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct DictationSecretDeleteRequest { pub provider: String, @@ -342,7 +342,7 @@ pub struct DictationSecretDeleteRequest { /// Update the project association for a session. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/session/update_project", response = EmptyResponse)] +#[request(method = "_goose/v1/session/project/update", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct UpdateSessionProjectRequest { pub session_id: String, @@ -351,7 +351,7 @@ pub struct UpdateSessionProjectRequest { /// Rename a session. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/session/rename", response = EmptyResponse)] +#[request(method = "_goose/v1/session/rename", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct RenameSessionRequest { pub session_id: String, @@ -360,7 +360,7 @@ pub struct RenameSessionRequest { /// Archive a session (soft delete). #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/session/archive", response = EmptyResponse)] +#[request(method = "_goose/v1/session/archive", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct ArchiveSessionRequest { pub session_id: String, @@ -368,7 +368,7 @@ pub struct ArchiveSessionRequest { /// Unarchive a previously archived session. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/session/unarchive", response = EmptyResponse)] +#[request(method = "_goose/v1/session/unarchive", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct UnarchiveSessionRequest { pub session_id: String, @@ -376,7 +376,7 @@ pub struct UnarchiveSessionRequest { /// Export a session as a JSON string. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/session/export", response = ExportSessionResponse)] +#[request(method = "_goose/v1/session/export", response = ExportSessionResponse)] #[serde(rename_all = "camelCase")] pub struct ExportSessionRequest { pub session_id: String, @@ -390,7 +390,7 @@ pub struct ExportSessionResponse { /// Import a session from a JSON string. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/session/import", response = ImportSessionResponse)] +#[request(method = "_goose/v1/session/import", response = ImportSessionResponse)] pub struct ImportSessionRequest { pub data: String, } @@ -449,7 +449,7 @@ pub struct ProviderConfigFieldUpdate { /// Read saved configuration field values for one provider. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/providers/config/read", + method = "_goose/v1/providers/config/read", response = ProviderConfigReadResponse )] #[serde(rename_all = "camelCase")] @@ -466,7 +466,7 @@ pub struct ProviderConfigReadResponse { /// Return provider configured statuses. Empty provider_ids means all providers. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/providers/config/status", + method = "_goose/v1/providers/config/status", response = ProviderConfigStatusResponse )] #[serde(rename_all = "camelCase")] @@ -484,7 +484,7 @@ pub struct ProviderConfigStatusResponse { /// Save provider configuration fields and start an inventory refresh when supported. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/providers/config/save", + method = "_goose/v1/providers/config/save", response = ProviderConfigChangeResponse )] #[serde(rename_all = "camelCase")] @@ -496,7 +496,7 @@ pub struct ProviderConfigSaveRequest { /// Delete provider configuration fields and start an inventory refresh when supported. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/providers/config/delete", + method = "_goose/v1/providers/config/delete", response = ProviderConfigChangeResponse )] #[serde(rename_all = "camelCase")] @@ -507,7 +507,7 @@ pub struct ProviderConfigDeleteRequest { /// Run a provider-owned native authentication flow and start an inventory refresh when supported. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/providers/config/authenticate", + method = "_goose/v1/providers/config/authenticate", response = ProviderConfigChangeResponse )] #[serde(rename_all = "camelCase")] @@ -636,7 +636,7 @@ pub struct ProviderTemplateDto { /// List custom-provider catalog entries. Omit `format` to list all formats. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/providers/catalog/list", + method = "_goose/v1/providers/catalog/list", response = ProviderCatalogListResponse )] #[serde(rename_all = "camelCase")] @@ -654,7 +654,7 @@ pub struct ProviderCatalogListResponse { /// List provider setup catalog entries #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/providers/setup/catalog/list", + method = "_goose/v1/providers/setup/catalog/list", response = ProviderSetupCatalogListResponse )] #[serde(rename_all = "camelCase")] @@ -669,7 +669,7 @@ pub struct ProviderSetupCatalogListResponse { /// Return the editable template for one catalog provider. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/providers/catalog/template", + method = "_goose/v1/providers/catalog/template", response = ProviderCatalogTemplateResponse )] #[serde(rename_all = "camelCase")] @@ -730,7 +730,7 @@ pub struct CustomProviderUpsertDto { /// Create a custom provider backed by Goose's declarative provider store. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/providers/custom/create", + method = "_goose/v1/providers/custom/create", response = CustomProviderCreateResponse )] #[serde(rename_all = "camelCase")] @@ -750,7 +750,7 @@ pub struct CustomProviderCreateResponse { /// Read a declarative provider config. Custom configs are editable; bundled configs are read-only. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/providers/custom/read", + method = "_goose/v1/providers/custom/read", response = CustomProviderReadResponse )] #[serde(rename_all = "camelCase")] @@ -769,7 +769,7 @@ pub struct CustomProviderReadResponse { /// Update a custom provider backed by Goose's declarative provider store. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/providers/custom/update", + method = "_goose/v1/providers/custom/update", response = CustomProviderUpdateResponse )] #[serde(rename_all = "camelCase")] @@ -790,7 +790,7 @@ pub struct CustomProviderUpdateResponse { /// Delete a custom provider from Goose's declarative provider store. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/providers/custom/delete", + method = "_goose/v1/providers/custom/delete", response = CustomProviderDeleteResponse )] #[serde(rename_all = "camelCase")] @@ -878,9 +878,25 @@ impl SourceEntry { } } +/// Target scope for creating or importing sources. +#[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema)] +#[serde(tag = "scope", rename_all = "camelCase")] +pub enum SourceScope { + #[default] + Global, + ProjectDir { + #[serde(rename = "projectDir")] + project_dir: String, + }, + ProjectId { + #[serde(rename = "projectId")] + project_id: String, + }, +} + /// Create a new source in an explicit target scope (global or project-scoped). #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/sources/create", response = CreateSourceResponse)] +#[request(method = "_goose/v1/sources/create", response = CreateSourceResponse)] #[serde(rename_all = "camelCase")] pub struct CreateSourceRequest { #[serde(rename = "type")] @@ -888,15 +904,7 @@ pub struct CreateSourceRequest { pub name: String, pub description: String, pub content: String, - pub global: bool, - /// Absolute path to the project root. Required when `global` is false. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub project_dir: Option, - /// Project source ID. When set with `global: false`, the backend resolves - /// the project's first working directory automatically. Takes precedence - /// over `project_dir`. - #[serde(default, skip_serializing_if = "Option::is_none")] - pub project_id: Option, + pub target: SourceScope, /// Arbitrary key/value metadata. #[serde(default, skip_serializing_if = "std::collections::HashMap::is_empty")] pub properties: std::collections::HashMap, @@ -915,7 +923,7 @@ pub struct CreateSourceResponse { /// set. If `type` is `builtinSkill`, this lists shipped read-only built-in /// skills. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/sources/list", response = ListSourcesResponse)] +#[request(method = "_goose/v1/sources/list", response = ListSourcesResponse)] #[serde(rename_all = "camelCase")] pub struct ListSourcesRequest { #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")] @@ -936,7 +944,7 @@ pub struct ListSourcesResponse { /// Update an existing source's name, description, and content by absolute path. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/sources/update", response = UpdateSourceResponse)] +#[request(method = "_goose/v1/sources/update", response = UpdateSourceResponse)] #[serde(rename_all = "camelCase")] pub struct UpdateSourceRequest { #[serde(rename = "type")] @@ -962,7 +970,7 @@ pub struct UpdateSourceResponse { /// Delete a source and its on-disk directory by absolute path. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/sources/delete", response = EmptyResponse)] +#[request(method = "_goose/v1/sources/delete", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct DeleteSourceRequest { #[serde(rename = "type")] @@ -972,7 +980,7 @@ pub struct DeleteSourceRequest { /// Export a source at an absolute path as a portable JSON payload. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/sources/export", response = ExportSourceResponse)] +#[request(method = "_goose/v1/sources/export", response = ExportSourceResponse)] #[serde(rename_all = "camelCase")] pub struct ExportSourceRequest { #[serde(rename = "type")] @@ -987,17 +995,15 @@ pub struct ExportSourceResponse { pub filename: String, } -/// Import a source from a JSON export payload produced by `_goose/sources/export`. +/// Import a source from a JSON export payload produced by `_goose/v1/sources/export`. /// The imported source is written into the explicit target scope; on name /// collisions a `-imported` suffix is appended. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/sources/import", response = ImportSourcesResponse)] +#[request(method = "_goose/v1/sources/import", response = ImportSourcesResponse)] #[serde(rename_all = "camelCase")] pub struct ImportSourcesRequest { pub data: String, - pub global: bool, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub project_dir: Option, + pub target: SourceScope, } #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcResponse)] @@ -1008,7 +1014,7 @@ pub struct ImportSourcesResponse { /// Transcribe audio via a dictation provider. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/dictation/transcribe", response = DictationTranscribeResponse)] +#[request(method = "_goose/v1/dictation/transcribe", response = DictationTranscribeResponse)] #[serde(rename_all = "camelCase")] pub struct DictationTranscribeRequest { /// Base64-encoded audio data @@ -1027,7 +1033,7 @@ pub struct DictationTranscribeResponse { /// Get the configuration status of all dictation providers. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/dictation/config", response = DictationConfigResponse)] +#[request(method = "_goose/v1/dictation/config", response = DictationConfigResponse)] pub struct DictationConfigRequest {} #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema)] @@ -1068,7 +1074,7 @@ pub struct DictationConfigResponse { /// List providers with setup metadata and the current model inventory snapshot. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/providers/list", response = ListProvidersResponse)] +#[request(method = "_goose/v1/providers/list", response = ListProvidersResponse)] #[serde(rename_all = "camelCase")] pub struct ListProvidersRequest { /// Only return entries for these providers. Empty means all. @@ -1085,7 +1091,7 @@ pub struct ListProvidersResponse { /// Trigger a background refresh of provider inventories. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/providers/inventory/refresh", + method = "_goose/v1/providers/inventory/refresh", response = RefreshProviderInventoryResponse )] #[serde(rename_all = "camelCase")] @@ -1196,7 +1202,7 @@ pub struct EmptyResponse {} /// List available local Whisper models with their download status. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/dictation/models/list", + method = "_goose/v1/dictation/models/list", response = DictationModelsListResponse )] #[serde(rename_all = "camelCase")] @@ -1221,7 +1227,7 @@ pub struct DictationLocalModelStatus { /// Kick off a background download of a local Whisper model. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/dictation/models/download", response = EmptyResponse)] +#[request(method = "_goose/v1/dictation/models/download", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct DictationModelDownloadRequest { pub model_id: String, @@ -1230,7 +1236,7 @@ pub struct DictationModelDownloadRequest { /// Poll the progress of an in-flight download. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/dictation/models/download/progress", + method = "_goose/v1/dictation/models/download/progress", response = DictationModelDownloadProgressResponse )] #[serde(rename_all = "camelCase")] @@ -1258,7 +1264,7 @@ pub struct DictationDownloadProgress { /// Cancel an in-flight download. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/dictation/models/cancel", response = EmptyResponse)] +#[request(method = "_goose/v1/dictation/models/cancel", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct DictationModelCancelRequest { pub model_id: String, @@ -1266,7 +1272,7 @@ pub struct DictationModelCancelRequest { /// Delete a downloaded local Whisper model from disk. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/dictation/models/delete", response = EmptyResponse)] +#[request(method = "_goose/v1/dictation/models/delete", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct DictationModelDeleteRequest { pub model_id: String, @@ -1274,7 +1280,7 @@ pub struct DictationModelDeleteRequest { /// Persist the user's model selection for a given provider. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/dictation/model/select", response = EmptyResponse)] +#[request(method = "_goose/v1/dictation/models/select", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct DictationModelSelectRequest { pub provider: String, diff --git a/crates/goose/acp-meta.json b/crates/goose/acp-meta.json index 1f78227fd311..610a40e2ff49 100644 --- a/crates/goose/acp-meta.json +++ b/crates/goose/acp-meta.json @@ -1,32 +1,32 @@ { "methods": [ { - "method": "_goose/extensions/add", + "method": "_goose/v1/session/extensions/add", "requestType": "AddExtensionRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/extensions/remove", + "method": "_goose/v1/session/extensions/remove", "requestType": "RemoveExtensionRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/tools", + "method": "_goose/v1/tools/list", "requestType": "GetToolsRequest", "responseType": "GetToolsResponse" }, { - "method": "_goose/tool/call", + "method": "_goose/v1/tools/call", "requestType": "GooseToolCallRequest", "responseType": "GooseToolCallResponse" }, { - "method": "_goose/resource/read", + "method": "_goose/v1/resources/read", "requestType": "ReadResourceRequest", "responseType": "ReadResourceResponse" }, { - "method": "_goose/working_dir/update", + "method": "_goose/v1/session/working-dir/update", "requestType": "UpdateWorkingDirRequest", "responseType": "EmptyResponse" }, @@ -36,242 +36,242 @@ "responseType": "EmptyResponse" }, { - "method": "_goose/config/extensions", + "method": "_goose/v1/config/extensions/list", "requestType": "GetExtensionsRequest", "responseType": "GetExtensionsResponse" }, { - "method": "_goose/config/extensions/add", + "method": "_goose/v1/config/extensions/add", "requestType": "AddConfigExtensionRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/config/extensions/remove", + "method": "_goose/v1/config/extensions/remove", "requestType": "RemoveConfigExtensionRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/config/extensions/toggle", + "method": "_goose/v1/config/extensions/toggle", "requestType": "ToggleConfigExtensionRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/session/extensions", + "method": "_goose/v1/session/extensions/list", "requestType": "GetSessionExtensionsRequest", "responseType": "GetSessionExtensionsResponse" }, { - "method": "_goose/providers/list", + "method": "_goose/v1/providers/list", "requestType": "ListProvidersRequest", "responseType": "ListProvidersResponse" }, { - "method": "_goose/providers/catalog/list", + "method": "_goose/v1/providers/catalog/list", "requestType": "ProviderCatalogListRequest", "responseType": "ProviderCatalogListResponse" }, { - "method": "_goose/providers/setup/catalog/list", + "method": "_goose/v1/providers/setup/catalog/list", "requestType": "ProviderSetupCatalogListRequest", "responseType": "ProviderSetupCatalogListResponse" }, { - "method": "_goose/providers/catalog/template", + "method": "_goose/v1/providers/catalog/template", "requestType": "ProviderCatalogTemplateRequest", "responseType": "ProviderCatalogTemplateResponse" }, { - "method": "_goose/providers/custom/create", + "method": "_goose/v1/providers/custom/create", "requestType": "CustomProviderCreateRequest", "responseType": "CustomProviderCreateResponse" }, { - "method": "_goose/providers/custom/read", + "method": "_goose/v1/providers/custom/read", "requestType": "CustomProviderReadRequest", "responseType": "CustomProviderReadResponse" }, { - "method": "_goose/providers/custom/update", + "method": "_goose/v1/providers/custom/update", "requestType": "CustomProviderUpdateRequest", "responseType": "CustomProviderUpdateResponse" }, { - "method": "_goose/providers/custom/delete", + "method": "_goose/v1/providers/custom/delete", "requestType": "CustomProviderDeleteRequest", "responseType": "CustomProviderDeleteResponse" }, { - "method": "_goose/providers/inventory/refresh", + "method": "_goose/v1/providers/inventory/refresh", "requestType": "RefreshProviderInventoryRequest", "responseType": "RefreshProviderInventoryResponse" }, { - "method": "_goose/providers/config/read", + "method": "_goose/v1/providers/config/read", "requestType": "ProviderConfigReadRequest", "responseType": "ProviderConfigReadResponse" }, { - "method": "_goose/providers/config/status", + "method": "_goose/v1/providers/config/status", "requestType": "ProviderConfigStatusRequest", "responseType": "ProviderConfigStatusResponse" }, { - "method": "_goose/providers/config/save", + "method": "_goose/v1/providers/config/save", "requestType": "ProviderConfigSaveRequest", "responseType": "ProviderConfigChangeResponse" }, { - "method": "_goose/providers/config/delete", + "method": "_goose/v1/providers/config/delete", "requestType": "ProviderConfigDeleteRequest", "responseType": "ProviderConfigChangeResponse" }, { - "method": "_goose/providers/config/authenticate", + "method": "_goose/v1/providers/config/authenticate", "requestType": "ProviderConfigAuthenticateRequest", "responseType": "ProviderConfigChangeResponse" }, { - "method": "_goose/preferences/read", + "method": "_goose/v1/preferences/read", "requestType": "PreferencesReadRequest", "responseType": "PreferencesReadResponse" }, { - "method": "_goose/preferences/save", + "method": "_goose/v1/preferences/save", "requestType": "PreferencesSaveRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/preferences/remove", + "method": "_goose/v1/preferences/remove", "requestType": "PreferencesRemoveRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/defaults/read", + "method": "_goose/v1/defaults/read", "requestType": "DefaultsReadRequest", "responseType": "DefaultsReadResponse" }, { - "method": "_goose/defaults/save", + "method": "_goose/v1/defaults/save", "requestType": "DefaultsSaveRequest", "responseType": "DefaultsReadResponse" }, { - "method": "_goose/onboarding/import/scan", + "method": "_goose/v1/onboarding/import/scan", "requestType": "OnboardingImportScanRequest", "responseType": "OnboardingImportScanResponse" }, { - "method": "_goose/onboarding/import/apply", + "method": "_goose/v1/onboarding/import/apply", "requestType": "OnboardingImportApplyRequest", "responseType": "OnboardingImportApplyResponse" }, { - "method": "_goose/session/export", + "method": "_goose/v1/session/export", "requestType": "ExportSessionRequest", "responseType": "ExportSessionResponse" }, { - "method": "_goose/session/import", + "method": "_goose/v1/session/import", "requestType": "ImportSessionRequest", "responseType": "ImportSessionResponse" }, { - "method": "_goose/session/update_project", + "method": "_goose/v1/session/project/update", "requestType": "UpdateSessionProjectRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/session/rename", + "method": "_goose/v1/session/rename", "requestType": "RenameSessionRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/session/archive", + "method": "_goose/v1/session/archive", "requestType": "ArchiveSessionRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/session/unarchive", + "method": "_goose/v1/session/unarchive", "requestType": "UnarchiveSessionRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/sources/create", + "method": "_goose/v1/sources/create", "requestType": "CreateSourceRequest", "responseType": "CreateSourceResponse" }, { - "method": "_goose/sources/list", + "method": "_goose/v1/sources/list", "requestType": "ListSourcesRequest", "responseType": "ListSourcesResponse" }, { - "method": "_goose/sources/update", + "method": "_goose/v1/sources/update", "requestType": "UpdateSourceRequest", "responseType": "UpdateSourceResponse" }, { - "method": "_goose/sources/delete", + "method": "_goose/v1/sources/delete", "requestType": "DeleteSourceRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/sources/export", + "method": "_goose/v1/sources/export", "requestType": "ExportSourceRequest", "responseType": "ExportSourceResponse" }, { - "method": "_goose/sources/import", + "method": "_goose/v1/sources/import", "requestType": "ImportSourcesRequest", "responseType": "ImportSourcesResponse" }, { - "method": "_goose/dictation/transcribe", + "method": "_goose/v1/dictation/transcribe", "requestType": "DictationTranscribeRequest", "responseType": "DictationTranscribeResponse" }, { - "method": "_goose/dictation/config", + "method": "_goose/v1/dictation/config", "requestType": "DictationConfigRequest", "responseType": "DictationConfigResponse" }, { - "method": "_goose/dictation/secret/save", + "method": "_goose/v1/dictation/secret/save", "requestType": "DictationSecretSaveRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/dictation/secret/delete", + "method": "_goose/v1/dictation/secret/delete", "requestType": "DictationSecretDeleteRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/dictation/models/list", + "method": "_goose/v1/dictation/models/list", "requestType": "DictationModelsListRequest", "responseType": "DictationModelsListResponse" }, { - "method": "_goose/dictation/models/download", + "method": "_goose/v1/dictation/models/download", "requestType": "DictationModelDownloadRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/dictation/models/download/progress", + "method": "_goose/v1/dictation/models/download/progress", "requestType": "DictationModelDownloadProgressRequest", "responseType": "DictationModelDownloadProgressResponse" }, { - "method": "_goose/dictation/models/cancel", + "method": "_goose/v1/dictation/models/cancel", "requestType": "DictationModelCancelRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/dictation/models/delete", + "method": "_goose/v1/dictation/models/delete", "requestType": "DictationModelDeleteRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/dictation/model/select", + "method": "_goose/v1/dictation/models/select", "requestType": "DictationModelSelectRequest", "responseType": "EmptyResponse" } diff --git a/crates/goose/acp-schema.json b/crates/goose/acp-schema.json index fcace1e3c593..53e00d9e9ef6 100644 --- a/crates/goose/acp-schema.json +++ b/crates/goose/acp-schema.json @@ -18,7 +18,7 @@ ], "description": "Add an extension to an active session.", "x-side": "agent", - "x-method": "_goose/extensions/add" + "x-method": "_goose/v1/session/extensions/add" }, "EmptyResponse": { "type": "object", @@ -41,7 +41,7 @@ ], "description": "Remove an extension from an active session.", "x-side": "agent", - "x-method": "_goose/extensions/remove" + "x-method": "_goose/v1/session/extensions/remove" }, "GetToolsRequest": { "type": "object", @@ -55,7 +55,7 @@ ], "description": "List all tools available in a session.", "x-side": "agent", - "x-method": "_goose/tools" + "x-method": "_goose/v1/tools/list" }, "GetToolsResponse": { "type": "object", @@ -71,7 +71,7 @@ ], "description": "Tools response.", "x-side": "agent", - "x-method": "_goose/tools" + "x-method": "_goose/v1/tools/list" }, "GooseToolCallRequest": { "type": "object", @@ -92,7 +92,7 @@ ], "description": "Call a tool from an extension.", "x-side": "agent", - "x-method": "_goose/tool/call" + "x-method": "_goose/v1/tools/call" }, "GooseToolCallResponse": { "type": "object", @@ -113,7 +113,7 @@ ], "description": "Tool call response.", "x-side": "agent", - "x-method": "_goose/tool/call" + "x-method": "_goose/v1/tools/call" }, "ReadResourceRequest": { "type": "object", @@ -135,7 +135,7 @@ ], "description": "Read a resource from an extension.", "x-side": "agent", - "x-method": "_goose/resource/read" + "x-method": "_goose/v1/resources/read" }, "ReadResourceResponse": { "type": "object", @@ -147,7 +147,7 @@ }, "description": "Resource read response.", "x-side": "agent", - "x-method": "_goose/resource/read" + "x-method": "_goose/v1/resources/read" }, "UpdateWorkingDirRequest": { "type": "object", @@ -165,7 +165,7 @@ ], "description": "Update the working directory for a session.", "x-side": "agent", - "x-method": "_goose/working_dir/update" + "x-method": "_goose/v1/session/working-dir/update" }, "DeleteSessionRequest": { "type": "object", @@ -185,7 +185,7 @@ "type": "object", "description": "List configured extensions and any warnings.", "x-side": "agent", - "x-method": "_goose/config/extensions" + "x-method": "_goose/v1/config/extensions/list" }, "GetExtensionsResponse": { "type": "object", @@ -208,7 +208,7 @@ ], "description": "List configured extensions and any warnings.", "x-side": "agent", - "x-method": "_goose/config/extensions" + "x-method": "_goose/v1/config/extensions/list" }, "AddConfigExtensionRequest": { "type": "object", @@ -230,7 +230,7 @@ ], "description": "Persist a new extension to the user's global goose config.", "x-side": "agent", - "x-method": "_goose/config/extensions/add" + "x-method": "_goose/v1/config/extensions/add" }, "RemoveConfigExtensionRequest": { "type": "object", @@ -244,7 +244,7 @@ ], "description": "Remove a persisted extension from the user's global goose config.", "x-side": "agent", - "x-method": "_goose/config/extensions/remove" + "x-method": "_goose/v1/config/extensions/remove" }, "ToggleConfigExtensionRequest": { "type": "object", @@ -262,7 +262,7 @@ ], "description": "Toggle the `enabled` flag for a persisted extension in the user's global goose config.", "x-side": "agent", - "x-method": "_goose/config/extensions/toggle" + "x-method": "_goose/v1/config/extensions/toggle" }, "GetSessionExtensionsRequest": { "type": "object", @@ -275,7 +275,7 @@ "sessionId" ], "x-side": "agent", - "x-method": "_goose/session/extensions" + "x-method": "_goose/v1/session/extensions/list" }, "GetSessionExtensionsResponse": { "type": "object", @@ -289,7 +289,7 @@ "extensions" ], "x-side": "agent", - "x-method": "_goose/session/extensions" + "x-method": "_goose/v1/session/extensions/list" }, "ListProvidersRequest": { "type": "object", @@ -305,7 +305,7 @@ }, "description": "List providers with setup metadata and the current model inventory snapshot.", "x-side": "agent", - "x-method": "_goose/providers/list" + "x-method": "_goose/v1/providers/list" }, "ListProvidersResponse": { "type": "object", @@ -322,7 +322,7 @@ ], "description": "Provider list response.", "x-side": "agent", - "x-method": "_goose/providers/list" + "x-method": "_goose/v1/providers/list" }, "ProviderInventoryEntryDto": { "type": "object", @@ -537,7 +537,7 @@ }, "description": "List custom-provider catalog entries. Omit `format` to list all formats.", "x-side": "agent", - "x-method": "_goose/providers/catalog/list" + "x-method": "_goose/v1/providers/catalog/list" }, "ProviderCatalogListResponse": { "type": "object", @@ -553,7 +553,7 @@ "providers" ], "x-side": "agent", - "x-method": "_goose/providers/catalog/list" + "x-method": "_goose/v1/providers/catalog/list" }, "ProviderTemplateCatalogEntryDto": { "type": "object", @@ -595,7 +595,7 @@ "type": "object", "description": "List provider setup catalog entries", "x-side": "agent", - "x-method": "_goose/providers/setup/catalog/list" + "x-method": "_goose/v1/providers/setup/catalog/list" }, "ProviderSetupCatalogListResponse": { "type": "object", @@ -611,7 +611,7 @@ "providers" ], "x-side": "agent", - "x-method": "_goose/providers/setup/catalog/list" + "x-method": "_goose/v1/providers/setup/catalog/list" }, "ProviderSetupCatalogEntryDto": { "type": "object", @@ -760,7 +760,7 @@ ], "description": "Return the editable template for one catalog provider.", "x-side": "agent", - "x-method": "_goose/providers/catalog/template" + "x-method": "_goose/v1/providers/catalog/template" }, "ProviderCatalogTemplateResponse": { "type": "object", @@ -773,7 +773,7 @@ "template" ], "x-side": "agent", - "x-method": "_goose/providers/catalog/template" + "x-method": "_goose/v1/providers/catalog/template" }, "ProviderTemplateDto": { "type": "object", @@ -930,7 +930,7 @@ ], "description": "Create a custom provider backed by Goose's declarative provider store.", "x-side": "agent", - "x-method": "_goose/providers/custom/create" + "x-method": "_goose/v1/providers/custom/create" }, "CustomProviderCreateResponse": { "type": "object", @@ -951,7 +951,7 @@ "refresh" ], "x-side": "agent", - "x-method": "_goose/providers/custom/create" + "x-method": "_goose/v1/providers/custom/create" }, "ProviderConfigStatusDto": { "type": "object", @@ -992,7 +992,7 @@ ], "description": "Refresh acknowledgement.", "x-side": "agent", - "x-method": "_goose/providers/inventory/refresh" + "x-method": "_goose/v1/providers/inventory/refresh" }, "RefreshProviderInventorySkipDto": { "type": "object", @@ -1030,7 +1030,7 @@ ], "description": "Read a declarative provider config. Custom configs are editable; bundled configs are read-only.", "x-side": "agent", - "x-method": "_goose/providers/custom/read" + "x-method": "_goose/v1/providers/custom/read" }, "CustomProviderReadResponse": { "type": "object", @@ -1051,7 +1051,7 @@ "status" ], "x-side": "agent", - "x-method": "_goose/providers/custom/read" + "x-method": "_goose/v1/providers/custom/read" }, "CustomProviderConfigDto": { "type": "object", @@ -1188,7 +1188,7 @@ ], "description": "Update a custom provider backed by Goose's declarative provider store.", "x-side": "agent", - "x-method": "_goose/providers/custom/update" + "x-method": "_goose/v1/providers/custom/update" }, "CustomProviderUpdateResponse": { "type": "object", @@ -1209,7 +1209,7 @@ "refresh" ], "x-side": "agent", - "x-method": "_goose/providers/custom/update" + "x-method": "_goose/v1/providers/custom/update" }, "CustomProviderDeleteRequest": { "type": "object", @@ -1223,7 +1223,7 @@ ], "description": "Delete a custom provider from Goose's declarative provider store.", "x-side": "agent", - "x-method": "_goose/providers/custom/delete" + "x-method": "_goose/v1/providers/custom/delete" }, "CustomProviderDeleteResponse": { "type": "object", @@ -1240,7 +1240,7 @@ "refresh" ], "x-side": "agent", - "x-method": "_goose/providers/custom/delete" + "x-method": "_goose/v1/providers/custom/delete" }, "RefreshProviderInventoryRequest": { "type": "object", @@ -1256,7 +1256,7 @@ }, "description": "Trigger a background refresh of provider inventories.", "x-side": "agent", - "x-method": "_goose/providers/inventory/refresh" + "x-method": "_goose/v1/providers/inventory/refresh" }, "ProviderConfigReadRequest": { "type": "object", @@ -1270,7 +1270,7 @@ ], "description": "Read saved configuration field values for one provider.", "x-side": "agent", - "x-method": "_goose/providers/config/read" + "x-method": "_goose/v1/providers/config/read" }, "ProviderConfigReadResponse": { "type": "object", @@ -1286,7 +1286,7 @@ "fields" ], "x-side": "agent", - "x-method": "_goose/providers/config/read" + "x-method": "_goose/v1/providers/config/read" }, "ProviderConfigFieldValueDto": { "type": "object", @@ -1331,7 +1331,7 @@ }, "description": "Return provider configured statuses. Empty provider_ids means all providers.", "x-side": "agent", - "x-method": "_goose/providers/config/status" + "x-method": "_goose/v1/providers/config/status" }, "ProviderConfigStatusResponse": { "type": "object", @@ -1347,7 +1347,7 @@ "statuses" ], "x-side": "agent", - "x-method": "_goose/providers/config/status" + "x-method": "_goose/v1/providers/config/status" }, "ProviderConfigSaveRequest": { "type": "object", @@ -1368,7 +1368,7 @@ ], "description": "Save provider configuration fields and start an inventory refresh when supported.", "x-side": "agent", - "x-method": "_goose/providers/config/save" + "x-method": "_goose/v1/providers/config/save" }, "ProviderConfigFieldUpdate": { "type": "object", @@ -1413,7 +1413,7 @@ ], "description": "Delete provider configuration fields and start an inventory refresh when supported.", "x-side": "agent", - "x-method": "_goose/providers/config/delete" + "x-method": "_goose/v1/providers/config/delete" }, "ProviderConfigAuthenticateRequest": { "type": "object", @@ -1427,7 +1427,7 @@ ], "description": "Run a provider-owned native authentication flow and start an inventory refresh when supported.", "x-side": "agent", - "x-method": "_goose/providers/config/authenticate" + "x-method": "_goose/v1/providers/config/authenticate" }, "PreferencesReadRequest": { "type": "object", @@ -1442,7 +1442,7 @@ }, "description": "Read allowlisted user preferences. Empty `keys` means all supported preferences.", "x-side": "agent", - "x-method": "_goose/preferences/read" + "x-method": "_goose/v1/preferences/read" }, "PreferenceKey": { "type": "string", @@ -1467,7 +1467,7 @@ "values" ], "x-side": "agent", - "x-method": "_goose/preferences/read" + "x-method": "_goose/v1/preferences/read" }, "PreferenceValue": { "type": "object", @@ -1496,7 +1496,7 @@ }, "description": "Save allowlisted user preferences.", "x-side": "agent", - "x-method": "_goose/preferences/save" + "x-method": "_goose/v1/preferences/save" }, "PreferencesRemoveRequest": { "type": "object", @@ -1511,13 +1511,13 @@ }, "description": "Remove allowlisted user preferences.", "x-side": "agent", - "x-method": "_goose/preferences/remove" + "x-method": "_goose/v1/preferences/remove" }, "DefaultsReadRequest": { "type": "object", "description": "Read Goose default provider and model configuration.", "x-side": "agent", - "x-method": "_goose/defaults/read" + "x-method": "_goose/v1/defaults/read" }, "DefaultsReadResponse": { "type": "object", @@ -1555,7 +1555,7 @@ ], "description": "Save Goose default provider and model configuration.", "x-side": "agent", - "x-method": "_goose/defaults/save" + "x-method": "_goose/v1/defaults/save" }, "OnboardingImportScanRequest": { "type": "object", @@ -1571,7 +1571,7 @@ }, "description": "Scan for existing Goose and compatible app data that onboarding can import.", "x-side": "agent", - "x-method": "_goose/onboarding/import/scan" + "x-method": "_goose/v1/onboarding/import/scan" }, "OnboardingImportSourceKind": { "type": "string", @@ -1595,7 +1595,7 @@ "candidates" ], "x-side": "agent", - "x-method": "_goose/onboarding/import/scan" + "x-method": "_goose/v1/onboarding/import/scan" }, "OnboardingImportCandidate": { "type": "object", @@ -1685,7 +1685,7 @@ }, "description": "Import selected onboarding candidates.", "x-side": "agent", - "x-method": "_goose/onboarding/import/apply" + "x-method": "_goose/v1/onboarding/import/apply" }, "OnboardingImportApplyResponse": { "type": "object", @@ -1719,7 +1719,7 @@ "skipped" ], "x-side": "agent", - "x-method": "_goose/onboarding/import/apply" + "x-method": "_goose/v1/onboarding/import/apply" }, "ExportSessionRequest": { "type": "object", @@ -1733,7 +1733,7 @@ ], "description": "Export a session as a JSON string.", "x-side": "agent", - "x-method": "_goose/session/export" + "x-method": "_goose/v1/session/export" }, "ExportSessionResponse": { "type": "object", @@ -1747,7 +1747,7 @@ ], "description": "Export session response — raw JSON of the goose session with `conversation`.", "x-side": "agent", - "x-method": "_goose/session/export" + "x-method": "_goose/v1/session/export" }, "ImportSessionRequest": { "type": "object", @@ -1761,7 +1761,7 @@ ], "description": "Import a session from a JSON string.", "x-side": "agent", - "x-method": "_goose/session/import" + "x-method": "_goose/v1/session/import" }, "ImportSessionResponse": { "type": "object", @@ -1792,7 +1792,7 @@ ], "description": "Import session response — metadata about the newly created session.", "x-side": "agent", - "x-method": "_goose/session/import" + "x-method": "_goose/v1/session/import" }, "UpdateSessionProjectRequest": { "type": "object", @@ -1812,7 +1812,7 @@ ], "description": "Update the project association for a session.", "x-side": "agent", - "x-method": "_goose/session/update_project" + "x-method": "_goose/v1/session/project/update" }, "RenameSessionRequest": { "type": "object", @@ -1830,7 +1830,7 @@ ], "description": "Rename a session.", "x-side": "agent", - "x-method": "_goose/session/rename" + "x-method": "_goose/v1/session/rename" }, "ArchiveSessionRequest": { "type": "object", @@ -1844,7 +1844,7 @@ ], "description": "Archive a session (soft delete).", "x-side": "agent", - "x-method": "_goose/session/archive" + "x-method": "_goose/v1/session/archive" }, "UnarchiveSessionRequest": { "type": "object", @@ -1858,7 +1858,7 @@ ], "description": "Unarchive a previously archived session.", "x-side": "agent", - "x-method": "_goose/session/unarchive" + "x-method": "_goose/v1/session/unarchive" }, "CreateSourceRequest": { "type": "object", @@ -1875,22 +1875,8 @@ "content": { "type": "string" }, - "global": { - "type": "boolean" - }, - "projectDir": { - "type": [ - "string", - "null" - ], - "description": "Absolute path to the project root. Required when `global` is false." - }, - "projectId": { - "type": [ - "string", - "null" - ], - "description": "Project source ID. When set with `global: false`, the backend resolves\nthe project's first working directory automatically. Takes precedence\nover `project_dir`." + "target": { + "$ref": "#/$defs/SourceScope" }, "properties": { "type": "object", @@ -1903,11 +1889,11 @@ "name", "description", "content", - "global" + "target" ], "description": "Create a new source in an explicit target scope (global or project-scoped).", "x-side": "agent", - "x-method": "_goose/sources/create" + "x-method": "_goose/v1/sources/create" }, "SourceType": { "type": "string", @@ -1921,6 +1907,55 @@ ], "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": { "type": "object", "properties": { @@ -1932,7 +1967,7 @@ "source" ], "x-side": "agent", - "x-method": "_goose/sources/create" + "x-method": "_goose/v1/sources/create" }, "SourceEntry": { "type": "object", @@ -2012,7 +2047,7 @@ }, "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/sources/list" + "x-method": "_goose/v1/sources/list" }, "ListSourcesResponse": { "type": "object", @@ -2028,7 +2063,7 @@ "sources" ], "x-side": "agent", - "x-method": "_goose/sources/list" + "x-method": "_goose/v1/sources/list" }, "UpdateSourceRequest": { "type": "object", @@ -2066,7 +2101,7 @@ ], "description": "Update an existing source's name, description, and content by absolute path.", "x-side": "agent", - "x-method": "_goose/sources/update" + "x-method": "_goose/v1/sources/update" }, "UpdateSourceResponse": { "type": "object", @@ -2079,7 +2114,7 @@ "source" ], "x-side": "agent", - "x-method": "_goose/sources/update" + "x-method": "_goose/v1/sources/update" }, "DeleteSourceRequest": { "type": "object", @@ -2097,7 +2132,7 @@ ], "description": "Delete a source and its on-disk directory by absolute path.", "x-side": "agent", - "x-method": "_goose/sources/delete" + "x-method": "_goose/v1/sources/delete" }, "ExportSourceRequest": { "type": "object", @@ -2115,7 +2150,7 @@ ], "description": "Export a source at an absolute path as a portable JSON payload.", "x-side": "agent", - "x-method": "_goose/sources/export" + "x-method": "_goose/v1/sources/export" }, "ExportSourceResponse": { "type": "object", @@ -2132,7 +2167,7 @@ "filename" ], "x-side": "agent", - "x-method": "_goose/sources/export" + "x-method": "_goose/v1/sources/export" }, "ImportSourcesRequest": { "type": "object", @@ -2140,23 +2175,17 @@ "data": { "type": "string" }, - "global": { - "type": "boolean" - }, - "projectDir": { - "type": [ - "string", - "null" - ] + "target": { + "$ref": "#/$defs/SourceScope" } }, "required": [ "data", - "global" + "target" ], - "description": "Import a source from a JSON export payload produced by `_goose/sources/export`.\nThe imported source is written into the explicit target scope; on name\ncollisions a `-imported` suffix is appended.", + "description": "Import a source from a JSON export payload produced by `_goose/v1/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/sources/import" + "x-method": "_goose/v1/sources/import" }, "ImportSourcesResponse": { "type": "object", @@ -2172,7 +2201,7 @@ "sources" ], "x-side": "agent", - "x-method": "_goose/sources/import" + "x-method": "_goose/v1/sources/import" }, "DictationTranscribeRequest": { "type": "object", @@ -2197,7 +2226,7 @@ ], "description": "Transcribe audio via a dictation provider.", "x-side": "agent", - "x-method": "_goose/dictation/transcribe" + "x-method": "_goose/v1/dictation/transcribe" }, "DictationTranscribeResponse": { "type": "object", @@ -2211,13 +2240,13 @@ ], "description": "Transcription result.", "x-side": "agent", - "x-method": "_goose/dictation/transcribe" + "x-method": "_goose/v1/dictation/transcribe" }, "DictationConfigRequest": { "type": "object", "description": "Get the configuration status of all dictation providers.", "x-side": "agent", - "x-method": "_goose/dictation/config" + "x-method": "_goose/v1/dictation/config" }, "DictationConfigResponse": { "type": "object", @@ -2234,7 +2263,7 @@ ], "description": "Dictation config response — map of provider name to status.", "x-side": "agent", - "x-method": "_goose/dictation/config" + "x-method": "_goose/v1/dictation/config" }, "DictationProviderStatusEntry": { "type": "object", @@ -2334,7 +2363,7 @@ ], "description": "Set a dictation provider secret value.", "x-side": "agent", - "x-method": "_goose/dictation/secret/save" + "x-method": "_goose/v1/dictation/secret/save" }, "DictationSecretDeleteRequest": { "type": "object", @@ -2348,13 +2377,13 @@ ], "description": "Remove a dictation provider secret value.", "x-side": "agent", - "x-method": "_goose/dictation/secret/delete" + "x-method": "_goose/v1/dictation/secret/delete" }, "DictationModelsListRequest": { "type": "object", "description": "List available local Whisper models with their download status.", "x-side": "agent", - "x-method": "_goose/dictation/models/list" + "x-method": "_goose/v1/dictation/models/list" }, "DictationModelsListResponse": { "type": "object", @@ -2370,7 +2399,7 @@ "models" ], "x-side": "agent", - "x-method": "_goose/dictation/models/list" + "x-method": "_goose/v1/dictation/models/list" }, "DictationLocalModelStatus": { "type": "object", @@ -2416,7 +2445,7 @@ ], "description": "Kick off a background download of a local Whisper model.", "x-side": "agent", - "x-method": "_goose/dictation/models/download" + "x-method": "_goose/v1/dictation/models/download" }, "DictationModelDownloadProgressRequest": { "type": "object", @@ -2430,7 +2459,7 @@ ], "description": "Poll the progress of an in-flight download.", "x-side": "agent", - "x-method": "_goose/dictation/models/download/progress" + "x-method": "_goose/v1/dictation/models/download/progress" }, "DictationModelDownloadProgressResponse": { "type": "object", @@ -2448,7 +2477,7 @@ } }, "x-side": "agent", - "x-method": "_goose/dictation/models/download/progress" + "x-method": "_goose/v1/dictation/models/download/progress" }, "DictationDownloadProgress": { "type": "object", @@ -2495,7 +2524,7 @@ ], "description": "Cancel an in-flight download.", "x-side": "agent", - "x-method": "_goose/dictation/models/cancel" + "x-method": "_goose/v1/dictation/models/cancel" }, "DictationModelDeleteRequest": { "type": "object", @@ -2509,7 +2538,7 @@ ], "description": "Delete a downloaded local Whisper model from disk.", "x-side": "agent", - "x-method": "_goose/dictation/models/delete" + "x-method": "_goose/v1/dictation/models/delete" }, "DictationModelSelectRequest": { "type": "object", @@ -2527,7 +2556,7 @@ ], "description": "Persist the user's model selection for a given provider.", "x-side": "agent", - "x-method": "_goose/dictation/model/select" + "x-method": "_goose/v1/dictation/models/select" }, "ExtRequest": { "properties": { @@ -2547,7 +2576,7 @@ "$ref": "#/$defs/AddExtensionRequest" } ], - "description": "Params for _goose/extensions/add", + "description": "Params for _goose/v1/session/extensions/add", "title": "AddExtensionRequest" }, { @@ -2556,7 +2585,7 @@ "$ref": "#/$defs/RemoveExtensionRequest" } ], - "description": "Params for _goose/extensions/remove", + "description": "Params for _goose/v1/session/extensions/remove", "title": "RemoveExtensionRequest" }, { @@ -2565,7 +2594,7 @@ "$ref": "#/$defs/GetToolsRequest" } ], - "description": "Params for _goose/tools", + "description": "Params for _goose/v1/tools/list", "title": "GetToolsRequest" }, { @@ -2574,7 +2603,7 @@ "$ref": "#/$defs/GooseToolCallRequest" } ], - "description": "Params for _goose/tool/call", + "description": "Params for _goose/v1/tools/call", "title": "GooseToolCallRequest" }, { @@ -2583,7 +2612,7 @@ "$ref": "#/$defs/ReadResourceRequest" } ], - "description": "Params for _goose/resource/read", + "description": "Params for _goose/v1/resources/read", "title": "ReadResourceRequest" }, { @@ -2592,7 +2621,7 @@ "$ref": "#/$defs/UpdateWorkingDirRequest" } ], - "description": "Params for _goose/working_dir/update", + "description": "Params for _goose/v1/session/working-dir/update", "title": "UpdateWorkingDirRequest" }, { @@ -2610,7 +2639,7 @@ "$ref": "#/$defs/GetExtensionsRequest" } ], - "description": "Params for _goose/config/extensions", + "description": "Params for _goose/v1/config/extensions/list", "title": "GetExtensionsRequest" }, { @@ -2619,7 +2648,7 @@ "$ref": "#/$defs/AddConfigExtensionRequest" } ], - "description": "Params for _goose/config/extensions/add", + "description": "Params for _goose/v1/config/extensions/add", "title": "AddConfigExtensionRequest" }, { @@ -2628,7 +2657,7 @@ "$ref": "#/$defs/RemoveConfigExtensionRequest" } ], - "description": "Params for _goose/config/extensions/remove", + "description": "Params for _goose/v1/config/extensions/remove", "title": "RemoveConfigExtensionRequest" }, { @@ -2637,7 +2666,7 @@ "$ref": "#/$defs/ToggleConfigExtensionRequest" } ], - "description": "Params for _goose/config/extensions/toggle", + "description": "Params for _goose/v1/config/extensions/toggle", "title": "ToggleConfigExtensionRequest" }, { @@ -2646,7 +2675,7 @@ "$ref": "#/$defs/GetSessionExtensionsRequest" } ], - "description": "Params for _goose/session/extensions", + "description": "Params for _goose/v1/session/extensions/list", "title": "GetSessionExtensionsRequest" }, { @@ -2655,7 +2684,7 @@ "$ref": "#/$defs/ListProvidersRequest" } ], - "description": "Params for _goose/providers/list", + "description": "Params for _goose/v1/providers/list", "title": "ListProvidersRequest" }, { @@ -2664,7 +2693,7 @@ "$ref": "#/$defs/ProviderCatalogListRequest" } ], - "description": "Params for _goose/providers/catalog/list", + "description": "Params for _goose/v1/providers/catalog/list", "title": "ProviderCatalogListRequest" }, { @@ -2673,7 +2702,7 @@ "$ref": "#/$defs/ProviderSetupCatalogListRequest" } ], - "description": "Params for _goose/providers/setup/catalog/list", + "description": "Params for _goose/v1/providers/setup/catalog/list", "title": "ProviderSetupCatalogListRequest" }, { @@ -2682,7 +2711,7 @@ "$ref": "#/$defs/ProviderCatalogTemplateRequest" } ], - "description": "Params for _goose/providers/catalog/template", + "description": "Params for _goose/v1/providers/catalog/template", "title": "ProviderCatalogTemplateRequest" }, { @@ -2691,7 +2720,7 @@ "$ref": "#/$defs/CustomProviderCreateRequest" } ], - "description": "Params for _goose/providers/custom/create", + "description": "Params for _goose/v1/providers/custom/create", "title": "CustomProviderCreateRequest" }, { @@ -2700,7 +2729,7 @@ "$ref": "#/$defs/CustomProviderReadRequest" } ], - "description": "Params for _goose/providers/custom/read", + "description": "Params for _goose/v1/providers/custom/read", "title": "CustomProviderReadRequest" }, { @@ -2709,7 +2738,7 @@ "$ref": "#/$defs/CustomProviderUpdateRequest" } ], - "description": "Params for _goose/providers/custom/update", + "description": "Params for _goose/v1/providers/custom/update", "title": "CustomProviderUpdateRequest" }, { @@ -2718,7 +2747,7 @@ "$ref": "#/$defs/CustomProviderDeleteRequest" } ], - "description": "Params for _goose/providers/custom/delete", + "description": "Params for _goose/v1/providers/custom/delete", "title": "CustomProviderDeleteRequest" }, { @@ -2727,7 +2756,7 @@ "$ref": "#/$defs/RefreshProviderInventoryRequest" } ], - "description": "Params for _goose/providers/inventory/refresh", + "description": "Params for _goose/v1/providers/inventory/refresh", "title": "RefreshProviderInventoryRequest" }, { @@ -2736,7 +2765,7 @@ "$ref": "#/$defs/ProviderConfigReadRequest" } ], - "description": "Params for _goose/providers/config/read", + "description": "Params for _goose/v1/providers/config/read", "title": "ProviderConfigReadRequest" }, { @@ -2745,7 +2774,7 @@ "$ref": "#/$defs/ProviderConfigStatusRequest" } ], - "description": "Params for _goose/providers/config/status", + "description": "Params for _goose/v1/providers/config/status", "title": "ProviderConfigStatusRequest" }, { @@ -2754,7 +2783,7 @@ "$ref": "#/$defs/ProviderConfigSaveRequest" } ], - "description": "Params for _goose/providers/config/save", + "description": "Params for _goose/v1/providers/config/save", "title": "ProviderConfigSaveRequest" }, { @@ -2763,7 +2792,7 @@ "$ref": "#/$defs/ProviderConfigDeleteRequest" } ], - "description": "Params for _goose/providers/config/delete", + "description": "Params for _goose/v1/providers/config/delete", "title": "ProviderConfigDeleteRequest" }, { @@ -2772,7 +2801,7 @@ "$ref": "#/$defs/ProviderConfigAuthenticateRequest" } ], - "description": "Params for _goose/providers/config/authenticate", + "description": "Params for _goose/v1/providers/config/authenticate", "title": "ProviderConfigAuthenticateRequest" }, { @@ -2781,7 +2810,7 @@ "$ref": "#/$defs/PreferencesReadRequest" } ], - "description": "Params for _goose/preferences/read", + "description": "Params for _goose/v1/preferences/read", "title": "PreferencesReadRequest" }, { @@ -2790,7 +2819,7 @@ "$ref": "#/$defs/PreferencesSaveRequest" } ], - "description": "Params for _goose/preferences/save", + "description": "Params for _goose/v1/preferences/save", "title": "PreferencesSaveRequest" }, { @@ -2799,7 +2828,7 @@ "$ref": "#/$defs/PreferencesRemoveRequest" } ], - "description": "Params for _goose/preferences/remove", + "description": "Params for _goose/v1/preferences/remove", "title": "PreferencesRemoveRequest" }, { @@ -2808,7 +2837,7 @@ "$ref": "#/$defs/DefaultsReadRequest" } ], - "description": "Params for _goose/defaults/read", + "description": "Params for _goose/v1/defaults/read", "title": "DefaultsReadRequest" }, { @@ -2817,7 +2846,7 @@ "$ref": "#/$defs/DefaultsSaveRequest" } ], - "description": "Params for _goose/defaults/save", + "description": "Params for _goose/v1/defaults/save", "title": "DefaultsSaveRequest" }, { @@ -2826,7 +2855,7 @@ "$ref": "#/$defs/OnboardingImportScanRequest" } ], - "description": "Params for _goose/onboarding/import/scan", + "description": "Params for _goose/v1/onboarding/import/scan", "title": "OnboardingImportScanRequest" }, { @@ -2835,7 +2864,7 @@ "$ref": "#/$defs/OnboardingImportApplyRequest" } ], - "description": "Params for _goose/onboarding/import/apply", + "description": "Params for _goose/v1/onboarding/import/apply", "title": "OnboardingImportApplyRequest" }, { @@ -2844,7 +2873,7 @@ "$ref": "#/$defs/ExportSessionRequest" } ], - "description": "Params for _goose/session/export", + "description": "Params for _goose/v1/session/export", "title": "ExportSessionRequest" }, { @@ -2853,7 +2882,7 @@ "$ref": "#/$defs/ImportSessionRequest" } ], - "description": "Params for _goose/session/import", + "description": "Params for _goose/v1/session/import", "title": "ImportSessionRequest" }, { @@ -2862,7 +2891,7 @@ "$ref": "#/$defs/UpdateSessionProjectRequest" } ], - "description": "Params for _goose/session/update_project", + "description": "Params for _goose/v1/session/project/update", "title": "UpdateSessionProjectRequest" }, { @@ -2871,7 +2900,7 @@ "$ref": "#/$defs/RenameSessionRequest" } ], - "description": "Params for _goose/session/rename", + "description": "Params for _goose/v1/session/rename", "title": "RenameSessionRequest" }, { @@ -2880,7 +2909,7 @@ "$ref": "#/$defs/ArchiveSessionRequest" } ], - "description": "Params for _goose/session/archive", + "description": "Params for _goose/v1/session/archive", "title": "ArchiveSessionRequest" }, { @@ -2889,7 +2918,7 @@ "$ref": "#/$defs/UnarchiveSessionRequest" } ], - "description": "Params for _goose/session/unarchive", + "description": "Params for _goose/v1/session/unarchive", "title": "UnarchiveSessionRequest" }, { @@ -2898,7 +2927,7 @@ "$ref": "#/$defs/CreateSourceRequest" } ], - "description": "Params for _goose/sources/create", + "description": "Params for _goose/v1/sources/create", "title": "CreateSourceRequest" }, { @@ -2907,7 +2936,7 @@ "$ref": "#/$defs/ListSourcesRequest" } ], - "description": "Params for _goose/sources/list", + "description": "Params for _goose/v1/sources/list", "title": "ListSourcesRequest" }, { @@ -2916,7 +2945,7 @@ "$ref": "#/$defs/UpdateSourceRequest" } ], - "description": "Params for _goose/sources/update", + "description": "Params for _goose/v1/sources/update", "title": "UpdateSourceRequest" }, { @@ -2925,7 +2954,7 @@ "$ref": "#/$defs/DeleteSourceRequest" } ], - "description": "Params for _goose/sources/delete", + "description": "Params for _goose/v1/sources/delete", "title": "DeleteSourceRequest" }, { @@ -2934,7 +2963,7 @@ "$ref": "#/$defs/ExportSourceRequest" } ], - "description": "Params for _goose/sources/export", + "description": "Params for _goose/v1/sources/export", "title": "ExportSourceRequest" }, { @@ -2943,7 +2972,7 @@ "$ref": "#/$defs/ImportSourcesRequest" } ], - "description": "Params for _goose/sources/import", + "description": "Params for _goose/v1/sources/import", "title": "ImportSourcesRequest" }, { @@ -2952,7 +2981,7 @@ "$ref": "#/$defs/DictationTranscribeRequest" } ], - "description": "Params for _goose/dictation/transcribe", + "description": "Params for _goose/v1/dictation/transcribe", "title": "DictationTranscribeRequest" }, { @@ -2961,7 +2990,7 @@ "$ref": "#/$defs/DictationConfigRequest" } ], - "description": "Params for _goose/dictation/config", + "description": "Params for _goose/v1/dictation/config", "title": "DictationConfigRequest" }, { @@ -2970,7 +2999,7 @@ "$ref": "#/$defs/DictationSecretSaveRequest" } ], - "description": "Params for _goose/dictation/secret/save", + "description": "Params for _goose/v1/dictation/secret/save", "title": "DictationSecretSaveRequest" }, { @@ -2979,7 +3008,7 @@ "$ref": "#/$defs/DictationSecretDeleteRequest" } ], - "description": "Params for _goose/dictation/secret/delete", + "description": "Params for _goose/v1/dictation/secret/delete", "title": "DictationSecretDeleteRequest" }, { @@ -2988,7 +3017,7 @@ "$ref": "#/$defs/DictationModelsListRequest" } ], - "description": "Params for _goose/dictation/models/list", + "description": "Params for _goose/v1/dictation/models/list", "title": "DictationModelsListRequest" }, { @@ -2997,7 +3026,7 @@ "$ref": "#/$defs/DictationModelDownloadRequest" } ], - "description": "Params for _goose/dictation/models/download", + "description": "Params for _goose/v1/dictation/models/download", "title": "DictationModelDownloadRequest" }, { @@ -3006,7 +3035,7 @@ "$ref": "#/$defs/DictationModelDownloadProgressRequest" } ], - "description": "Params for _goose/dictation/models/download/progress", + "description": "Params for _goose/v1/dictation/models/download/progress", "title": "DictationModelDownloadProgressRequest" }, { @@ -3015,7 +3044,7 @@ "$ref": "#/$defs/DictationModelCancelRequest" } ], - "description": "Params for _goose/dictation/models/cancel", + "description": "Params for _goose/v1/dictation/models/cancel", "title": "DictationModelCancelRequest" }, { @@ -3024,7 +3053,7 @@ "$ref": "#/$defs/DictationModelDeleteRequest" } ], - "description": "Params for _goose/dictation/models/delete", + "description": "Params for _goose/v1/dictation/models/delete", "title": "DictationModelDeleteRequest" }, { @@ -3033,7 +3062,7 @@ "$ref": "#/$defs/DictationModelSelectRequest" } ], - "description": "Params for _goose/dictation/model/select", + "description": "Params for _goose/v1/dictation/models/select", "title": "DictationModelSelectRequest" } ] diff --git a/crates/goose/src/acp/server/sources.rs b/crates/goose/src/acp/server/sources.rs index 9360e7e41571..826e3e3c88cf 100644 --- a/crates/goose/src/acp/server/sources.rs +++ b/crates/goose/src/acp/server/sources.rs @@ -5,24 +5,13 @@ impl GooseAcpAgent { &self, req: CreateSourceRequest, ) -> Result { - let project_dir = match (&req.project_id, &req.project_dir) { - (Some(pid), _) if !req.global => { - let dirs = crate::sources::project_working_dirs(pid); - Some(dirs.into_iter().next().ok_or_else(|| { - agent_client_protocol::Error::invalid_params().data(format!( - "Project \"{pid}\" has no working directories configured" - )) - })?) - } - (_, Some(pd)) => Some(pd.clone()), - _ => None, - }; + let (global, project_dir) = resolve_source_scope(&req.target)?; let source = crate::sources::create_source( req.source_type, &req.name, &req.description, &req.content, - req.global, + global, project_dir.as_deref(), req.properties, )?; @@ -88,8 +77,26 @@ impl GooseAcpAgent { &self, req: ImportSourcesRequest, ) -> Result { - let sources = - crate::sources::import_sources(&req.data, req.global, req.project_dir.as_deref())?; + let (global, project_dir) = resolve_source_scope(&req.target)?; + let sources = crate::sources::import_sources(&req.data, global, project_dir.as_deref())?; Ok(ImportSourcesResponse { sources }) } } + +fn resolve_source_scope( + target: &SourceScope, +) -> Result<(bool, Option), agent_client_protocol::Error> { + match target { + SourceScope::Global => Ok((true, None)), + SourceScope::ProjectDir { project_dir } => Ok((false, Some(project_dir.clone()))), + SourceScope::ProjectId { project_id } => { + let dirs = crate::sources::project_working_dirs(project_id); + let project_dir = dirs.into_iter().next().ok_or_else(|| { + agent_client_protocol::Error::invalid_params().data(format!( + "Project \"{project_id}\" has no working directories configured" + )) + })?; + Ok((false, Some(project_dir))) + } + } +} diff --git a/crates/goose/tests/acp_custom_provider_methods_test.rs b/crates/goose/tests/acp_custom_provider_methods_test.rs index 70ac300832f9..e966b8af5baf 100644 --- a/crates/goose/tests/acp_custom_provider_methods_test.rs +++ b/crates/goose/tests/acp_custom_provider_methods_test.rs @@ -56,7 +56,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let catalog = send_custom( conn.cx(), - "_goose/providers/catalog/list", + "_goose/v1/providers/catalog/list", serde_json::json!({ "format": "openai" }), ) .await @@ -74,7 +74,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let setup_catalog = send_custom( conn.cx(), - "_goose/providers/setup/catalog/list", + "_goose/v1/providers/setup/catalog/list", serde_json::json!({}), ) .await @@ -137,7 +137,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let template = send_custom( conn.cx(), - "_goose/providers/catalog/template", + "_goose/v1/providers/catalog/template", serde_json::json!({ "providerId": "zai" }), ) .await @@ -156,7 +156,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let configured_status = send_custom( conn.cx(), - "_goose/providers/config/status", + "_goose/v1/providers/config/status", serde_json::json!({ "providerIds": ["xai"] }), ) .await @@ -172,7 +172,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let configured_read = send_custom( conn.cx(), - "_goose/providers/config/read", + "_goose/v1/providers/config/read", serde_json::json!({ "providerId": "xai" }), ) .await @@ -194,7 +194,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let non_oauth_auth = send_custom( conn.cx(), - "_goose/providers/config/authenticate", + "_goose/v1/providers/config/authenticate", serde_json::json!({ "providerId": "xai" }), ) .await; @@ -210,7 +210,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let created = send_custom( conn.cx(), - "_goose/providers/custom/create", + "_goose/v1/providers/custom/create", serde_json::json!({ "engine": "openai_compatible", "displayName": "Stark ACP Provider", @@ -291,7 +291,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let read = send_custom( conn.cx(), - "_goose/providers/custom/read", + "_goose/v1/providers/custom/read", serde_json::json!({ "providerId": provider_id }), ) .await @@ -319,7 +319,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let inventory = send_custom( conn.cx(), - "_goose/providers/list", + "_goose/v1/providers/list", serde_json::json!({ "providerIds": [provider_id] }), ) .await @@ -335,7 +335,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let updated = send_custom( conn.cx(), - "_goose/providers/custom/update", + "_goose/v1/providers/custom/update", serde_json::json!({ "providerId": provider_id, "engine": "openai", @@ -388,7 +388,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let auth_disabled = send_custom( conn.cx(), - "_goose/providers/custom/update", + "_goose/v1/providers/custom/update", serde_json::json!({ "providerId": provider_id, "engine": "openai_compatible", @@ -427,7 +427,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let auth_reenabled_without_key = send_custom( conn.cx(), - "_goose/providers/custom/update", + "_goose/v1/providers/custom/update", serde_json::json!({ "providerId": provider_id, "engine": "openai_compatible", @@ -459,7 +459,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let deleted = send_custom( conn.cx(), - "_goose/providers/custom/delete", + "_goose/v1/providers/custom/delete", serde_json::json!({ "providerId": provider_id }), ) .await @@ -489,7 +489,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let deleted_status = send_custom( conn.cx(), - "_goose/providers/config/status", + "_goose/v1/providers/config/status", serde_json::json!({ "providerIds": [provider_id] }), ) .await @@ -513,7 +513,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { ] { let read = send_custom( conn.cx(), - "_goose/providers/custom/read", + "_goose/v1/providers/custom/read", serde_json::json!({ "providerId": invalid_id }), ) .await; @@ -565,7 +565,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { payload_obj.insert(key.clone(), value.clone()); } - let result = send_custom(conn.cx(), "_goose/providers/custom/create", payload).await; + let result = send_custom(conn.cx(), "_goose/v1/providers/custom/create", payload).await; assert!(result.is_err(), "{name} should be rejected"); } @@ -575,7 +575,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let shared = send_custom( conn.cx(), - "_goose/providers/custom/create", + "_goose/v1/providers/custom/create", serde_json::json!({ "engine": "openai_compatible", "displayName": "Shared Secret Test", @@ -608,7 +608,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { send_custom( conn.cx(), - "_goose/providers/custom/update", + "_goose/v1/providers/custom/update", serde_json::json!({ "providerId": shared_id, "engine": "openai_compatible", @@ -630,7 +630,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let shared_delete = send_custom( conn.cx(), - "_goose/providers/custom/create", + "_goose/v1/providers/custom/create", serde_json::json!({ "engine": "openai_compatible", "displayName": "Shared Secret Delete", @@ -663,7 +663,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { send_custom( conn.cx(), - "_goose/providers/custom/delete", + "_goose/v1/providers/custom/delete", serde_json::json!({ "providerId": shared_delete_id }), ) .await diff --git a/crates/goose/tests/acp_custom_requests_test.rs b/crates/goose/tests/acp_custom_requests_test.rs index de0117a210fe..d3d2ac4ec986 100644 --- a/crates/goose/tests/acp_custom_requests_test.rs +++ b/crates/goose/tests/acp_custom_requests_test.rs @@ -78,7 +78,7 @@ fn test_custom_get_tools() { let result = send_custom( conn.cx(), - "_goose/tools", + "_goose/v1/tools/list", serde_json::json!({ "sessionId": session_id }), ) .await; @@ -96,8 +96,12 @@ fn test_custom_get_extensions() { let openai = OpenAiFixture::new(vec![], Arc::new(EnforceSessionId::default())).await; let conn = AcpServerConnection::new(TestConnectionConfig::default(), openai).await; - let result = - send_custom(conn.cx(), "_goose/config/extensions", serde_json::json!({})).await; + let result = send_custom( + conn.cx(), + "_goose/v1/config/extensions/list", + serde_json::json!({}), + ) + .await; assert!(result.is_ok(), "expected ok, got: {:?}", result); let response = result.unwrap(); @@ -120,7 +124,7 @@ fn test_custom_list_builtin_skill_sources() { let response = send_custom( conn.cx(), - "_goose/sources/list", + "_goose/v1/sources/list", serde_json::json!({ "type": "builtinSkill" }), ) .await @@ -152,7 +156,7 @@ fn test_custom_provider_inventory_includes_metadata() { let openai = OpenAiFixture::new(vec![], Arc::new(EnforceSessionId::default())).await; let conn = AcpServerConnection::new(TestConnectionConfig::default(), openai).await; - let response = send_custom(conn.cx(), "_goose/providers/list", serde_json::json!({})) + let response = send_custom(conn.cx(), "_goose/v1/providers/list", serde_json::json!({})) .await .expect("provider inventory should succeed"); let providers = response @@ -193,7 +197,7 @@ fn test_custom_preferences_read_save_remove() { let response = send_custom( conn.cx(), - "_goose/preferences/read", + "_goose/v1/preferences/read", serde_json::json!({ "keys": [ "autoCompactThreshold", @@ -215,7 +219,7 @@ fn test_custom_preferences_read_save_remove() { send_custom( conn.cx(), - "_goose/preferences/save", + "_goose/v1/preferences/save", serde_json::json!({ "values": [ { "key": "voiceDictationProvider", "value": "__disabled__" }, @@ -228,7 +232,7 @@ fn test_custom_preferences_read_save_remove() { send_custom( conn.cx(), - "_goose/preferences/remove", + "_goose/v1/preferences/remove", serde_json::json!({ "keys": ["voiceDictationProvider"], }), @@ -238,7 +242,7 @@ fn test_custom_preferences_read_save_remove() { let response = send_custom( conn.cx(), - "_goose/preferences/read", + "_goose/v1/preferences/read", serde_json::json!({ "keys": ["voiceDictationProvider", "voiceDictationPreferredMic"], }), @@ -280,13 +284,13 @@ fn test_custom_preferences_save_rejects_invalid_values() { ]; for payload in invalid_payloads { - let result = send_custom(conn.cx(), "_goose/preferences/save", payload).await; + let result = send_custom(conn.cx(), "_goose/v1/preferences/save", payload).await; assert!(result.is_err(), "expected invalid params error"); } let result = send_custom( conn.cx(), - "_goose/preferences/save", + "_goose/v1/preferences/save", serde_json::json!({ "values": [ { "key": "voiceDictationPreferredMic", "value": "mic-1" }, @@ -299,7 +303,7 @@ fn test_custom_preferences_save_rejects_invalid_values() { let response = send_custom( conn.cx(), - "_goose/preferences/read", + "_goose/v1/preferences/read", serde_json::json!({ "keys": ["voiceDictationPreferredMic"], }), @@ -331,7 +335,7 @@ fn test_custom_defaults_read() { }; let conn = AcpServerConnection::new(config, openai).await; - let response = send_custom(conn.cx(), "_goose/defaults/read", serde_json::json!({})) + let response = send_custom(conn.cx(), "_goose/v1/defaults/read", serde_json::json!({})) .await .expect("defaults read should succeed"); assert_eq!( @@ -371,7 +375,7 @@ fn test_custom_dictation_secret_save_delete() { send_custom( conn.cx(), - "_goose/dictation/secret/save", + "_goose/v1/dictation/secret/save", serde_json::json!({ "provider": "groq", "value": "groq-key", @@ -380,9 +384,13 @@ fn test_custom_dictation_secret_save_delete() { .await .expect("dictation secret save should succeed"); - let config = send_custom(conn.cx(), "_goose/dictation/config", serde_json::json!({})) - .await - .expect("dictation config should succeed"); + let config = send_custom( + conn.cx(), + "_goose/v1/dictation/config", + serde_json::json!({}), + ) + .await + .expect("dictation config should succeed"); assert_eq!( config .pointer("/providers/groq/configured") @@ -392,7 +400,7 @@ fn test_custom_dictation_secret_save_delete() { let provider_config_result = send_custom( conn.cx(), - "_goose/dictation/secret/save", + "_goose/v1/dictation/secret/save", serde_json::json!({ "provider": "openai", "value": "openai-key", @@ -406,7 +414,7 @@ fn test_custom_dictation_secret_save_delete() { let unknown_result = send_custom( conn.cx(), - "_goose/dictation/secret/save", + "_goose/v1/dictation/secret/save", serde_json::json!({ "provider": "unknown", "value": "key", @@ -420,7 +428,7 @@ fn test_custom_dictation_secret_save_delete() { send_custom( conn.cx(), - "_goose/dictation/secret/delete", + "_goose/v1/dictation/secret/delete", serde_json::json!({ "provider": "groq", }), @@ -428,9 +436,13 @@ fn test_custom_dictation_secret_save_delete() { .await .expect("dictation secret delete should succeed"); - let config = send_custom(conn.cx(), "_goose/dictation/config", serde_json::json!({})) - .await - .expect("dictation config should succeed"); + let config = send_custom( + conn.cx(), + "_goose/v1/dictation/config", + serde_json::json!({}), + ) + .await + .expect("dictation config should succeed"); assert_eq!( config .pointer("/providers/groq/configured") diff --git a/crates/goose/tests/acp_secret_cache_invalidation_test.rs b/crates/goose/tests/acp_secret_cache_invalidation_test.rs index 0c7f5e5e05f3..083cba6cbefc 100644 --- a/crates/goose/tests/acp_secret_cache_invalidation_test.rs +++ b/crates/goose/tests/acp_secret_cache_invalidation_test.rs @@ -113,7 +113,7 @@ fn acp_secret_mutations_and_inventory_refresh_invalidate_global_secret_cache() { write_secrets(&config_dir, "GROQ_API_KEY: fresh-key\n"); send_custom( conn.cx(), - "_goose/dictation/secret/save", + "_goose/v1/dictation/secret/save", serde_json::json!({ "provider": "groq", "value": "fresh-key", @@ -133,7 +133,7 @@ fn acp_secret_mutations_and_inventory_refresh_invalidate_global_secret_cache() { write_secrets(&config_dir, "{}\n"); send_custom( conn.cx(), - "_goose/dictation/secret/delete", + "_goose/v1/dictation/secret/delete", serde_json::json!({ "provider": "groq", }), @@ -151,7 +151,7 @@ fn acp_secret_mutations_and_inventory_refresh_invalidate_global_secret_cache() { let save_provider_config = send_custom( conn.cx(), - "_goose/providers/config/save", + "_goose/v1/providers/config/save", serde_json::json!({ "providerId": "xai", "fields": [ @@ -199,7 +199,7 @@ fn acp_secret_mutations_and_inventory_refresh_invalidate_global_secret_cache() { let read_provider_config = send_custom( conn.cx(), - "_goose/providers/config/read", + "_goose/v1/providers/config/read", serde_json::json!({ "providerId": "xai", }), @@ -223,7 +223,7 @@ fn acp_secret_mutations_and_inventory_refresh_invalidate_global_secret_cache() { let delete_provider_config = send_custom( conn.cx(), - "_goose/providers/config/delete", + "_goose/v1/providers/config/delete", serde_json::json!({ "providerId": "xai", }), @@ -255,7 +255,7 @@ fn acp_secret_mutations_and_inventory_refresh_invalidate_global_secret_cache() { let refresh = send_custom( conn.cx(), - "_goose/providers/inventory/refresh", + "_goose/v1/providers/inventory/refresh", serde_json::json!({ "providerIds": ["anthropic"], }), diff --git a/ui/goose2/src/features/chat/ui/McpAppView.tsx b/ui/goose2/src/features/chat/ui/McpAppView.tsx index bea9a7183769..89233372e77e 100644 --- a/ui/goose2/src/features/chat/ui/McpAppView.tsx +++ b/ui/goose2/src/features/chat/ui/McpAppView.tsx @@ -330,7 +330,7 @@ export function McpAppView({ setActiveToolInput(args ?? {}); const client = await getClient(); - const response = (await client.extMethod("_goose/tool/call", { + const response = (await client.extMethod("_goose/v1/tools/call", { sessionId: payload.sessionId, name: `${payload.tool.extensionName}__${name}`, arguments: args ?? {}, @@ -352,7 +352,7 @@ export function McpAppView({ const handleReadResource = useCallback( async ({ uri }: { uri: string }) => { const client = await getClient(); - const response = await client.goose.GooseResourceRead({ + const response = await client.goose.GooseResourcesRead({ sessionId: payload.sessionId, uri, extensionName: payload.tool.extensionName, diff --git a/ui/goose2/src/features/chat/ui/__tests__/McpAppView.test.tsx b/ui/goose2/src/features/chat/ui/__tests__/McpAppView.test.tsx index 6ebaa27a8ccc..e90d404423d3 100644 --- a/ui/goose2/src/features/chat/ui/__tests__/McpAppView.test.tsx +++ b/ui/goose2/src/features/chat/ui/__tests__/McpAppView.test.tsx @@ -185,7 +185,7 @@ describe("McpAppView nested tool calls", () => { fireEvent.click(screen.getByTestId("mock-app-renderer")); await waitFor(() => { - expect(mocks.extMethod).toHaveBeenCalledWith("_goose/tool/call", { + expect(mocks.extMethod).toHaveBeenCalledWith("_goose/v1/tools/call", { sessionId: "local-session", name: "mcpappbench_local___get-server-time", arguments: { timezone: "America/New_York" }, diff --git a/ui/goose2/src/features/extensions/api/extensions.ts b/ui/goose2/src/features/extensions/api/extensions.ts index 4073c7f8987c..2f14ac9bcdcf 100644 --- a/ui/goose2/src/features/extensions/api/extensions.ts +++ b/ui/goose2/src/features/extensions/api/extensions.ts @@ -3,7 +3,7 @@ import type { ExtensionConfig, ExtensionEntry } from "../types"; export async function listExtensions(): Promise { const client = await getClient(); - const response = await client.goose.GooseConfigExtensions({}); + const response = await client.goose.GooseConfigExtensionsList({}); return response.extensions as ExtensionEntry[]; } diff --git a/ui/goose2/src/features/projects/api/projects.ts b/ui/goose2/src/features/projects/api/projects.ts index 9b72b9d34452..cb6d24bda39b 100644 --- a/ui/goose2/src/features/projects/api/projects.ts +++ b/ui/goose2/src/features/projects/api/projects.ts @@ -18,7 +18,7 @@ export interface ProjectInfo { archivedAt: string | null; } -// Shape returned by _goose/sources/*. Narrowed to project-type sources here. +// Shape returned by _goose/v1/sources/*. Narrowed to project-type sources here. interface SourceEntry { type: "project"; name: string; @@ -111,7 +111,7 @@ export interface ProjectIconData { export async function listProjects(): Promise { const client = await getClient(); - const raw = await client.extMethod("_goose/sources/list", { + const raw = await client.extMethod("_goose/v1/sources/list", { type: "project", }); const sources = (raw.sources ?? []) as SourceEntry[]; @@ -145,12 +145,12 @@ export async function createProject( const client = await getClient(); const existing = await listAllProjects(); const id = uniqueProjectSlug(name, new Set(existing.map((p) => p.id))); - const raw = await client.extMethod("_goose/sources/create", { + const raw = await client.extMethod("_goose/v1/sources/create", { type: "project", name: id, description, content: prompt, - global: true, + target: { scope: "global" }, properties: toProperties({ name, icon, @@ -172,7 +172,7 @@ export async function updateProject( ): Promise { const merged = { ...existing, ...updates }; const client = await getClient(); - const raw = await client.extMethod("_goose/sources/update", { + const raw = await client.extMethod("_goose/v1/sources/update", { type: "project", path: existing.path, name: existing.id, @@ -201,7 +201,7 @@ export async function deleteProject( typeof idOrProject === "string" ? (await getProject(idOrProject)).path : idOrProject.path; - await client.extMethod("_goose/sources/delete", { + await client.extMethod("_goose/v1/sources/delete", { type: "project", path, }); @@ -217,7 +217,7 @@ export async function getProject(id: string): Promise { /** List both archived and active projects. */ async function listAllProjects(): Promise { const client = await getClient(); - const raw = await client.extMethod("_goose/sources/list", { + const raw = await client.extMethod("_goose/v1/sources/list", { type: "project", }); const sources = (raw.sources ?? []) as SourceEntry[]; diff --git a/ui/goose2/src/features/skills/api/skills.ts b/ui/goose2/src/features/skills/api/skills.ts index 24fadcc75b3b..27d13d3dd146 100644 --- a/ui/goose2/src/features/skills/api/skills.ts +++ b/ui/goose2/src/features/skills/api/skills.ts @@ -133,8 +133,9 @@ export async function createSkill( name, description, content: instructions, - global: !options.projectId, - ...(options.projectId ? { projectId: options.projectId } : {}), + target: options.projectId + ? { scope: "projectId", projectId: options.projectId } + : { scope: "global" }, }); } @@ -249,7 +250,7 @@ export async function importSkills( const client = await getClient(); const response = await client.goose.GooseSourcesImport({ data, - global: true, + target: { scope: "global" }, }); return response.sources.filter(isFilesystemSkillSource).map(toSkillInfo); diff --git a/ui/goose2/src/shared/api/__tests__/agents.test.ts b/ui/goose2/src/shared/api/__tests__/agents.test.ts index ad37b1d3d0e0..2d65aa079421 100644 --- a/ui/goose2/src/shared/api/__tests__/agents.test.ts +++ b/ui/goose2/src/shared/api/__tests__/agents.test.ts @@ -98,7 +98,7 @@ describe("agents API", () => { model: "claude-sonnet-4", avatar: source.properties.avatar, }, - global: true, + target: { scope: "global" }, }); expect(result.displayName).toBe("Scout"); }); @@ -172,7 +172,7 @@ describe("agents API", () => { expect(mockGooseSourcesImport).toHaveBeenCalledWith({ data, - global: true, + target: { scope: "global" }, }); expect(result).toHaveLength(1); }); diff --git a/ui/goose2/src/shared/api/acp.ts b/ui/goose2/src/shared/api/acp.ts index f0bafaac7e5a..b83a1838c457 100644 --- a/ui/goose2/src/shared/api/acp.ts +++ b/ui/goose2/src/shared/api/acp.ts @@ -38,7 +38,7 @@ export async function discoverAcpProviders(): Promise { /** * Derive ACP providers from already-fetched inventory entries, - * avoiding a duplicate `_goose/providers/list` RPC. + * avoiding a duplicate `_goose/v1/providers/list` RPC. */ export function discoverAcpProvidersFromEntries( entries: Parameters[0], diff --git a/ui/goose2/src/shared/api/acpApi.ts b/ui/goose2/src/shared/api/acpApi.ts index b94d2aef32f3..c5ae2b4282be 100644 --- a/ui/goose2/src/shared/api/acpApi.ts +++ b/ui/goose2/src/shared/api/acpApi.ts @@ -160,7 +160,7 @@ export async function updateWorkingDir( workingDir: string, ): Promise { const client = await getClient(); - await client.extMethod("_goose/working_dir/update", { + await client.extMethod("_goose/v1/session/working-dir/update", { sessionId, workingDir, }); @@ -171,7 +171,7 @@ export async function updateSessionProject( projectId: string | null, ): Promise { const client = await getClient(); - await client.extMethod("_goose/session/update_project", { + await client.extMethod("_goose/v1/session/project/update", { sessionId, projectId, }); @@ -179,12 +179,12 @@ export async function updateSessionProject( export async function archiveSession(sessionId: string): Promise { const client = await getClient(); - await client.extMethod("_goose/session/archive", { sessionId }); + await client.extMethod("_goose/v1/session/archive", { sessionId }); } export async function unarchiveSession(sessionId: string): Promise { const client = await getClient(); - await client.extMethod("_goose/session/unarchive", { sessionId }); + await client.extMethod("_goose/v1/session/unarchive", { sessionId }); } export async function renameSession( @@ -192,7 +192,7 @@ export async function renameSession( title: string, ): Promise { const client = await getClient(); - await client.extMethod("_goose/session/rename", { sessionId, title }); + await client.extMethod("_goose/v1/session/rename", { sessionId, title }); } export async function cancelSession(sessionId: string): Promise { diff --git a/ui/goose2/src/shared/api/agents.ts b/ui/goose2/src/shared/api/agents.ts index 5d22eeeeb897..90fcd3ac3892 100644 --- a/ui/goose2/src/shared/api/agents.ts +++ b/ui/goose2/src/shared/api/agents.ts @@ -98,7 +98,7 @@ export async function createPersona( description: AGENT_DESCRIPTION, content: request.systemPrompt, properties: personaProperties(request), - global: true, + target: { scope: "global" }, }); if (!isAgentSource(response.source)) { @@ -209,7 +209,7 @@ export async function importPersonas( const client = await getClient(); const response = await client.goose.GooseSourcesImport({ data, - global: true, + target: { scope: "global" }, }); return response.sources.filter(isAgentSource).map(toPersona); diff --git a/ui/goose2/src/shared/api/dictation.ts b/ui/goose2/src/shared/api/dictation.ts index 60ba7eb82781..a146a92247b5 100644 --- a/ui/goose2/src/shared/api/dictation.ts +++ b/ui/goose2/src/shared/api/dictation.ts @@ -36,7 +36,7 @@ export async function saveDictationModelSelection( modelId: string, ): Promise { const client = await getClient(); - await client.goose.GooseDictationModelSelect({ provider, modelId }); + await client.goose.GooseDictationModelsSelect({ provider, modelId }); } export async function saveDictationProviderSecret( diff --git a/ui/goose2/tests/e2e/fixtures/tauri-mock.ts b/ui/goose2/tests/e2e/fixtures/tauri-mock.ts index 6ca637d8cf73..285004f5554f 100644 --- a/ui/goose2/tests/e2e/fixtures/tauri-mock.ts +++ b/ui/goose2/tests/e2e/fixtures/tauri-mock.ts @@ -4,7 +4,7 @@ * without the real Tauri backend. * * Also installs a `window.WebSocket` stub for the ACP connection so features - * like skills (which use `client.extMethod("_goose/sources/...")`) can run + * like skills (which use `client.extMethod("_goose/v1/sources/...")`) can run * without a live goose-acp server. */ @@ -240,21 +240,21 @@ export function buildInitScript(options?: { } return jsonRpcResult(message.id, { stopReason: "end_turn" }); } - case "_goose/providers/list": + case "_goose/v1/providers/list": return jsonRpcResult(message.id, { entries: PROVIDER_INVENTORY }); - case "_goose/providers/setup/catalog/list": + case "_goose/v1/providers/setup/catalog/list": return jsonRpcResult(message.id, { providers: [] }); - case "_goose/providers/inventory/refresh": + case "_goose/v1/providers/inventory/refresh": return jsonRpcResult(message.id, { started: [], skipped: [] }); - case "_goose/defaults/read": - case "_goose/defaults/save": + case "_goose/v1/defaults/read": + case "_goose/v1/defaults/save": return jsonRpcResult(message.id, { providerId: message.params?.providerId ?? "openai", modelId: message.params?.modelId ?? "gpt-4.1", }); - case "_goose/onboarding/import/scan": + case "_goose/v1/onboarding/import/scan": return jsonRpcResult(message.id, { candidates: [] }); - case "_goose/onboarding/import/apply": + case "_goose/v1/onboarding/import/apply": return jsonRpcResult(message.id, { imported: { providers: 0, @@ -274,10 +274,10 @@ export function buildInitScript(options?: { }, warnings: [], }); - case "_goose/working_dir/update": + case "_goose/v1/session/working-dir/update": case "goose/working_dir/update": return jsonRpcResult(message.id, {}); - case "_goose/sources/list": { + case "_goose/v1/sources/list": { const sourceType = message.params?.type; if (sourceType === "agent") { return jsonRpcResult(message.id, { sources: PERSONAS.map(personaToSourceEntry) }); @@ -287,7 +287,7 @@ export function buildInitScript(options?: { } return jsonRpcResult(message.id, { sources: SKILLS.map(skillToSourceEntry) }); } - case "_goose/sources/create": { + case "_goose/v1/sources/create": { const sourceType = message.params?.type ?? "skill"; const name = message.params?.name ?? (sourceType === "agent" ? "New Agent" : "new-skill"); return jsonRpcResult(message.id, { @@ -297,14 +297,14 @@ export function buildInitScript(options?: { description: message.params?.description ?? "", content: message.params?.content ?? "", path: "/mock/.agents/" + (sourceType === "agent" ? "agents" : "skills") + "/" + name, - global: message.params?.global ?? true, + global: message.params?.target?.scope !== "projectDir" && message.params?.target?.scope !== "projectId", writable: true, supportingFiles: [], properties: message.params?.properties ?? {}, }, }); } - case "_goose/sources/update": + case "_goose/v1/sources/update": case "goose/sources/update": { const sourceType = message.params?.type ?? "skill"; const path = @@ -334,10 +334,10 @@ export function buildInitScript(options?: { }, }); } - case "_goose/sources/delete": + case "_goose/v1/sources/delete": case "goose/sources/delete": return jsonRpcResult(message.id, {}); - case "_goose/sources/export": + case "_goose/v1/sources/export": case "goose/sources/export": { const path = message.params?.path ?? "/mock/.agents/skills/skill"; const name = String(path).split("/").filter(Boolean).at(-1) ?? "skill"; @@ -346,7 +346,7 @@ export function buildInitScript(options?: { filename: name + ".skill.json", }); } - case "_goose/sources/import": + case "_goose/v1/sources/import": return jsonRpcResult(message.id, { sources: SKILLS.map(skillToSourceEntry) }); default: return jsonRpcResult(message.id, {}); diff --git a/ui/sdk/generate-schema.ts b/ui/sdk/generate-schema.ts index 870e7eda8025..11c63974411f 100644 --- a/ui/sdk/generate-schema.ts +++ b/ui/sdk/generate-schema.ts @@ -120,6 +120,10 @@ interface MethodMeta { function methodToCamelCase(method: string): string { return method .split(/[/_]/) + .filter((part) => part !== "v1") + .map((part) => + part.replace(/[^a-zA-Z0-9]+(.)/g, (_, chr: string) => chr.toUpperCase()), + ) .map((part, i) => i === 0 ? part : part.charAt(0).toUpperCase() + part.slice(1), ) diff --git a/ui/sdk/src/generated/client.gen.ts b/ui/sdk/src/generated/client.gen.ts index 686c4f7988c2..f75977978988 100644 --- a/ui/sdk/src/generated/client.gen.ts +++ b/ui/sdk/src/generated/client.gen.ts @@ -134,70 +134,80 @@ import { export class GooseExtClient { constructor(private conn: ExtMethodProvider) {} - async GooseExtensionsAdd(params: AddExtensionRequest): Promise { - await this.conn.extMethod("_goose/extensions/add", params); + async GooseSessionExtensionsAdd(params: AddExtensionRequest): Promise { + await this.conn.extMethod("_goose/v1/session/extensions/add", params); } - async GooseExtensionsRemove(params: RemoveExtensionRequest): Promise { - await this.conn.extMethod("_goose/extensions/remove", params); + async GooseSessionExtensionsRemove( + params: RemoveExtensionRequest, + ): Promise { + await this.conn.extMethod("_goose/v1/session/extensions/remove", params); } - async GooseTools(params: GetToolsRequest): Promise { - const raw = await this.conn.extMethod("_goose/tools", params); + async GooseToolsList(params: GetToolsRequest): Promise { + const raw = await this.conn.extMethod("_goose/v1/tools/list", params); return zGetToolsResponse.parse(raw) as GetToolsResponse; } - async GooseToolCall( + async GooseToolsCall( params: GooseToolCallRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/tool/call", params); + const raw = await this.conn.extMethod("_goose/v1/tools/call", params); return zGooseToolCallResponse.parse(raw) as GooseToolCallResponse; } - async GooseResourceRead( + async GooseResourcesRead( params: ReadResourceRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/resource/read", params); + const raw = await this.conn.extMethod("_goose/v1/resources/read", params); return zReadResourceResponse.parse(raw) as ReadResourceResponse; } - async GooseWorkingDirUpdate(params: UpdateWorkingDirRequest): Promise { - await this.conn.extMethod("_goose/working_dir/update", params); + async GooseSessionWorkingDirUpdate( + params: UpdateWorkingDirRequest, + ): Promise { + await this.conn.extMethod("_goose/v1/session/working-dir/update", params); } async sessionDelete(params: DeleteSessionRequest): Promise { await this.conn.extMethod("session/delete", params); } - async GooseConfigExtensions( + async GooseConfigExtensionsList( params: GetExtensionsRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/config/extensions", params); + const raw = await this.conn.extMethod( + "_goose/v1/config/extensions/list", + params, + ); return zGetExtensionsResponse.parse(raw) as GetExtensionsResponse; } async GooseConfigExtensionsAdd( params: AddConfigExtensionRequest, ): Promise { - await this.conn.extMethod("_goose/config/extensions/add", params); + await this.conn.extMethod("_goose/v1/config/extensions/add", params); } async GooseConfigExtensionsRemove( params: RemoveConfigExtensionRequest, ): Promise { - await this.conn.extMethod("_goose/config/extensions/remove", params); + await this.conn.extMethod("_goose/v1/config/extensions/remove", params); } async GooseConfigExtensionsToggle( params: ToggleConfigExtensionRequest, ): Promise { - await this.conn.extMethod("_goose/config/extensions/toggle", params); + await this.conn.extMethod("_goose/v1/config/extensions/toggle", params); } - async GooseSessionExtensions( + async GooseSessionExtensionsList( params: GetSessionExtensionsRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/session/extensions", params); + const raw = await this.conn.extMethod( + "_goose/v1/session/extensions/list", + params, + ); return zGetSessionExtensionsResponse.parse( raw, ) as GetSessionExtensionsResponse; @@ -206,7 +216,7 @@ export class GooseExtClient { async GooseProvidersList( params: ListProvidersRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/providers/list", params); + const raw = await this.conn.extMethod("_goose/v1/providers/list", params); return zListProvidersResponse.parse(raw) as ListProvidersResponse; } @@ -214,7 +224,7 @@ export class GooseExtClient { params: ProviderCatalogListRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/providers/catalog/list", + "_goose/v1/providers/catalog/list", params, ); return zProviderCatalogListResponse.parse( @@ -226,7 +236,7 @@ export class GooseExtClient { params: ProviderSetupCatalogListRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/providers/setup/catalog/list", + "_goose/v1/providers/setup/catalog/list", params, ); return zProviderSetupCatalogListResponse.parse( @@ -238,7 +248,7 @@ export class GooseExtClient { params: ProviderCatalogTemplateRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/providers/catalog/template", + "_goose/v1/providers/catalog/template", params, ); return zProviderCatalogTemplateResponse.parse( @@ -250,7 +260,7 @@ export class GooseExtClient { params: CustomProviderCreateRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/providers/custom/create", + "_goose/v1/providers/custom/create", params, ); return zCustomProviderCreateResponse.parse( @@ -262,7 +272,7 @@ export class GooseExtClient { params: CustomProviderReadRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/providers/custom/read", + "_goose/v1/providers/custom/read", params, ); return zCustomProviderReadResponse.parse(raw) as CustomProviderReadResponse; @@ -272,7 +282,7 @@ export class GooseExtClient { params: CustomProviderUpdateRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/providers/custom/update", + "_goose/v1/providers/custom/update", params, ); return zCustomProviderUpdateResponse.parse( @@ -284,7 +294,7 @@ export class GooseExtClient { params: CustomProviderDeleteRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/providers/custom/delete", + "_goose/v1/providers/custom/delete", params, ); return zCustomProviderDeleteResponse.parse( @@ -296,7 +306,7 @@ export class GooseExtClient { params: RefreshProviderInventoryRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/providers/inventory/refresh", + "_goose/v1/providers/inventory/refresh", params, ); return zRefreshProviderInventoryResponse.parse( @@ -308,7 +318,7 @@ export class GooseExtClient { params: ProviderConfigReadRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/providers/config/read", + "_goose/v1/providers/config/read", params, ); return zProviderConfigReadResponse.parse(raw) as ProviderConfigReadResponse; @@ -318,7 +328,7 @@ export class GooseExtClient { params: ProviderConfigStatusRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/providers/config/status", + "_goose/v1/providers/config/status", params, ); return zProviderConfigStatusResponse.parse( @@ -330,7 +340,7 @@ export class GooseExtClient { params: ProviderConfigSaveRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/providers/config/save", + "_goose/v1/providers/config/save", params, ); return zProviderConfigChangeResponse.parse( @@ -342,7 +352,7 @@ export class GooseExtClient { params: ProviderConfigDeleteRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/providers/config/delete", + "_goose/v1/providers/config/delete", params, ); return zProviderConfigChangeResponse.parse( @@ -354,7 +364,7 @@ export class GooseExtClient { params: ProviderConfigAuthenticateRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/providers/config/authenticate", + "_goose/v1/providers/config/authenticate", params, ); return zProviderConfigChangeResponse.parse( @@ -365,31 +375,31 @@ export class GooseExtClient { async GoosePreferencesRead( params: PreferencesReadRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/preferences/read", params); + const raw = await this.conn.extMethod("_goose/v1/preferences/read", params); return zPreferencesReadResponse.parse(raw) as PreferencesReadResponse; } async GoosePreferencesSave(params: PreferencesSaveRequest): Promise { - await this.conn.extMethod("_goose/preferences/save", params); + await this.conn.extMethod("_goose/v1/preferences/save", params); } async GoosePreferencesRemove( params: PreferencesRemoveRequest, ): Promise { - await this.conn.extMethod("_goose/preferences/remove", params); + await this.conn.extMethod("_goose/v1/preferences/remove", params); } async GooseDefaultsRead( params: DefaultsReadRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/defaults/read", params); + const raw = await this.conn.extMethod("_goose/v1/defaults/read", params); return zDefaultsReadResponse.parse(raw) as DefaultsReadResponse; } async GooseDefaultsSave( params: DefaultsSaveRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/defaults/save", params); + const raw = await this.conn.extMethod("_goose/v1/defaults/save", params); return zDefaultsReadResponse.parse(raw) as DefaultsReadResponse; } @@ -397,7 +407,7 @@ export class GooseExtClient { params: OnboardingImportScanRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/onboarding/import/scan", + "_goose/v1/onboarding/import/scan", params, ); return zOnboardingImportScanResponse.parse( @@ -409,7 +419,7 @@ export class GooseExtClient { params: OnboardingImportApplyRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/onboarding/import/apply", + "_goose/v1/onboarding/import/apply", params, ); return zOnboardingImportApplyResponse.parse( @@ -420,71 +430,71 @@ export class GooseExtClient { async GooseSessionExport( params: ExportSessionRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/session/export", params); + const raw = await this.conn.extMethod("_goose/v1/session/export", params); return zExportSessionResponse.parse(raw) as ExportSessionResponse; } async GooseSessionImport( params: ImportSessionRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/session/import", params); + const raw = await this.conn.extMethod("_goose/v1/session/import", params); return zImportSessionResponse.parse(raw) as ImportSessionResponse; } - async GooseSessionUpdateProject( + async GooseSessionProjectUpdate( params: UpdateSessionProjectRequest, ): Promise { - await this.conn.extMethod("_goose/session/update_project", params); + await this.conn.extMethod("_goose/v1/session/project/update", params); } async GooseSessionRename(params: RenameSessionRequest): Promise { - await this.conn.extMethod("_goose/session/rename", params); + await this.conn.extMethod("_goose/v1/session/rename", params); } async GooseSessionArchive(params: ArchiveSessionRequest): Promise { - await this.conn.extMethod("_goose/session/archive", params); + await this.conn.extMethod("_goose/v1/session/archive", params); } async GooseSessionUnarchive(params: UnarchiveSessionRequest): Promise { - await this.conn.extMethod("_goose/session/unarchive", params); + await this.conn.extMethod("_goose/v1/session/unarchive", params); } async GooseSourcesCreate( params: CreateSourceRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/sources/create", params); + const raw = await this.conn.extMethod("_goose/v1/sources/create", params); return zCreateSourceResponse.parse(raw) as CreateSourceResponse; } async GooseSourcesList( params: ListSourcesRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/sources/list", params); + const raw = await this.conn.extMethod("_goose/v1/sources/list", params); return zListSourcesResponse.parse(raw) as ListSourcesResponse; } async GooseSourcesUpdate( params: UpdateSourceRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/sources/update", params); + const raw = await this.conn.extMethod("_goose/v1/sources/update", params); return zUpdateSourceResponse.parse(raw) as UpdateSourceResponse; } async GooseSourcesDelete(params: DeleteSourceRequest): Promise { - await this.conn.extMethod("_goose/sources/delete", params); + await this.conn.extMethod("_goose/v1/sources/delete", params); } async GooseSourcesExport( params: ExportSourceRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/sources/export", params); + const raw = await this.conn.extMethod("_goose/v1/sources/export", params); return zExportSourceResponse.parse(raw) as ExportSourceResponse; } async GooseSourcesImport( params: ImportSourcesRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/sources/import", params); + const raw = await this.conn.extMethod("_goose/v1/sources/import", params); return zImportSourcesResponse.parse(raw) as ImportSourcesResponse; } @@ -492,7 +502,7 @@ export class GooseExtClient { params: DictationTranscribeRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/dictation/transcribe", + "_goose/v1/dictation/transcribe", params, ); return zDictationTranscribeResponse.parse( @@ -503,27 +513,27 @@ export class GooseExtClient { async GooseDictationConfig( params: DictationConfigRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/dictation/config", params); + const raw = await this.conn.extMethod("_goose/v1/dictation/config", params); return zDictationConfigResponse.parse(raw) as DictationConfigResponse; } async GooseDictationSecretSave( params: DictationSecretSaveRequest, ): Promise { - await this.conn.extMethod("_goose/dictation/secret/save", params); + await this.conn.extMethod("_goose/v1/dictation/secret/save", params); } async GooseDictationSecretDelete( params: DictationSecretDeleteRequest, ): Promise { - await this.conn.extMethod("_goose/dictation/secret/delete", params); + await this.conn.extMethod("_goose/v1/dictation/secret/delete", params); } async GooseDictationModelsList( params: DictationModelsListRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/dictation/models/list", + "_goose/v1/dictation/models/list", params, ); return zDictationModelsListResponse.parse( @@ -534,14 +544,14 @@ export class GooseExtClient { async GooseDictationModelsDownload( params: DictationModelDownloadRequest, ): Promise { - await this.conn.extMethod("_goose/dictation/models/download", params); + await this.conn.extMethod("_goose/v1/dictation/models/download", params); } async GooseDictationModelsDownloadProgress( params: DictationModelDownloadProgressRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/dictation/models/download/progress", + "_goose/v1/dictation/models/download/progress", params, ); return zDictationModelDownloadProgressResponse.parse( @@ -552,18 +562,18 @@ export class GooseExtClient { async GooseDictationModelsCancel( params: DictationModelCancelRequest, ): Promise { - await this.conn.extMethod("_goose/dictation/models/cancel", params); + await this.conn.extMethod("_goose/v1/dictation/models/cancel", params); } async GooseDictationModelsDelete( params: DictationModelDeleteRequest, ): Promise { - await this.conn.extMethod("_goose/dictation/models/delete", params); + await this.conn.extMethod("_goose/v1/dictation/models/delete", params); } - async GooseDictationModelSelect( + async GooseDictationModelsSelect( params: DictationModelSelectRequest, ): Promise { - await this.conn.extMethod("_goose/dictation/model/select", params); + await this.conn.extMethod("_goose/v1/dictation/models/select", params); } } diff --git a/ui/sdk/src/generated/index.ts b/ui/sdk/src/generated/index.ts index e4ecad2f2909..47bce566ca6b 100644 --- a/ui/sdk/src/generated/index.ts +++ b/ui/sdk/src/generated/index.ts @@ -1,35 +1,35 @@ // This file is auto-generated by @hey-api/openapi-ts -export type { AddConfigExtensionRequest, AddExtensionRequest, ArchiveSessionRequest, CreateSourceRequest, CreateSourceResponse, CustomProviderConfigDto, CustomProviderCreateRequest, CustomProviderCreateResponse, CustomProviderDeleteRequest, CustomProviderDeleteResponse, CustomProviderReadRequest, CustomProviderReadResponse, CustomProviderUpdateRequest, CustomProviderUpdateResponse, DefaultsReadRequest, DefaultsReadResponse, DefaultsSaveRequest, DeleteSessionRequest, DeleteSourceRequest, DictationConfigRequest, DictationConfigResponse, DictationDownloadProgress, DictationLocalModelStatus, DictationModelCancelRequest, DictationModelDeleteRequest, DictationModelDownloadProgressRequest, DictationModelDownloadProgressResponse, DictationModelDownloadRequest, DictationModelOption, DictationModelSelectRequest, DictationModelsListRequest, DictationModelsListResponse, DictationProviderStatusEntry, DictationSecretDeleteRequest, DictationSecretSaveRequest, DictationTranscribeRequest, DictationTranscribeResponse, EmptyResponse, ExportSessionRequest, ExportSessionResponse, ExportSourceRequest, ExportSourceResponse, ExtRequest, ExtResponse, GetExtensionsRequest, GetExtensionsResponse, GetSessionExtensionsRequest, GetSessionExtensionsResponse, GetToolsRequest, GetToolsResponse, GooseToolCallRequest, GooseToolCallResponse, ImportSessionRequest, ImportSessionResponse, ImportSourcesRequest, ImportSourcesResponse, ListProvidersRequest, ListProvidersResponse, ListSourcesRequest, ListSourcesResponse, OnboardingImportApplyRequest, OnboardingImportApplyResponse, OnboardingImportCandidate, OnboardingImportCounts, OnboardingImportScanRequest, OnboardingImportScanResponse, OnboardingImportSourceKind, PreferenceKey, PreferencesReadRequest, PreferencesReadResponse, PreferencesRemoveRequest, PreferencesSaveRequest, PreferenceValue, ProviderCatalogListRequest, ProviderCatalogListResponse, ProviderCatalogTemplateRequest, ProviderCatalogTemplateResponse, ProviderConfigAuthenticateRequest, ProviderConfigChangeResponse, ProviderConfigDeleteRequest, ProviderConfigFieldUpdate, ProviderConfigFieldValueDto, ProviderConfigKey, ProviderConfigReadRequest, ProviderConfigReadResponse, ProviderConfigSaveRequest, ProviderConfigStatusDto, ProviderConfigStatusRequest, ProviderConfigStatusResponse, ProviderInventoryEntryDto, ProviderInventoryModelDto, ProviderSetupCatalogEntryDto, ProviderSetupCatalogListRequest, ProviderSetupCatalogListResponse, ProviderSetupCategoryDto, ProviderSetupFieldDto, ProviderSetupGroupDto, ProviderSetupMethodDto, ProviderTemplateCapabilitiesDto, ProviderTemplateCatalogEntryDto, ProviderTemplateDto, ProviderTemplateModelDto, ReadResourceRequest, ReadResourceResponse, RefreshProviderInventoryRequest, RefreshProviderInventoryResponse, RefreshProviderInventorySkipDto, RefreshProviderInventorySkipReasonDto, RemoveConfigExtensionRequest, RemoveExtensionRequest, RenameSessionRequest, SourceEntry, SourceType, ToggleConfigExtensionRequest, UnarchiveSessionRequest, UpdateSessionProjectRequest, UpdateSourceRequest, UpdateSourceResponse, UpdateWorkingDirRequest } from './types.gen.js'; +export type { AddConfigExtensionRequest, AddExtensionRequest, ArchiveSessionRequest, CreateSourceRequest, CreateSourceResponse, CustomProviderConfigDto, CustomProviderCreateRequest, CustomProviderCreateResponse, CustomProviderDeleteRequest, CustomProviderDeleteResponse, CustomProviderReadRequest, CustomProviderReadResponse, CustomProviderUpdateRequest, CustomProviderUpdateResponse, DefaultsReadRequest, DefaultsReadResponse, DefaultsSaveRequest, DeleteSessionRequest, DeleteSourceRequest, DictationConfigRequest, DictationConfigResponse, DictationDownloadProgress, DictationLocalModelStatus, DictationModelCancelRequest, DictationModelDeleteRequest, DictationModelDownloadProgressRequest, DictationModelDownloadProgressResponse, DictationModelDownloadRequest, DictationModelOption, DictationModelSelectRequest, DictationModelsListRequest, DictationModelsListResponse, DictationProviderStatusEntry, DictationSecretDeleteRequest, DictationSecretSaveRequest, DictationTranscribeRequest, DictationTranscribeResponse, EmptyResponse, ExportSessionRequest, ExportSessionResponse, ExportSourceRequest, ExportSourceResponse, ExtRequest, ExtResponse, GetExtensionsRequest, GetExtensionsResponse, GetSessionExtensionsRequest, GetSessionExtensionsResponse, GetToolsRequest, GetToolsResponse, GooseToolCallRequest, GooseToolCallResponse, ImportSessionRequest, ImportSessionResponse, ImportSourcesRequest, ImportSourcesResponse, ListProvidersRequest, ListProvidersResponse, ListSourcesRequest, ListSourcesResponse, OnboardingImportApplyRequest, OnboardingImportApplyResponse, OnboardingImportCandidate, OnboardingImportCounts, OnboardingImportScanRequest, OnboardingImportScanResponse, OnboardingImportSourceKind, PreferenceKey, PreferencesReadRequest, PreferencesReadResponse, PreferencesRemoveRequest, PreferencesSaveRequest, PreferenceValue, ProviderCatalogListRequest, ProviderCatalogListResponse, ProviderCatalogTemplateRequest, ProviderCatalogTemplateResponse, ProviderConfigAuthenticateRequest, ProviderConfigChangeResponse, ProviderConfigDeleteRequest, ProviderConfigFieldUpdate, ProviderConfigFieldValueDto, ProviderConfigKey, ProviderConfigReadRequest, ProviderConfigReadResponse, ProviderConfigSaveRequest, ProviderConfigStatusDto, ProviderConfigStatusRequest, ProviderConfigStatusResponse, ProviderInventoryEntryDto, ProviderInventoryModelDto, ProviderSetupCatalogEntryDto, ProviderSetupCatalogListRequest, ProviderSetupCatalogListResponse, ProviderSetupCategoryDto, ProviderSetupFieldDto, ProviderSetupGroupDto, ProviderSetupMethodDto, ProviderTemplateCapabilitiesDto, ProviderTemplateCatalogEntryDto, ProviderTemplateDto, ProviderTemplateModelDto, ReadResourceRequest, ReadResourceResponse, RefreshProviderInventoryRequest, RefreshProviderInventoryResponse, RefreshProviderInventorySkipDto, RefreshProviderInventorySkipReasonDto, RemoveConfigExtensionRequest, RemoveExtensionRequest, RenameSessionRequest, SourceEntry, SourceScope, SourceType, ToggleConfigExtensionRequest, UnarchiveSessionRequest, UpdateSessionProjectRequest, UpdateSourceRequest, UpdateSourceResponse, UpdateWorkingDirRequest } from './types.gen.js'; export const GOOSE_EXT_METHODS = [ { - method: "_goose/extensions/add", + method: "_goose/v1/session/extensions/add", requestType: "AddExtensionRequest", responseType: "EmptyResponse", }, { - method: "_goose/extensions/remove", + method: "_goose/v1/session/extensions/remove", requestType: "RemoveExtensionRequest", responseType: "EmptyResponse", }, { - method: "_goose/tools", + method: "_goose/v1/tools/list", requestType: "GetToolsRequest", responseType: "GetToolsResponse", }, { - method: "_goose/tool/call", + method: "_goose/v1/tools/call", requestType: "GooseToolCallRequest", responseType: "GooseToolCallResponse", }, { - method: "_goose/resource/read", + method: "_goose/v1/resources/read", requestType: "ReadResourceRequest", responseType: "ReadResourceResponse", }, { - method: "_goose/working_dir/update", + method: "_goose/v1/session/working-dir/update", requestType: "UpdateWorkingDirRequest", responseType: "EmptyResponse", }, @@ -39,242 +39,242 @@ export const GOOSE_EXT_METHODS = [ responseType: "EmptyResponse", }, { - method: "_goose/config/extensions", + method: "_goose/v1/config/extensions/list", requestType: "GetExtensionsRequest", responseType: "GetExtensionsResponse", }, { - method: "_goose/config/extensions/add", + method: "_goose/v1/config/extensions/add", requestType: "AddConfigExtensionRequest", responseType: "EmptyResponse", }, { - method: "_goose/config/extensions/remove", + method: "_goose/v1/config/extensions/remove", requestType: "RemoveConfigExtensionRequest", responseType: "EmptyResponse", }, { - method: "_goose/config/extensions/toggle", + method: "_goose/v1/config/extensions/toggle", requestType: "ToggleConfigExtensionRequest", responseType: "EmptyResponse", }, { - method: "_goose/session/extensions", + method: "_goose/v1/session/extensions/list", requestType: "GetSessionExtensionsRequest", responseType: "GetSessionExtensionsResponse", }, { - method: "_goose/providers/list", + method: "_goose/v1/providers/list", requestType: "ListProvidersRequest", responseType: "ListProvidersResponse", }, { - method: "_goose/providers/catalog/list", + method: "_goose/v1/providers/catalog/list", requestType: "ProviderCatalogListRequest", responseType: "ProviderCatalogListResponse", }, { - method: "_goose/providers/setup/catalog/list", + method: "_goose/v1/providers/setup/catalog/list", requestType: "ProviderSetupCatalogListRequest", responseType: "ProviderSetupCatalogListResponse", }, { - method: "_goose/providers/catalog/template", + method: "_goose/v1/providers/catalog/template", requestType: "ProviderCatalogTemplateRequest", responseType: "ProviderCatalogTemplateResponse", }, { - method: "_goose/providers/custom/create", + method: "_goose/v1/providers/custom/create", requestType: "CustomProviderCreateRequest", responseType: "CustomProviderCreateResponse", }, { - method: "_goose/providers/custom/read", + method: "_goose/v1/providers/custom/read", requestType: "CustomProviderReadRequest", responseType: "CustomProviderReadResponse", }, { - method: "_goose/providers/custom/update", + method: "_goose/v1/providers/custom/update", requestType: "CustomProviderUpdateRequest", responseType: "CustomProviderUpdateResponse", }, { - method: "_goose/providers/custom/delete", + method: "_goose/v1/providers/custom/delete", requestType: "CustomProviderDeleteRequest", responseType: "CustomProviderDeleteResponse", }, { - method: "_goose/providers/inventory/refresh", + method: "_goose/v1/providers/inventory/refresh", requestType: "RefreshProviderInventoryRequest", responseType: "RefreshProviderInventoryResponse", }, { - method: "_goose/providers/config/read", + method: "_goose/v1/providers/config/read", requestType: "ProviderConfigReadRequest", responseType: "ProviderConfigReadResponse", }, { - method: "_goose/providers/config/status", + method: "_goose/v1/providers/config/status", requestType: "ProviderConfigStatusRequest", responseType: "ProviderConfigStatusResponse", }, { - method: "_goose/providers/config/save", + method: "_goose/v1/providers/config/save", requestType: "ProviderConfigSaveRequest", responseType: "ProviderConfigChangeResponse", }, { - method: "_goose/providers/config/delete", + method: "_goose/v1/providers/config/delete", requestType: "ProviderConfigDeleteRequest", responseType: "ProviderConfigChangeResponse", }, { - method: "_goose/providers/config/authenticate", + method: "_goose/v1/providers/config/authenticate", requestType: "ProviderConfigAuthenticateRequest", responseType: "ProviderConfigChangeResponse", }, { - method: "_goose/preferences/read", + method: "_goose/v1/preferences/read", requestType: "PreferencesReadRequest", responseType: "PreferencesReadResponse", }, { - method: "_goose/preferences/save", + method: "_goose/v1/preferences/save", requestType: "PreferencesSaveRequest", responseType: "EmptyResponse", }, { - method: "_goose/preferences/remove", + method: "_goose/v1/preferences/remove", requestType: "PreferencesRemoveRequest", responseType: "EmptyResponse", }, { - method: "_goose/defaults/read", + method: "_goose/v1/defaults/read", requestType: "DefaultsReadRequest", responseType: "DefaultsReadResponse", }, { - method: "_goose/defaults/save", + method: "_goose/v1/defaults/save", requestType: "DefaultsSaveRequest", responseType: "DefaultsReadResponse", }, { - method: "_goose/onboarding/import/scan", + method: "_goose/v1/onboarding/import/scan", requestType: "OnboardingImportScanRequest", responseType: "OnboardingImportScanResponse", }, { - method: "_goose/onboarding/import/apply", + method: "_goose/v1/onboarding/import/apply", requestType: "OnboardingImportApplyRequest", responseType: "OnboardingImportApplyResponse", }, { - method: "_goose/session/export", + method: "_goose/v1/session/export", requestType: "ExportSessionRequest", responseType: "ExportSessionResponse", }, { - method: "_goose/session/import", + method: "_goose/v1/session/import", requestType: "ImportSessionRequest", responseType: "ImportSessionResponse", }, { - method: "_goose/session/update_project", + method: "_goose/v1/session/project/update", requestType: "UpdateSessionProjectRequest", responseType: "EmptyResponse", }, { - method: "_goose/session/rename", + method: "_goose/v1/session/rename", requestType: "RenameSessionRequest", responseType: "EmptyResponse", }, { - method: "_goose/session/archive", + method: "_goose/v1/session/archive", requestType: "ArchiveSessionRequest", responseType: "EmptyResponse", }, { - method: "_goose/session/unarchive", + method: "_goose/v1/session/unarchive", requestType: "UnarchiveSessionRequest", responseType: "EmptyResponse", }, { - method: "_goose/sources/create", + method: "_goose/v1/sources/create", requestType: "CreateSourceRequest", responseType: "CreateSourceResponse", }, { - method: "_goose/sources/list", + method: "_goose/v1/sources/list", requestType: "ListSourcesRequest", responseType: "ListSourcesResponse", }, { - method: "_goose/sources/update", + method: "_goose/v1/sources/update", requestType: "UpdateSourceRequest", responseType: "UpdateSourceResponse", }, { - method: "_goose/sources/delete", + method: "_goose/v1/sources/delete", requestType: "DeleteSourceRequest", responseType: "EmptyResponse", }, { - method: "_goose/sources/export", + method: "_goose/v1/sources/export", requestType: "ExportSourceRequest", responseType: "ExportSourceResponse", }, { - method: "_goose/sources/import", + method: "_goose/v1/sources/import", requestType: "ImportSourcesRequest", responseType: "ImportSourcesResponse", }, { - method: "_goose/dictation/transcribe", + method: "_goose/v1/dictation/transcribe", requestType: "DictationTranscribeRequest", responseType: "DictationTranscribeResponse", }, { - method: "_goose/dictation/config", + method: "_goose/v1/dictation/config", requestType: "DictationConfigRequest", responseType: "DictationConfigResponse", }, { - method: "_goose/dictation/secret/save", + method: "_goose/v1/dictation/secret/save", requestType: "DictationSecretSaveRequest", responseType: "EmptyResponse", }, { - method: "_goose/dictation/secret/delete", + method: "_goose/v1/dictation/secret/delete", requestType: "DictationSecretDeleteRequest", responseType: "EmptyResponse", }, { - method: "_goose/dictation/models/list", + method: "_goose/v1/dictation/models/list", requestType: "DictationModelsListRequest", responseType: "DictationModelsListResponse", }, { - method: "_goose/dictation/models/download", + method: "_goose/v1/dictation/models/download", requestType: "DictationModelDownloadRequest", responseType: "EmptyResponse", }, { - method: "_goose/dictation/models/download/progress", + method: "_goose/v1/dictation/models/download/progress", requestType: "DictationModelDownloadProgressRequest", responseType: "DictationModelDownloadProgressResponse", }, { - method: "_goose/dictation/models/cancel", + method: "_goose/v1/dictation/models/cancel", requestType: "DictationModelCancelRequest", responseType: "EmptyResponse", }, { - method: "_goose/dictation/models/delete", + method: "_goose/v1/dictation/models/delete", requestType: "DictationModelDeleteRequest", responseType: "EmptyResponse", }, { - method: "_goose/dictation/model/select", + method: "_goose/v1/dictation/models/select", requestType: "DictationModelSelectRequest", responseType: "EmptyResponse", }, diff --git a/ui/sdk/src/generated/types.gen.ts b/ui/sdk/src/generated/types.gen.ts index 8b880d309019..9ae2e625d9fc 100644 --- a/ui/sdk/src/generated/types.gen.ts +++ b/ui/sdk/src/generated/types.gen.ts @@ -747,17 +747,7 @@ export type CreateSourceRequest = { name: string; description: string; content: string; - global: boolean; - /** - * Absolute path to the project root. Required when `global` is false. - */ - projectDir?: string | null; - /** - * Project source ID. When set with `global: false`, the backend resolves - * the project's first working directory automatically. Takes precedence - * over `project_dir`. - */ - projectId?: string | null; + target: SourceScope; /** * Arbitrary key/value metadata. */ @@ -771,6 +761,19 @@ export type CreateSourceRequest = { */ export type SourceType = 'skill' | 'builtinSkill' | 'recipe' | 'subrecipe' | 'agent' | 'project'; +/** + * Target scope for creating or importing sources. + */ +export type SourceScope = { + scope: 'global'; +} | { + projectDir: string; + scope: 'projectDir'; +} | { + projectId: string; + scope: 'projectId'; +}; + export type CreateSourceResponse = { source: SourceEntry; }; @@ -885,14 +888,13 @@ export type ExportSourceResponse = { }; /** - * Import a source from a JSON export payload produced by `_goose/sources/export`. + * Import a source from a JSON export payload produced by `_goose/v1/sources/export`. * The imported source is written into the explicit target scope; on name * collisions a `-imported` suffix is appended. */ export type ImportSourcesRequest = { data: string; - global: boolean; - projectDir?: string | null; + target: SourceScope; }; export type ImportSourcesResponse = { diff --git a/ui/sdk/src/generated/zod.gen.ts b/ui/sdk/src/generated/zod.gen.ts index 6d72c52acb28..2f7e8d0b7702 100644 --- a/ui/sdk/src/generated/zod.gen.ts +++ b/ui/sdk/src/generated/zod.gen.ts @@ -759,6 +759,23 @@ export const zSourceType = z.enum([ 'project' ]); +/** + * Target scope for creating or importing sources. + */ +export const zSourceScope = z.union([ + z.object({ + scope: z.literal('global') + }), + z.object({ + projectDir: z.string(), + scope: z.literal('projectDir') + }), + z.object({ + projectId: z.string(), + scope: z.literal('projectId') + }) +]); + /** * Create a new source in an explicit target scope (global or project-scoped). */ @@ -767,15 +784,7 @@ export const zCreateSourceRequest = z.object({ name: z.string(), description: z.string(), content: z.string(), - global: z.boolean(), - projectDir: z.union([ - z.string(), - z.null() - ]).optional(), - projectId: z.union([ - z.string(), - z.null() - ]).optional(), + target: zSourceScope, properties: z.record(z.unknown()).optional() }); @@ -865,17 +874,13 @@ export const zExportSourceResponse = z.object({ }); /** - * Import a source from a JSON export payload produced by `_goose/sources/export`. + * Import a source from a JSON export payload produced by `_goose/v1/sources/export`. * The imported source is written into the explicit target scope; on name * collisions a `-imported` suffix is appended. */ export const zImportSourcesRequest = z.object({ data: z.string(), - global: z.boolean(), - projectDir: z.union([ - z.string(), - z.null() - ]).optional() + target: zSourceScope }); export const zImportSourcesResponse = z.object({ From f4131c990adccd6f812c36b77d1ddfa210e80e6c Mon Sep 17 00:00:00 2001 From: Jack Amadeo Date: Mon, 18 May 2026 12:39:51 -0400 Subject: [PATCH 2/8] update callers --- ui/desktop/src/acp/extensions.ts | 2 +- ui/sdk/scripts/check-binary-compat.mjs | 4 ++-- ui/text/src/extensions.tsx | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ui/desktop/src/acp/extensions.ts b/ui/desktop/src/acp/extensions.ts index 69d8a80bfe6d..23f0aa3579c0 100644 --- a/ui/desktop/src/acp/extensions.ts +++ b/ui/desktop/src/acp/extensions.ts @@ -3,7 +3,7 @@ import { getAcpClient } from './acpConnection'; export async function getConfiguredExtensions(): Promise { const client = await getAcpClient(); - const response = await client.goose.GooseConfigExtensions({}); + const response = await client.goose.GooseConfigExtensionsList({}); return { extensions: response.extensions as ExtensionEntry[], warnings: response.warnings, diff --git a/ui/sdk/scripts/check-binary-compat.mjs b/ui/sdk/scripts/check-binary-compat.mjs index 9e13ab06521b..6ff439096cca 100644 --- a/ui/sdk/scripts/check-binary-compat.mjs +++ b/ui/sdk/scripts/check-binary-compat.mjs @@ -77,8 +77,8 @@ const READ_ONLY_CHECKS = [ call: (c) => c.goose.GooseDictationModelsList({}), }, { - name: "GooseConfigExtensions", - call: (c) => c.goose.GooseConfigExtensions({}), + name: "GooseConfigExtensionsList", + call: (c) => c.goose.GooseConfigExtensionsList({}), }, ]; diff --git a/ui/text/src/extensions.tsx b/ui/text/src/extensions.tsx index f698bdedf000..47e098cbc0e2 100644 --- a/ui/text/src/extensions.tsx +++ b/ui/text/src/extensions.tsx @@ -76,8 +76,8 @@ export default function ExtensionsManager({ setPhase("loading"); try { const [configResp, sessionResp] = await Promise.all([ - client.goose.GooseConfigExtensions({}), - client.goose.GooseSessionExtensions({sessionId}), + client.goose.GooseConfigExtensionsList({}), + client.goose.GooseSessionExtensionsList({sessionId}), ]); const allExtensions = (configResp.extensions as unknown[]).filter(isExtEntry); @@ -112,9 +112,9 @@ export default function ExtensionsManager({ if (!sel) return; withSaving(async () => { if (sel.enabled) { - await client.goose.GooseExtensionsRemove({sessionId, name: sel.name}); + await client.goose.GooseSessionExtensionsRemove({sessionId, name: sel.name}); } else { - await client.goose.GooseExtensionsAdd({sessionId, config: sel as any}); + await client.goose.GooseSessionExtensionsAdd({sessionId, config: sel as any}); } }); }, [entries, selectedIdx, client, sessionId, withSaving]); @@ -127,7 +127,7 @@ export default function ExtensionsManager({ extensionConfig: config as any, enabled: true, }); - await client.goose.GooseExtensionsAdd({sessionId, config: config as any}); + await client.goose.GooseSessionExtensionsAdd({sessionId, config: config as any}); }); }, [addType, addValue, addName, client, sessionId, withSaving]); From b85adee0e191f2b05d6cdc7f0b20e8072f6f4261 Mon Sep 17 00:00:00 2001 From: Jack Amadeo Date: Wed, 20 May 2026 10:17:12 -0400 Subject: [PATCH 3/8] use 'unstable' --- crates/goose-sdk/src/custom_requests.rs | 110 ++++----- crates/goose/acp-meta.json | 108 ++++----- crates/goose/acp-schema.json | 278 +++++++++++----------- ui/sdk/src/generated/client.gen.ts | 294 +++++++++++++++--------- ui/sdk/src/generated/index.ts | 108 ++++----- ui/sdk/src/generated/types.gen.ts | 2 +- ui/sdk/src/generated/zod.gen.ts | 2 +- 7 files changed, 490 insertions(+), 412 deletions(-) diff --git a/crates/goose-sdk/src/custom_requests.rs b/crates/goose-sdk/src/custom_requests.rs index 21d51915a0b6..69525bb13b82 100644 --- a/crates/goose-sdk/src/custom_requests.rs +++ b/crates/goose-sdk/src/custom_requests.rs @@ -23,7 +23,7 @@ pub struct CustomMethodSchema { /// Add an extension to an active session. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/session/extensions/add", response = EmptyResponse)] +#[request(method = "_goose/unstable/session/extensions/add", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct AddExtensionRequest { pub session_id: String, @@ -34,7 +34,7 @@ pub struct AddExtensionRequest { /// Remove an extension from an active session. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/session/extensions/remove", response = EmptyResponse)] +#[request(method = "_goose/unstable/session/extensions/remove", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct RemoveExtensionRequest { pub session_id: String, @@ -43,7 +43,7 @@ pub struct RemoveExtensionRequest { /// List all tools available in a session. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/tools/list", response = GetToolsResponse)] +#[request(method = "_goose/unstable/tools/list", response = GetToolsResponse)] #[serde(rename_all = "camelCase")] pub struct GetToolsRequest { pub session_id: String, @@ -58,7 +58,7 @@ pub struct GetToolsResponse { /// Read a resource from an extension. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/resources/read", response = ReadResourceResponse)] +#[request(method = "_goose/unstable/resources/read", response = ReadResourceResponse)] #[serde(rename_all = "camelCase")] pub struct ReadResourceRequest { pub session_id: String, @@ -76,7 +76,7 @@ pub struct ReadResourceResponse { /// Call a tool from an extension. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/tools/call", response = GooseToolCallResponse)] +#[request(method = "_goose/unstable/tools/call", response = GooseToolCallResponse)] #[serde(rename_all = "camelCase")] pub struct GooseToolCallRequest { pub session_id: String, @@ -101,7 +101,7 @@ pub struct GooseToolCallResponse { /// Update the working directory for a session. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/session/working-dir/update", response = EmptyResponse)] +#[request(method = "_goose/unstable/session/working-dir/update", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct UpdateWorkingDirRequest { pub session_id: String, @@ -118,7 +118,7 @@ pub struct DeleteSessionRequest { /// List configured extensions and any warnings. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/config/extensions/list", response = GetExtensionsResponse)] +#[request(method = "_goose/unstable/config/extensions/list", response = GetExtensionsResponse)] pub struct GetExtensionsRequest {} /// List configured extensions and any warnings. @@ -131,7 +131,7 @@ pub struct GetExtensionsResponse { /// Persist a new extension to the user's global goose config. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/config/extensions/add", response = EmptyResponse)] +#[request(method = "_goose/unstable/config/extensions/add", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct AddConfigExtensionRequest { pub name: String, @@ -146,7 +146,7 @@ pub struct AddConfigExtensionRequest { /// Remove a persisted extension from the user's global goose config. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/config/extensions/remove", response = EmptyResponse)] +#[request(method = "_goose/unstable/config/extensions/remove", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct RemoveConfigExtensionRequest { pub config_key: String, @@ -154,7 +154,7 @@ pub struct RemoveConfigExtensionRequest { /// Toggle the `enabled` flag for a persisted extension in the user's global goose config. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/config/extensions/toggle", response = EmptyResponse)] +#[request(method = "_goose/unstable/config/extensions/toggle", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct ToggleConfigExtensionRequest { pub config_key: String, @@ -162,7 +162,7 @@ pub struct ToggleConfigExtensionRequest { } #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/session/extensions/list", response = GetSessionExtensionsResponse)] +#[request(method = "_goose/unstable/session/extensions/list", response = GetSessionExtensionsResponse)] #[serde(rename_all = "camelCase")] pub struct GetSessionExtensionsRequest { pub session_id: String, @@ -175,7 +175,7 @@ pub struct GetSessionExtensionsResponse { /// Read allowlisted user preferences. Empty `keys` means all supported preferences. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/preferences/read", response = PreferencesReadResponse)] +#[request(method = "_goose/unstable/preferences/read", response = PreferencesReadResponse)] #[serde(rename_all = "camelCase")] pub struct PreferencesReadRequest { #[serde(default)] @@ -184,7 +184,7 @@ pub struct PreferencesReadRequest { /// Save allowlisted user preferences. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/preferences/save", response = EmptyResponse)] +#[request(method = "_goose/unstable/preferences/save", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct PreferencesSaveRequest { #[serde(default)] @@ -193,7 +193,7 @@ pub struct PreferencesSaveRequest { /// Remove allowlisted user preferences. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/preferences/remove", response = EmptyResponse)] +#[request(method = "_goose/unstable/preferences/remove", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct PreferencesRemoveRequest { #[serde(default)] @@ -226,7 +226,7 @@ pub struct PreferencesReadResponse { /// Read Goose default provider and model configuration. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/defaults/read", response = DefaultsReadResponse)] +#[request(method = "_goose/unstable/defaults/read", response = DefaultsReadResponse)] #[serde(rename_all = "camelCase")] pub struct DefaultsReadRequest {} @@ -239,7 +239,7 @@ pub struct DefaultsReadResponse { /// Save Goose default provider and model configuration. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/defaults/save", response = DefaultsReadResponse)] +#[request(method = "_goose/unstable/defaults/save", response = DefaultsReadResponse)] #[serde(rename_all = "camelCase")] pub struct DefaultsSaveRequest { pub provider_id: String, @@ -282,7 +282,7 @@ pub struct OnboardingImportCandidate { /// Scan for existing Goose and compatible app data that onboarding can import. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/v1/onboarding/import/scan", + method = "_goose/unstable/onboarding/import/scan", response = OnboardingImportScanResponse )] #[serde(rename_all = "camelCase")] @@ -301,7 +301,7 @@ pub struct OnboardingImportScanResponse { /// Import selected onboarding candidates. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/v1/onboarding/import/apply", + method = "_goose/unstable/onboarding/import/apply", response = OnboardingImportApplyResponse )] #[serde(rename_all = "camelCase")] @@ -325,7 +325,7 @@ pub struct OnboardingImportApplyResponse { /// Set a dictation provider secret value. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/dictation/secret/save", response = EmptyResponse)] +#[request(method = "_goose/unstable/dictation/secret/save", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct DictationSecretSaveRequest { pub provider: String, @@ -334,7 +334,7 @@ pub struct DictationSecretSaveRequest { /// Remove a dictation provider secret value. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/dictation/secret/delete", response = EmptyResponse)] +#[request(method = "_goose/unstable/dictation/secret/delete", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct DictationSecretDeleteRequest { pub provider: String, @@ -342,7 +342,7 @@ pub struct DictationSecretDeleteRequest { /// Update the project association for a session. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/session/project/update", response = EmptyResponse)] +#[request(method = "_goose/unstable/session/project/update", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct UpdateSessionProjectRequest { pub session_id: String, @@ -351,7 +351,7 @@ pub struct UpdateSessionProjectRequest { /// Rename a session. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/session/rename", response = EmptyResponse)] +#[request(method = "_goose/unstable/session/rename", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct RenameSessionRequest { pub session_id: String, @@ -360,7 +360,7 @@ pub struct RenameSessionRequest { /// Archive a session (soft delete). #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/session/archive", response = EmptyResponse)] +#[request(method = "_goose/unstable/session/archive", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct ArchiveSessionRequest { pub session_id: String, @@ -368,7 +368,7 @@ pub struct ArchiveSessionRequest { /// Unarchive a previously archived session. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/session/unarchive", response = EmptyResponse)] +#[request(method = "_goose/unstable/session/unarchive", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct UnarchiveSessionRequest { pub session_id: String, @@ -376,7 +376,7 @@ pub struct UnarchiveSessionRequest { /// Export a session as a JSON string. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/session/export", response = ExportSessionResponse)] +#[request(method = "_goose/unstable/session/export", response = ExportSessionResponse)] #[serde(rename_all = "camelCase")] pub struct ExportSessionRequest { pub session_id: String, @@ -390,7 +390,7 @@ pub struct ExportSessionResponse { /// Import a session from a JSON string. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/session/import", response = ImportSessionResponse)] +#[request(method = "_goose/unstable/session/import", response = ImportSessionResponse)] pub struct ImportSessionRequest { pub data: String, } @@ -449,7 +449,7 @@ pub struct ProviderConfigFieldUpdate { /// Read saved configuration field values for one provider. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/v1/providers/config/read", + method = "_goose/unstable/providers/config/read", response = ProviderConfigReadResponse )] #[serde(rename_all = "camelCase")] @@ -466,7 +466,7 @@ pub struct ProviderConfigReadResponse { /// Return provider configured statuses. Empty provider_ids means all providers. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/v1/providers/config/status", + method = "_goose/unstable/providers/config/status", response = ProviderConfigStatusResponse )] #[serde(rename_all = "camelCase")] @@ -484,7 +484,7 @@ pub struct ProviderConfigStatusResponse { /// Save provider configuration fields and start an inventory refresh when supported. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/v1/providers/config/save", + method = "_goose/unstable/providers/config/save", response = ProviderConfigChangeResponse )] #[serde(rename_all = "camelCase")] @@ -496,7 +496,7 @@ pub struct ProviderConfigSaveRequest { /// Delete provider configuration fields and start an inventory refresh when supported. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/v1/providers/config/delete", + method = "_goose/unstable/providers/config/delete", response = ProviderConfigChangeResponse )] #[serde(rename_all = "camelCase")] @@ -507,7 +507,7 @@ pub struct ProviderConfigDeleteRequest { /// Run a provider-owned native authentication flow and start an inventory refresh when supported. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/v1/providers/config/authenticate", + method = "_goose/unstable/providers/config/authenticate", response = ProviderConfigChangeResponse )] #[serde(rename_all = "camelCase")] @@ -636,7 +636,7 @@ pub struct ProviderTemplateDto { /// List custom-provider catalog entries. Omit `format` to list all formats. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/v1/providers/catalog/list", + method = "_goose/unstable/providers/catalog/list", response = ProviderCatalogListResponse )] #[serde(rename_all = "camelCase")] @@ -654,7 +654,7 @@ pub struct ProviderCatalogListResponse { /// List provider setup catalog entries #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/v1/providers/setup/catalog/list", + method = "_goose/unstable/providers/setup/catalog/list", response = ProviderSetupCatalogListResponse )] #[serde(rename_all = "camelCase")] @@ -669,7 +669,7 @@ pub struct ProviderSetupCatalogListResponse { /// Return the editable template for one catalog provider. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/v1/providers/catalog/template", + method = "_goose/unstable/providers/catalog/template", response = ProviderCatalogTemplateResponse )] #[serde(rename_all = "camelCase")] @@ -733,7 +733,7 @@ pub struct CustomProviderUpsertDto { /// Create a custom provider backed by Goose's declarative provider store. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/v1/providers/custom/create", + method = "_goose/unstable/providers/custom/create", response = CustomProviderCreateResponse )] #[serde(rename_all = "camelCase")] @@ -753,7 +753,7 @@ pub struct CustomProviderCreateResponse { /// Read a declarative provider config. Custom configs are editable; bundled configs are read-only. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/v1/providers/custom/read", + method = "_goose/unstable/providers/custom/read", response = CustomProviderReadResponse )] #[serde(rename_all = "camelCase")] @@ -772,7 +772,7 @@ pub struct CustomProviderReadResponse { /// Update a custom provider backed by Goose's declarative provider store. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/v1/providers/custom/update", + method = "_goose/unstable/providers/custom/update", response = CustomProviderUpdateResponse )] #[serde(rename_all = "camelCase")] @@ -793,7 +793,7 @@ pub struct CustomProviderUpdateResponse { /// Delete a custom provider from Goose's declarative provider store. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/v1/providers/custom/delete", + method = "_goose/unstable/providers/custom/delete", response = CustomProviderDeleteResponse )] #[serde(rename_all = "camelCase")] @@ -899,7 +899,7 @@ pub enum SourceScope { /// Create a new source in an explicit target scope (global or project-scoped). #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/sources/create", response = CreateSourceResponse)] +#[request(method = "_goose/unstable/sources/create", response = CreateSourceResponse)] #[serde(rename_all = "camelCase")] pub struct CreateSourceRequest { #[serde(rename = "type")] @@ -926,7 +926,7 @@ pub struct CreateSourceResponse { /// set. If `type` is `builtinSkill`, this lists shipped read-only built-in /// skills. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/sources/list", response = ListSourcesResponse)] +#[request(method = "_goose/unstable/sources/list", response = ListSourcesResponse)] #[serde(rename_all = "camelCase")] pub struct ListSourcesRequest { #[serde(rename = "type", default, skip_serializing_if = "Option::is_none")] @@ -947,7 +947,7 @@ pub struct ListSourcesResponse { /// Update an existing source's name, description, and content by absolute path. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/sources/update", response = UpdateSourceResponse)] +#[request(method = "_goose/unstable/sources/update", response = UpdateSourceResponse)] #[serde(rename_all = "camelCase")] pub struct UpdateSourceRequest { #[serde(rename = "type")] @@ -973,7 +973,7 @@ pub struct UpdateSourceResponse { /// Delete a source and its on-disk directory by absolute path. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/sources/delete", response = EmptyResponse)] +#[request(method = "_goose/unstable/sources/delete", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct DeleteSourceRequest { #[serde(rename = "type")] @@ -983,7 +983,7 @@ pub struct DeleteSourceRequest { /// Export a source at an absolute path as a portable JSON payload. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/sources/export", response = ExportSourceResponse)] +#[request(method = "_goose/unstable/sources/export", response = ExportSourceResponse)] #[serde(rename_all = "camelCase")] pub struct ExportSourceRequest { #[serde(rename = "type")] @@ -998,11 +998,11 @@ pub struct ExportSourceResponse { pub filename: String, } -/// Import a source from a JSON export payload produced by `_goose/v1/sources/export`. +/// Import a source from a JSON export payload produced by `_goose/unstable/sources/export`. /// The imported source is written into the explicit target scope; on name /// collisions a `-imported` suffix is appended. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/sources/import", response = ImportSourcesResponse)] +#[request(method = "_goose/unstable/sources/import", response = ImportSourcesResponse)] #[serde(rename_all = "camelCase")] pub struct ImportSourcesRequest { pub data: String, @@ -1017,7 +1017,7 @@ pub struct ImportSourcesResponse { /// Transcribe audio via a dictation provider. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/dictation/transcribe", response = DictationTranscribeResponse)] +#[request(method = "_goose/unstable/dictation/transcribe", response = DictationTranscribeResponse)] #[serde(rename_all = "camelCase")] pub struct DictationTranscribeRequest { /// Base64-encoded audio data @@ -1036,7 +1036,7 @@ pub struct DictationTranscribeResponse { /// Get the configuration status of all dictation providers. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/dictation/config", response = DictationConfigResponse)] +#[request(method = "_goose/unstable/dictation/config", response = DictationConfigResponse)] pub struct DictationConfigRequest {} #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema)] @@ -1077,7 +1077,7 @@ pub struct DictationConfigResponse { /// List providers with setup metadata and the current model inventory snapshot. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/providers/list", response = ListProvidersResponse)] +#[request(method = "_goose/unstable/providers/list", response = ListProvidersResponse)] #[serde(rename_all = "camelCase")] pub struct ListProvidersRequest { /// Only return entries for these providers. Empty means all. @@ -1094,7 +1094,7 @@ pub struct ListProvidersResponse { /// Trigger a background refresh of provider inventories. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/v1/providers/inventory/refresh", + method = "_goose/unstable/providers/inventory/refresh", response = RefreshProviderInventoryResponse )] #[serde(rename_all = "camelCase")] @@ -1205,7 +1205,7 @@ pub struct EmptyResponse {} /// List available local Whisper models with their download status. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/v1/dictation/models/list", + method = "_goose/unstable/dictation/models/list", response = DictationModelsListResponse )] #[serde(rename_all = "camelCase")] @@ -1230,7 +1230,7 @@ pub struct DictationLocalModelStatus { /// Kick off a background download of a local Whisper model. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/dictation/models/download", response = EmptyResponse)] +#[request(method = "_goose/unstable/dictation/models/download", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct DictationModelDownloadRequest { pub model_id: String, @@ -1239,7 +1239,7 @@ pub struct DictationModelDownloadRequest { /// Poll the progress of an in-flight download. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] #[request( - method = "_goose/v1/dictation/models/download/progress", + method = "_goose/unstable/dictation/models/download/progress", response = DictationModelDownloadProgressResponse )] #[serde(rename_all = "camelCase")] @@ -1267,7 +1267,7 @@ pub struct DictationDownloadProgress { /// Cancel an in-flight download. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/dictation/models/cancel", response = EmptyResponse)] +#[request(method = "_goose/unstable/dictation/models/cancel", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct DictationModelCancelRequest { pub model_id: String, @@ -1275,7 +1275,7 @@ pub struct DictationModelCancelRequest { /// Delete a downloaded local Whisper model from disk. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/dictation/models/delete", response = EmptyResponse)] +#[request(method = "_goose/unstable/dictation/models/delete", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct DictationModelDeleteRequest { pub model_id: String, @@ -1283,7 +1283,7 @@ pub struct DictationModelDeleteRequest { /// Persist the user's model selection for a given provider. #[derive(Debug, Default, Clone, Serialize, Deserialize, JsonSchema, JsonRpcRequest)] -#[request(method = "_goose/v1/dictation/models/select", response = EmptyResponse)] +#[request(method = "_goose/unstable/dictation/models/select", response = EmptyResponse)] #[serde(rename_all = "camelCase")] pub struct DictationModelSelectRequest { pub provider: String, diff --git a/crates/goose/acp-meta.json b/crates/goose/acp-meta.json index 610a40e2ff49..46173e5ae28b 100644 --- a/crates/goose/acp-meta.json +++ b/crates/goose/acp-meta.json @@ -1,32 +1,32 @@ { "methods": [ { - "method": "_goose/v1/session/extensions/add", + "method": "_goose/unstable/session/extensions/add", "requestType": "AddExtensionRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/v1/session/extensions/remove", + "method": "_goose/unstable/session/extensions/remove", "requestType": "RemoveExtensionRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/v1/tools/list", + "method": "_goose/unstable/tools/list", "requestType": "GetToolsRequest", "responseType": "GetToolsResponse" }, { - "method": "_goose/v1/tools/call", + "method": "_goose/unstable/tools/call", "requestType": "GooseToolCallRequest", "responseType": "GooseToolCallResponse" }, { - "method": "_goose/v1/resources/read", + "method": "_goose/unstable/resources/read", "requestType": "ReadResourceRequest", "responseType": "ReadResourceResponse" }, { - "method": "_goose/v1/session/working-dir/update", + "method": "_goose/unstable/session/working-dir/update", "requestType": "UpdateWorkingDirRequest", "responseType": "EmptyResponse" }, @@ -36,242 +36,242 @@ "responseType": "EmptyResponse" }, { - "method": "_goose/v1/config/extensions/list", + "method": "_goose/unstable/config/extensions/list", "requestType": "GetExtensionsRequest", "responseType": "GetExtensionsResponse" }, { - "method": "_goose/v1/config/extensions/add", + "method": "_goose/unstable/config/extensions/add", "requestType": "AddConfigExtensionRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/v1/config/extensions/remove", + "method": "_goose/unstable/config/extensions/remove", "requestType": "RemoveConfigExtensionRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/v1/config/extensions/toggle", + "method": "_goose/unstable/config/extensions/toggle", "requestType": "ToggleConfigExtensionRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/v1/session/extensions/list", + "method": "_goose/unstable/session/extensions/list", "requestType": "GetSessionExtensionsRequest", "responseType": "GetSessionExtensionsResponse" }, { - "method": "_goose/v1/providers/list", + "method": "_goose/unstable/providers/list", "requestType": "ListProvidersRequest", "responseType": "ListProvidersResponse" }, { - "method": "_goose/v1/providers/catalog/list", + "method": "_goose/unstable/providers/catalog/list", "requestType": "ProviderCatalogListRequest", "responseType": "ProviderCatalogListResponse" }, { - "method": "_goose/v1/providers/setup/catalog/list", + "method": "_goose/unstable/providers/setup/catalog/list", "requestType": "ProviderSetupCatalogListRequest", "responseType": "ProviderSetupCatalogListResponse" }, { - "method": "_goose/v1/providers/catalog/template", + "method": "_goose/unstable/providers/catalog/template", "requestType": "ProviderCatalogTemplateRequest", "responseType": "ProviderCatalogTemplateResponse" }, { - "method": "_goose/v1/providers/custom/create", + "method": "_goose/unstable/providers/custom/create", "requestType": "CustomProviderCreateRequest", "responseType": "CustomProviderCreateResponse" }, { - "method": "_goose/v1/providers/custom/read", + "method": "_goose/unstable/providers/custom/read", "requestType": "CustomProviderReadRequest", "responseType": "CustomProviderReadResponse" }, { - "method": "_goose/v1/providers/custom/update", + "method": "_goose/unstable/providers/custom/update", "requestType": "CustomProviderUpdateRequest", "responseType": "CustomProviderUpdateResponse" }, { - "method": "_goose/v1/providers/custom/delete", + "method": "_goose/unstable/providers/custom/delete", "requestType": "CustomProviderDeleteRequest", "responseType": "CustomProviderDeleteResponse" }, { - "method": "_goose/v1/providers/inventory/refresh", + "method": "_goose/unstable/providers/inventory/refresh", "requestType": "RefreshProviderInventoryRequest", "responseType": "RefreshProviderInventoryResponse" }, { - "method": "_goose/v1/providers/config/read", + "method": "_goose/unstable/providers/config/read", "requestType": "ProviderConfigReadRequest", "responseType": "ProviderConfigReadResponse" }, { - "method": "_goose/v1/providers/config/status", + "method": "_goose/unstable/providers/config/status", "requestType": "ProviderConfigStatusRequest", "responseType": "ProviderConfigStatusResponse" }, { - "method": "_goose/v1/providers/config/save", + "method": "_goose/unstable/providers/config/save", "requestType": "ProviderConfigSaveRequest", "responseType": "ProviderConfigChangeResponse" }, { - "method": "_goose/v1/providers/config/delete", + "method": "_goose/unstable/providers/config/delete", "requestType": "ProviderConfigDeleteRequest", "responseType": "ProviderConfigChangeResponse" }, { - "method": "_goose/v1/providers/config/authenticate", + "method": "_goose/unstable/providers/config/authenticate", "requestType": "ProviderConfigAuthenticateRequest", "responseType": "ProviderConfigChangeResponse" }, { - "method": "_goose/v1/preferences/read", + "method": "_goose/unstable/preferences/read", "requestType": "PreferencesReadRequest", "responseType": "PreferencesReadResponse" }, { - "method": "_goose/v1/preferences/save", + "method": "_goose/unstable/preferences/save", "requestType": "PreferencesSaveRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/v1/preferences/remove", + "method": "_goose/unstable/preferences/remove", "requestType": "PreferencesRemoveRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/v1/defaults/read", + "method": "_goose/unstable/defaults/read", "requestType": "DefaultsReadRequest", "responseType": "DefaultsReadResponse" }, { - "method": "_goose/v1/defaults/save", + "method": "_goose/unstable/defaults/save", "requestType": "DefaultsSaveRequest", "responseType": "DefaultsReadResponse" }, { - "method": "_goose/v1/onboarding/import/scan", + "method": "_goose/unstable/onboarding/import/scan", "requestType": "OnboardingImportScanRequest", "responseType": "OnboardingImportScanResponse" }, { - "method": "_goose/v1/onboarding/import/apply", + "method": "_goose/unstable/onboarding/import/apply", "requestType": "OnboardingImportApplyRequest", "responseType": "OnboardingImportApplyResponse" }, { - "method": "_goose/v1/session/export", + "method": "_goose/unstable/session/export", "requestType": "ExportSessionRequest", "responseType": "ExportSessionResponse" }, { - "method": "_goose/v1/session/import", + "method": "_goose/unstable/session/import", "requestType": "ImportSessionRequest", "responseType": "ImportSessionResponse" }, { - "method": "_goose/v1/session/project/update", + "method": "_goose/unstable/session/project/update", "requestType": "UpdateSessionProjectRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/v1/session/rename", + "method": "_goose/unstable/session/rename", "requestType": "RenameSessionRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/v1/session/archive", + "method": "_goose/unstable/session/archive", "requestType": "ArchiveSessionRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/v1/session/unarchive", + "method": "_goose/unstable/session/unarchive", "requestType": "UnarchiveSessionRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/v1/sources/create", + "method": "_goose/unstable/sources/create", "requestType": "CreateSourceRequest", "responseType": "CreateSourceResponse" }, { - "method": "_goose/v1/sources/list", + "method": "_goose/unstable/sources/list", "requestType": "ListSourcesRequest", "responseType": "ListSourcesResponse" }, { - "method": "_goose/v1/sources/update", + "method": "_goose/unstable/sources/update", "requestType": "UpdateSourceRequest", "responseType": "UpdateSourceResponse" }, { - "method": "_goose/v1/sources/delete", + "method": "_goose/unstable/sources/delete", "requestType": "DeleteSourceRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/v1/sources/export", + "method": "_goose/unstable/sources/export", "requestType": "ExportSourceRequest", "responseType": "ExportSourceResponse" }, { - "method": "_goose/v1/sources/import", + "method": "_goose/unstable/sources/import", "requestType": "ImportSourcesRequest", "responseType": "ImportSourcesResponse" }, { - "method": "_goose/v1/dictation/transcribe", + "method": "_goose/unstable/dictation/transcribe", "requestType": "DictationTranscribeRequest", "responseType": "DictationTranscribeResponse" }, { - "method": "_goose/v1/dictation/config", + "method": "_goose/unstable/dictation/config", "requestType": "DictationConfigRequest", "responseType": "DictationConfigResponse" }, { - "method": "_goose/v1/dictation/secret/save", + "method": "_goose/unstable/dictation/secret/save", "requestType": "DictationSecretSaveRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/v1/dictation/secret/delete", + "method": "_goose/unstable/dictation/secret/delete", "requestType": "DictationSecretDeleteRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/v1/dictation/models/list", + "method": "_goose/unstable/dictation/models/list", "requestType": "DictationModelsListRequest", "responseType": "DictationModelsListResponse" }, { - "method": "_goose/v1/dictation/models/download", + "method": "_goose/unstable/dictation/models/download", "requestType": "DictationModelDownloadRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/v1/dictation/models/download/progress", + "method": "_goose/unstable/dictation/models/download/progress", "requestType": "DictationModelDownloadProgressRequest", "responseType": "DictationModelDownloadProgressResponse" }, { - "method": "_goose/v1/dictation/models/cancel", + "method": "_goose/unstable/dictation/models/cancel", "requestType": "DictationModelCancelRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/v1/dictation/models/delete", + "method": "_goose/unstable/dictation/models/delete", "requestType": "DictationModelDeleteRequest", "responseType": "EmptyResponse" }, { - "method": "_goose/v1/dictation/models/select", + "method": "_goose/unstable/dictation/models/select", "requestType": "DictationModelSelectRequest", "responseType": "EmptyResponse" } diff --git a/crates/goose/acp-schema.json b/crates/goose/acp-schema.json index 6159824ff974..74d5e6a37045 100644 --- a/crates/goose/acp-schema.json +++ b/crates/goose/acp-schema.json @@ -18,7 +18,7 @@ ], "description": "Add an extension to an active session.", "x-side": "agent", - "x-method": "_goose/v1/session/extensions/add" + "x-method": "_goose/unstable/session/extensions/add" }, "EmptyResponse": { "type": "object", @@ -41,7 +41,7 @@ ], "description": "Remove an extension from an active session.", "x-side": "agent", - "x-method": "_goose/v1/session/extensions/remove" + "x-method": "_goose/unstable/session/extensions/remove" }, "GetToolsRequest": { "type": "object", @@ -55,7 +55,7 @@ ], "description": "List all tools available in a session.", "x-side": "agent", - "x-method": "_goose/v1/tools/list" + "x-method": "_goose/unstable/tools/list" }, "GetToolsResponse": { "type": "object", @@ -71,7 +71,7 @@ ], "description": "Tools response.", "x-side": "agent", - "x-method": "_goose/v1/tools/list" + "x-method": "_goose/unstable/tools/list" }, "GooseToolCallRequest": { "type": "object", @@ -92,7 +92,7 @@ ], "description": "Call a tool from an extension.", "x-side": "agent", - "x-method": "_goose/v1/tools/call" + "x-method": "_goose/unstable/tools/call" }, "GooseToolCallResponse": { "type": "object", @@ -113,7 +113,7 @@ ], "description": "Tool call response.", "x-side": "agent", - "x-method": "_goose/v1/tools/call" + "x-method": "_goose/unstable/tools/call" }, "ReadResourceRequest": { "type": "object", @@ -135,7 +135,7 @@ ], "description": "Read a resource from an extension.", "x-side": "agent", - "x-method": "_goose/v1/resources/read" + "x-method": "_goose/unstable/resources/read" }, "ReadResourceResponse": { "type": "object", @@ -147,7 +147,7 @@ }, "description": "Resource read response.", "x-side": "agent", - "x-method": "_goose/v1/resources/read" + "x-method": "_goose/unstable/resources/read" }, "UpdateWorkingDirRequest": { "type": "object", @@ -165,7 +165,7 @@ ], "description": "Update the working directory for a session.", "x-side": "agent", - "x-method": "_goose/v1/session/working-dir/update" + "x-method": "_goose/unstable/session/working-dir/update" }, "DeleteSessionRequest": { "type": "object", @@ -185,7 +185,7 @@ "type": "object", "description": "List configured extensions and any warnings.", "x-side": "agent", - "x-method": "_goose/v1/config/extensions/list" + "x-method": "_goose/unstable/config/extensions/list" }, "GetExtensionsResponse": { "type": "object", @@ -208,7 +208,7 @@ ], "description": "List configured extensions and any warnings.", "x-side": "agent", - "x-method": "_goose/v1/config/extensions/list" + "x-method": "_goose/unstable/config/extensions/list" }, "AddConfigExtensionRequest": { "type": "object", @@ -230,7 +230,7 @@ ], "description": "Persist a new extension to the user's global goose config.", "x-side": "agent", - "x-method": "_goose/v1/config/extensions/add" + "x-method": "_goose/unstable/config/extensions/add" }, "RemoveConfigExtensionRequest": { "type": "object", @@ -244,7 +244,7 @@ ], "description": "Remove a persisted extension from the user's global goose config.", "x-side": "agent", - "x-method": "_goose/v1/config/extensions/remove" + "x-method": "_goose/unstable/config/extensions/remove" }, "ToggleConfigExtensionRequest": { "type": "object", @@ -262,7 +262,7 @@ ], "description": "Toggle the `enabled` flag for a persisted extension in the user's global goose config.", "x-side": "agent", - "x-method": "_goose/v1/config/extensions/toggle" + "x-method": "_goose/unstable/config/extensions/toggle" }, "GetSessionExtensionsRequest": { "type": "object", @@ -275,7 +275,7 @@ "sessionId" ], "x-side": "agent", - "x-method": "_goose/v1/session/extensions/list" + "x-method": "_goose/unstable/session/extensions/list" }, "GetSessionExtensionsResponse": { "type": "object", @@ -289,7 +289,7 @@ "extensions" ], "x-side": "agent", - "x-method": "_goose/v1/session/extensions/list" + "x-method": "_goose/unstable/session/extensions/list" }, "ListProvidersRequest": { "type": "object", @@ -305,7 +305,7 @@ }, "description": "List providers with setup metadata and the current model inventory snapshot.", "x-side": "agent", - "x-method": "_goose/v1/providers/list" + "x-method": "_goose/unstable/providers/list" }, "ListProvidersResponse": { "type": "object", @@ -322,7 +322,7 @@ ], "description": "Provider list response.", "x-side": "agent", - "x-method": "_goose/v1/providers/list" + "x-method": "_goose/unstable/providers/list" }, "ProviderInventoryEntryDto": { "type": "object", @@ -537,7 +537,7 @@ }, "description": "List custom-provider catalog entries. Omit `format` to list all formats.", "x-side": "agent", - "x-method": "_goose/v1/providers/catalog/list" + "x-method": "_goose/unstable/providers/catalog/list" }, "ProviderCatalogListResponse": { "type": "object", @@ -553,7 +553,7 @@ "providers" ], "x-side": "agent", - "x-method": "_goose/v1/providers/catalog/list" + "x-method": "_goose/unstable/providers/catalog/list" }, "ProviderTemplateCatalogEntryDto": { "type": "object", @@ -595,7 +595,7 @@ "type": "object", "description": "List provider setup catalog entries", "x-side": "agent", - "x-method": "_goose/v1/providers/setup/catalog/list" + "x-method": "_goose/unstable/providers/setup/catalog/list" }, "ProviderSetupCatalogListResponse": { "type": "object", @@ -611,7 +611,7 @@ "providers" ], "x-side": "agent", - "x-method": "_goose/v1/providers/setup/catalog/list" + "x-method": "_goose/unstable/providers/setup/catalog/list" }, "ProviderSetupCatalogEntryDto": { "type": "object", @@ -760,7 +760,7 @@ ], "description": "Return the editable template for one catalog provider.", "x-side": "agent", - "x-method": "_goose/v1/providers/catalog/template" + "x-method": "_goose/unstable/providers/catalog/template" }, "ProviderCatalogTemplateResponse": { "type": "object", @@ -773,7 +773,7 @@ "template" ], "x-side": "agent", - "x-method": "_goose/v1/providers/catalog/template" + "x-method": "_goose/unstable/providers/catalog/template" }, "ProviderTemplateDto": { "type": "object", @@ -936,7 +936,7 @@ ], "description": "Create a custom provider backed by Goose's declarative provider store.", "x-side": "agent", - "x-method": "_goose/v1/providers/custom/create" + "x-method": "_goose/unstable/providers/custom/create" }, "CustomProviderCreateResponse": { "type": "object", @@ -957,7 +957,7 @@ "refresh" ], "x-side": "agent", - "x-method": "_goose/v1/providers/custom/create" + "x-method": "_goose/unstable/providers/custom/create" }, "ProviderConfigStatusDto": { "type": "object", @@ -998,7 +998,7 @@ ], "description": "Refresh acknowledgement.", "x-side": "agent", - "x-method": "_goose/v1/providers/inventory/refresh" + "x-method": "_goose/unstable/providers/inventory/refresh" }, "RefreshProviderInventorySkipDto": { "type": "object", @@ -1036,7 +1036,7 @@ ], "description": "Read a declarative provider config. Custom configs are editable; bundled configs are read-only.", "x-side": "agent", - "x-method": "_goose/v1/providers/custom/read" + "x-method": "_goose/unstable/providers/custom/read" }, "CustomProviderReadResponse": { "type": "object", @@ -1057,7 +1057,7 @@ "status" ], "x-side": "agent", - "x-method": "_goose/v1/providers/custom/read" + "x-method": "_goose/unstable/providers/custom/read" }, "CustomProviderConfigDto": { "type": "object", @@ -1204,7 +1204,7 @@ ], "description": "Update a custom provider backed by Goose's declarative provider store.", "x-side": "agent", - "x-method": "_goose/v1/providers/custom/update" + "x-method": "_goose/unstable/providers/custom/update" }, "CustomProviderUpdateResponse": { "type": "object", @@ -1225,7 +1225,7 @@ "refresh" ], "x-side": "agent", - "x-method": "_goose/v1/providers/custom/update" + "x-method": "_goose/unstable/providers/custom/update" }, "CustomProviderDeleteRequest": { "type": "object", @@ -1239,7 +1239,7 @@ ], "description": "Delete a custom provider from Goose's declarative provider store.", "x-side": "agent", - "x-method": "_goose/v1/providers/custom/delete" + "x-method": "_goose/unstable/providers/custom/delete" }, "CustomProviderDeleteResponse": { "type": "object", @@ -1256,7 +1256,7 @@ "refresh" ], "x-side": "agent", - "x-method": "_goose/v1/providers/custom/delete" + "x-method": "_goose/unstable/providers/custom/delete" }, "RefreshProviderInventoryRequest": { "type": "object", @@ -1272,7 +1272,7 @@ }, "description": "Trigger a background refresh of provider inventories.", "x-side": "agent", - "x-method": "_goose/v1/providers/inventory/refresh" + "x-method": "_goose/unstable/providers/inventory/refresh" }, "ProviderConfigReadRequest": { "type": "object", @@ -1286,7 +1286,7 @@ ], "description": "Read saved configuration field values for one provider.", "x-side": "agent", - "x-method": "_goose/v1/providers/config/read" + "x-method": "_goose/unstable/providers/config/read" }, "ProviderConfigReadResponse": { "type": "object", @@ -1302,7 +1302,7 @@ "fields" ], "x-side": "agent", - "x-method": "_goose/v1/providers/config/read" + "x-method": "_goose/unstable/providers/config/read" }, "ProviderConfigFieldValueDto": { "type": "object", @@ -1347,7 +1347,7 @@ }, "description": "Return provider configured statuses. Empty provider_ids means all providers.", "x-side": "agent", - "x-method": "_goose/v1/providers/config/status" + "x-method": "_goose/unstable/providers/config/status" }, "ProviderConfigStatusResponse": { "type": "object", @@ -1363,7 +1363,7 @@ "statuses" ], "x-side": "agent", - "x-method": "_goose/v1/providers/config/status" + "x-method": "_goose/unstable/providers/config/status" }, "ProviderConfigSaveRequest": { "type": "object", @@ -1384,7 +1384,7 @@ ], "description": "Save provider configuration fields and start an inventory refresh when supported.", "x-side": "agent", - "x-method": "_goose/v1/providers/config/save" + "x-method": "_goose/unstable/providers/config/save" }, "ProviderConfigFieldUpdate": { "type": "object", @@ -1429,7 +1429,7 @@ ], "description": "Delete provider configuration fields and start an inventory refresh when supported.", "x-side": "agent", - "x-method": "_goose/v1/providers/config/delete" + "x-method": "_goose/unstable/providers/config/delete" }, "ProviderConfigAuthenticateRequest": { "type": "object", @@ -1443,7 +1443,7 @@ ], "description": "Run a provider-owned native authentication flow and start an inventory refresh when supported.", "x-side": "agent", - "x-method": "_goose/v1/providers/config/authenticate" + "x-method": "_goose/unstable/providers/config/authenticate" }, "PreferencesReadRequest": { "type": "object", @@ -1458,7 +1458,7 @@ }, "description": "Read allowlisted user preferences. Empty `keys` means all supported preferences.", "x-side": "agent", - "x-method": "_goose/v1/preferences/read" + "x-method": "_goose/unstable/preferences/read" }, "PreferenceKey": { "type": "string", @@ -1483,7 +1483,7 @@ "values" ], "x-side": "agent", - "x-method": "_goose/v1/preferences/read" + "x-method": "_goose/unstable/preferences/read" }, "PreferenceValue": { "type": "object", @@ -1512,7 +1512,7 @@ }, "description": "Save allowlisted user preferences.", "x-side": "agent", - "x-method": "_goose/v1/preferences/save" + "x-method": "_goose/unstable/preferences/save" }, "PreferencesRemoveRequest": { "type": "object", @@ -1527,13 +1527,13 @@ }, "description": "Remove allowlisted user preferences.", "x-side": "agent", - "x-method": "_goose/v1/preferences/remove" + "x-method": "_goose/unstable/preferences/remove" }, "DefaultsReadRequest": { "type": "object", "description": "Read Goose default provider and model configuration.", "x-side": "agent", - "x-method": "_goose/v1/defaults/read" + "x-method": "_goose/unstable/defaults/read" }, "DefaultsReadResponse": { "type": "object", @@ -1571,7 +1571,7 @@ ], "description": "Save Goose default provider and model configuration.", "x-side": "agent", - "x-method": "_goose/v1/defaults/save" + "x-method": "_goose/unstable/defaults/save" }, "OnboardingImportScanRequest": { "type": "object", @@ -1587,7 +1587,7 @@ }, "description": "Scan for existing Goose and compatible app data that onboarding can import.", "x-side": "agent", - "x-method": "_goose/v1/onboarding/import/scan" + "x-method": "_goose/unstable/onboarding/import/scan" }, "OnboardingImportSourceKind": { "type": "string", @@ -1611,7 +1611,7 @@ "candidates" ], "x-side": "agent", - "x-method": "_goose/v1/onboarding/import/scan" + "x-method": "_goose/unstable/onboarding/import/scan" }, "OnboardingImportCandidate": { "type": "object", @@ -1701,7 +1701,7 @@ }, "description": "Import selected onboarding candidates.", "x-side": "agent", - "x-method": "_goose/v1/onboarding/import/apply" + "x-method": "_goose/unstable/onboarding/import/apply" }, "OnboardingImportApplyResponse": { "type": "object", @@ -1735,7 +1735,7 @@ "skipped" ], "x-side": "agent", - "x-method": "_goose/v1/onboarding/import/apply" + "x-method": "_goose/unstable/onboarding/import/apply" }, "ExportSessionRequest": { "type": "object", @@ -1749,7 +1749,7 @@ ], "description": "Export a session as a JSON string.", "x-side": "agent", - "x-method": "_goose/v1/session/export" + "x-method": "_goose/unstable/session/export" }, "ExportSessionResponse": { "type": "object", @@ -1763,7 +1763,7 @@ ], "description": "Export session response — raw JSON of the goose session with `conversation`.", "x-side": "agent", - "x-method": "_goose/v1/session/export" + "x-method": "_goose/unstable/session/export" }, "ImportSessionRequest": { "type": "object", @@ -1777,7 +1777,7 @@ ], "description": "Import a session from a JSON string.", "x-side": "agent", - "x-method": "_goose/v1/session/import" + "x-method": "_goose/unstable/session/import" }, "ImportSessionResponse": { "type": "object", @@ -1808,7 +1808,7 @@ ], "description": "Import session response — metadata about the newly created session.", "x-side": "agent", - "x-method": "_goose/v1/session/import" + "x-method": "_goose/unstable/session/import" }, "UpdateSessionProjectRequest": { "type": "object", @@ -1828,7 +1828,7 @@ ], "description": "Update the project association for a session.", "x-side": "agent", - "x-method": "_goose/v1/session/project/update" + "x-method": "_goose/unstable/session/project/update" }, "RenameSessionRequest": { "type": "object", @@ -1846,7 +1846,7 @@ ], "description": "Rename a session.", "x-side": "agent", - "x-method": "_goose/v1/session/rename" + "x-method": "_goose/unstable/session/rename" }, "ArchiveSessionRequest": { "type": "object", @@ -1860,7 +1860,7 @@ ], "description": "Archive a session (soft delete).", "x-side": "agent", - "x-method": "_goose/v1/session/archive" + "x-method": "_goose/unstable/session/archive" }, "UnarchiveSessionRequest": { "type": "object", @@ -1874,7 +1874,7 @@ ], "description": "Unarchive a previously archived session.", "x-side": "agent", - "x-method": "_goose/v1/session/unarchive" + "x-method": "_goose/unstable/session/unarchive" }, "CreateSourceRequest": { "type": "object", @@ -1909,7 +1909,7 @@ ], "description": "Create a new source in an explicit target scope (global or project-scoped).", "x-side": "agent", - "x-method": "_goose/v1/sources/create" + "x-method": "_goose/unstable/sources/create" }, "SourceType": { "type": "string", @@ -1983,7 +1983,7 @@ "source" ], "x-side": "agent", - "x-method": "_goose/v1/sources/create" + "x-method": "_goose/unstable/sources/create" }, "SourceEntry": { "type": "object", @@ -2063,7 +2063,7 @@ }, "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/v1/sources/list" + "x-method": "_goose/unstable/sources/list" }, "ListSourcesResponse": { "type": "object", @@ -2079,7 +2079,7 @@ "sources" ], "x-side": "agent", - "x-method": "_goose/v1/sources/list" + "x-method": "_goose/unstable/sources/list" }, "UpdateSourceRequest": { "type": "object", @@ -2117,7 +2117,7 @@ ], "description": "Update an existing source's name, description, and content by absolute path.", "x-side": "agent", - "x-method": "_goose/v1/sources/update" + "x-method": "_goose/unstable/sources/update" }, "UpdateSourceResponse": { "type": "object", @@ -2130,7 +2130,7 @@ "source" ], "x-side": "agent", - "x-method": "_goose/v1/sources/update" + "x-method": "_goose/unstable/sources/update" }, "DeleteSourceRequest": { "type": "object", @@ -2148,7 +2148,7 @@ ], "description": "Delete a source and its on-disk directory by absolute path.", "x-side": "agent", - "x-method": "_goose/v1/sources/delete" + "x-method": "_goose/unstable/sources/delete" }, "ExportSourceRequest": { "type": "object", @@ -2166,7 +2166,7 @@ ], "description": "Export a source at an absolute path as a portable JSON payload.", "x-side": "agent", - "x-method": "_goose/v1/sources/export" + "x-method": "_goose/unstable/sources/export" }, "ExportSourceResponse": { "type": "object", @@ -2183,7 +2183,7 @@ "filename" ], "x-side": "agent", - "x-method": "_goose/v1/sources/export" + "x-method": "_goose/unstable/sources/export" }, "ImportSourcesRequest": { "type": "object", @@ -2199,9 +2199,9 @@ "data", "target" ], - "description": "Import a source from a JSON export payload produced by `_goose/v1/sources/export`.\nThe imported source is written into the explicit target scope; on name\ncollisions a `-imported` suffix is appended.", + "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/v1/sources/import" + "x-method": "_goose/unstable/sources/import" }, "ImportSourcesResponse": { "type": "object", @@ -2217,7 +2217,7 @@ "sources" ], "x-side": "agent", - "x-method": "_goose/v1/sources/import" + "x-method": "_goose/unstable/sources/import" }, "DictationTranscribeRequest": { "type": "object", @@ -2242,7 +2242,7 @@ ], "description": "Transcribe audio via a dictation provider.", "x-side": "agent", - "x-method": "_goose/v1/dictation/transcribe" + "x-method": "_goose/unstable/dictation/transcribe" }, "DictationTranscribeResponse": { "type": "object", @@ -2256,13 +2256,13 @@ ], "description": "Transcription result.", "x-side": "agent", - "x-method": "_goose/v1/dictation/transcribe" + "x-method": "_goose/unstable/dictation/transcribe" }, "DictationConfigRequest": { "type": "object", "description": "Get the configuration status of all dictation providers.", "x-side": "agent", - "x-method": "_goose/v1/dictation/config" + "x-method": "_goose/unstable/dictation/config" }, "DictationConfigResponse": { "type": "object", @@ -2279,7 +2279,7 @@ ], "description": "Dictation config response — map of provider name to status.", "x-side": "agent", - "x-method": "_goose/v1/dictation/config" + "x-method": "_goose/unstable/dictation/config" }, "DictationProviderStatusEntry": { "type": "object", @@ -2379,7 +2379,7 @@ ], "description": "Set a dictation provider secret value.", "x-side": "agent", - "x-method": "_goose/v1/dictation/secret/save" + "x-method": "_goose/unstable/dictation/secret/save" }, "DictationSecretDeleteRequest": { "type": "object", @@ -2393,13 +2393,13 @@ ], "description": "Remove a dictation provider secret value.", "x-side": "agent", - "x-method": "_goose/v1/dictation/secret/delete" + "x-method": "_goose/unstable/dictation/secret/delete" }, "DictationModelsListRequest": { "type": "object", "description": "List available local Whisper models with their download status.", "x-side": "agent", - "x-method": "_goose/v1/dictation/models/list" + "x-method": "_goose/unstable/dictation/models/list" }, "DictationModelsListResponse": { "type": "object", @@ -2415,7 +2415,7 @@ "models" ], "x-side": "agent", - "x-method": "_goose/v1/dictation/models/list" + "x-method": "_goose/unstable/dictation/models/list" }, "DictationLocalModelStatus": { "type": "object", @@ -2461,7 +2461,7 @@ ], "description": "Kick off a background download of a local Whisper model.", "x-side": "agent", - "x-method": "_goose/v1/dictation/models/download" + "x-method": "_goose/unstable/dictation/models/download" }, "DictationModelDownloadProgressRequest": { "type": "object", @@ -2475,7 +2475,7 @@ ], "description": "Poll the progress of an in-flight download.", "x-side": "agent", - "x-method": "_goose/v1/dictation/models/download/progress" + "x-method": "_goose/unstable/dictation/models/download/progress" }, "DictationModelDownloadProgressResponse": { "type": "object", @@ -2493,7 +2493,7 @@ } }, "x-side": "agent", - "x-method": "_goose/v1/dictation/models/download/progress" + "x-method": "_goose/unstable/dictation/models/download/progress" }, "DictationDownloadProgress": { "type": "object", @@ -2540,7 +2540,7 @@ ], "description": "Cancel an in-flight download.", "x-side": "agent", - "x-method": "_goose/v1/dictation/models/cancel" + "x-method": "_goose/unstable/dictation/models/cancel" }, "DictationModelDeleteRequest": { "type": "object", @@ -2554,7 +2554,7 @@ ], "description": "Delete a downloaded local Whisper model from disk.", "x-side": "agent", - "x-method": "_goose/v1/dictation/models/delete" + "x-method": "_goose/unstable/dictation/models/delete" }, "DictationModelSelectRequest": { "type": "object", @@ -2572,7 +2572,7 @@ ], "description": "Persist the user's model selection for a given provider.", "x-side": "agent", - "x-method": "_goose/v1/dictation/models/select" + "x-method": "_goose/unstable/dictation/models/select" }, "ExtRequest": { "properties": { @@ -2592,7 +2592,7 @@ "$ref": "#/$defs/AddExtensionRequest" } ], - "description": "Params for _goose/v1/session/extensions/add", + "description": "Params for _goose/unstable/session/extensions/add", "title": "AddExtensionRequest" }, { @@ -2601,7 +2601,7 @@ "$ref": "#/$defs/RemoveExtensionRequest" } ], - "description": "Params for _goose/v1/session/extensions/remove", + "description": "Params for _goose/unstable/session/extensions/remove", "title": "RemoveExtensionRequest" }, { @@ -2610,7 +2610,7 @@ "$ref": "#/$defs/GetToolsRequest" } ], - "description": "Params for _goose/v1/tools/list", + "description": "Params for _goose/unstable/tools/list", "title": "GetToolsRequest" }, { @@ -2619,7 +2619,7 @@ "$ref": "#/$defs/GooseToolCallRequest" } ], - "description": "Params for _goose/v1/tools/call", + "description": "Params for _goose/unstable/tools/call", "title": "GooseToolCallRequest" }, { @@ -2628,7 +2628,7 @@ "$ref": "#/$defs/ReadResourceRequest" } ], - "description": "Params for _goose/v1/resources/read", + "description": "Params for _goose/unstable/resources/read", "title": "ReadResourceRequest" }, { @@ -2637,7 +2637,7 @@ "$ref": "#/$defs/UpdateWorkingDirRequest" } ], - "description": "Params for _goose/v1/session/working-dir/update", + "description": "Params for _goose/unstable/session/working-dir/update", "title": "UpdateWorkingDirRequest" }, { @@ -2655,7 +2655,7 @@ "$ref": "#/$defs/GetExtensionsRequest" } ], - "description": "Params for _goose/v1/config/extensions/list", + "description": "Params for _goose/unstable/config/extensions/list", "title": "GetExtensionsRequest" }, { @@ -2664,7 +2664,7 @@ "$ref": "#/$defs/AddConfigExtensionRequest" } ], - "description": "Params for _goose/v1/config/extensions/add", + "description": "Params for _goose/unstable/config/extensions/add", "title": "AddConfigExtensionRequest" }, { @@ -2673,7 +2673,7 @@ "$ref": "#/$defs/RemoveConfigExtensionRequest" } ], - "description": "Params for _goose/v1/config/extensions/remove", + "description": "Params for _goose/unstable/config/extensions/remove", "title": "RemoveConfigExtensionRequest" }, { @@ -2682,7 +2682,7 @@ "$ref": "#/$defs/ToggleConfigExtensionRequest" } ], - "description": "Params for _goose/v1/config/extensions/toggle", + "description": "Params for _goose/unstable/config/extensions/toggle", "title": "ToggleConfigExtensionRequest" }, { @@ -2691,7 +2691,7 @@ "$ref": "#/$defs/GetSessionExtensionsRequest" } ], - "description": "Params for _goose/v1/session/extensions/list", + "description": "Params for _goose/unstable/session/extensions/list", "title": "GetSessionExtensionsRequest" }, { @@ -2700,7 +2700,7 @@ "$ref": "#/$defs/ListProvidersRequest" } ], - "description": "Params for _goose/v1/providers/list", + "description": "Params for _goose/unstable/providers/list", "title": "ListProvidersRequest" }, { @@ -2709,7 +2709,7 @@ "$ref": "#/$defs/ProviderCatalogListRequest" } ], - "description": "Params for _goose/v1/providers/catalog/list", + "description": "Params for _goose/unstable/providers/catalog/list", "title": "ProviderCatalogListRequest" }, { @@ -2718,7 +2718,7 @@ "$ref": "#/$defs/ProviderSetupCatalogListRequest" } ], - "description": "Params for _goose/v1/providers/setup/catalog/list", + "description": "Params for _goose/unstable/providers/setup/catalog/list", "title": "ProviderSetupCatalogListRequest" }, { @@ -2727,7 +2727,7 @@ "$ref": "#/$defs/ProviderCatalogTemplateRequest" } ], - "description": "Params for _goose/v1/providers/catalog/template", + "description": "Params for _goose/unstable/providers/catalog/template", "title": "ProviderCatalogTemplateRequest" }, { @@ -2736,7 +2736,7 @@ "$ref": "#/$defs/CustomProviderCreateRequest" } ], - "description": "Params for _goose/v1/providers/custom/create", + "description": "Params for _goose/unstable/providers/custom/create", "title": "CustomProviderCreateRequest" }, { @@ -2745,7 +2745,7 @@ "$ref": "#/$defs/CustomProviderReadRequest" } ], - "description": "Params for _goose/v1/providers/custom/read", + "description": "Params for _goose/unstable/providers/custom/read", "title": "CustomProviderReadRequest" }, { @@ -2754,7 +2754,7 @@ "$ref": "#/$defs/CustomProviderUpdateRequest" } ], - "description": "Params for _goose/v1/providers/custom/update", + "description": "Params for _goose/unstable/providers/custom/update", "title": "CustomProviderUpdateRequest" }, { @@ -2763,7 +2763,7 @@ "$ref": "#/$defs/CustomProviderDeleteRequest" } ], - "description": "Params for _goose/v1/providers/custom/delete", + "description": "Params for _goose/unstable/providers/custom/delete", "title": "CustomProviderDeleteRequest" }, { @@ -2772,7 +2772,7 @@ "$ref": "#/$defs/RefreshProviderInventoryRequest" } ], - "description": "Params for _goose/v1/providers/inventory/refresh", + "description": "Params for _goose/unstable/providers/inventory/refresh", "title": "RefreshProviderInventoryRequest" }, { @@ -2781,7 +2781,7 @@ "$ref": "#/$defs/ProviderConfigReadRequest" } ], - "description": "Params for _goose/v1/providers/config/read", + "description": "Params for _goose/unstable/providers/config/read", "title": "ProviderConfigReadRequest" }, { @@ -2790,7 +2790,7 @@ "$ref": "#/$defs/ProviderConfigStatusRequest" } ], - "description": "Params for _goose/v1/providers/config/status", + "description": "Params for _goose/unstable/providers/config/status", "title": "ProviderConfigStatusRequest" }, { @@ -2799,7 +2799,7 @@ "$ref": "#/$defs/ProviderConfigSaveRequest" } ], - "description": "Params for _goose/v1/providers/config/save", + "description": "Params for _goose/unstable/providers/config/save", "title": "ProviderConfigSaveRequest" }, { @@ -2808,7 +2808,7 @@ "$ref": "#/$defs/ProviderConfigDeleteRequest" } ], - "description": "Params for _goose/v1/providers/config/delete", + "description": "Params for _goose/unstable/providers/config/delete", "title": "ProviderConfigDeleteRequest" }, { @@ -2817,7 +2817,7 @@ "$ref": "#/$defs/ProviderConfigAuthenticateRequest" } ], - "description": "Params for _goose/v1/providers/config/authenticate", + "description": "Params for _goose/unstable/providers/config/authenticate", "title": "ProviderConfigAuthenticateRequest" }, { @@ -2826,7 +2826,7 @@ "$ref": "#/$defs/PreferencesReadRequest" } ], - "description": "Params for _goose/v1/preferences/read", + "description": "Params for _goose/unstable/preferences/read", "title": "PreferencesReadRequest" }, { @@ -2835,7 +2835,7 @@ "$ref": "#/$defs/PreferencesSaveRequest" } ], - "description": "Params for _goose/v1/preferences/save", + "description": "Params for _goose/unstable/preferences/save", "title": "PreferencesSaveRequest" }, { @@ -2844,7 +2844,7 @@ "$ref": "#/$defs/PreferencesRemoveRequest" } ], - "description": "Params for _goose/v1/preferences/remove", + "description": "Params for _goose/unstable/preferences/remove", "title": "PreferencesRemoveRequest" }, { @@ -2853,7 +2853,7 @@ "$ref": "#/$defs/DefaultsReadRequest" } ], - "description": "Params for _goose/v1/defaults/read", + "description": "Params for _goose/unstable/defaults/read", "title": "DefaultsReadRequest" }, { @@ -2862,7 +2862,7 @@ "$ref": "#/$defs/DefaultsSaveRequest" } ], - "description": "Params for _goose/v1/defaults/save", + "description": "Params for _goose/unstable/defaults/save", "title": "DefaultsSaveRequest" }, { @@ -2871,7 +2871,7 @@ "$ref": "#/$defs/OnboardingImportScanRequest" } ], - "description": "Params for _goose/v1/onboarding/import/scan", + "description": "Params for _goose/unstable/onboarding/import/scan", "title": "OnboardingImportScanRequest" }, { @@ -2880,7 +2880,7 @@ "$ref": "#/$defs/OnboardingImportApplyRequest" } ], - "description": "Params for _goose/v1/onboarding/import/apply", + "description": "Params for _goose/unstable/onboarding/import/apply", "title": "OnboardingImportApplyRequest" }, { @@ -2889,7 +2889,7 @@ "$ref": "#/$defs/ExportSessionRequest" } ], - "description": "Params for _goose/v1/session/export", + "description": "Params for _goose/unstable/session/export", "title": "ExportSessionRequest" }, { @@ -2898,7 +2898,7 @@ "$ref": "#/$defs/ImportSessionRequest" } ], - "description": "Params for _goose/v1/session/import", + "description": "Params for _goose/unstable/session/import", "title": "ImportSessionRequest" }, { @@ -2907,7 +2907,7 @@ "$ref": "#/$defs/UpdateSessionProjectRequest" } ], - "description": "Params for _goose/v1/session/project/update", + "description": "Params for _goose/unstable/session/project/update", "title": "UpdateSessionProjectRequest" }, { @@ -2916,7 +2916,7 @@ "$ref": "#/$defs/RenameSessionRequest" } ], - "description": "Params for _goose/v1/session/rename", + "description": "Params for _goose/unstable/session/rename", "title": "RenameSessionRequest" }, { @@ -2925,7 +2925,7 @@ "$ref": "#/$defs/ArchiveSessionRequest" } ], - "description": "Params for _goose/v1/session/archive", + "description": "Params for _goose/unstable/session/archive", "title": "ArchiveSessionRequest" }, { @@ -2934,7 +2934,7 @@ "$ref": "#/$defs/UnarchiveSessionRequest" } ], - "description": "Params for _goose/v1/session/unarchive", + "description": "Params for _goose/unstable/session/unarchive", "title": "UnarchiveSessionRequest" }, { @@ -2943,7 +2943,7 @@ "$ref": "#/$defs/CreateSourceRequest" } ], - "description": "Params for _goose/v1/sources/create", + "description": "Params for _goose/unstable/sources/create", "title": "CreateSourceRequest" }, { @@ -2952,7 +2952,7 @@ "$ref": "#/$defs/ListSourcesRequest" } ], - "description": "Params for _goose/v1/sources/list", + "description": "Params for _goose/unstable/sources/list", "title": "ListSourcesRequest" }, { @@ -2961,7 +2961,7 @@ "$ref": "#/$defs/UpdateSourceRequest" } ], - "description": "Params for _goose/v1/sources/update", + "description": "Params for _goose/unstable/sources/update", "title": "UpdateSourceRequest" }, { @@ -2970,7 +2970,7 @@ "$ref": "#/$defs/DeleteSourceRequest" } ], - "description": "Params for _goose/v1/sources/delete", + "description": "Params for _goose/unstable/sources/delete", "title": "DeleteSourceRequest" }, { @@ -2979,7 +2979,7 @@ "$ref": "#/$defs/ExportSourceRequest" } ], - "description": "Params for _goose/v1/sources/export", + "description": "Params for _goose/unstable/sources/export", "title": "ExportSourceRequest" }, { @@ -2988,7 +2988,7 @@ "$ref": "#/$defs/ImportSourcesRequest" } ], - "description": "Params for _goose/v1/sources/import", + "description": "Params for _goose/unstable/sources/import", "title": "ImportSourcesRequest" }, { @@ -2997,7 +2997,7 @@ "$ref": "#/$defs/DictationTranscribeRequest" } ], - "description": "Params for _goose/v1/dictation/transcribe", + "description": "Params for _goose/unstable/dictation/transcribe", "title": "DictationTranscribeRequest" }, { @@ -3006,7 +3006,7 @@ "$ref": "#/$defs/DictationConfigRequest" } ], - "description": "Params for _goose/v1/dictation/config", + "description": "Params for _goose/unstable/dictation/config", "title": "DictationConfigRequest" }, { @@ -3015,7 +3015,7 @@ "$ref": "#/$defs/DictationSecretSaveRequest" } ], - "description": "Params for _goose/v1/dictation/secret/save", + "description": "Params for _goose/unstable/dictation/secret/save", "title": "DictationSecretSaveRequest" }, { @@ -3024,7 +3024,7 @@ "$ref": "#/$defs/DictationSecretDeleteRequest" } ], - "description": "Params for _goose/v1/dictation/secret/delete", + "description": "Params for _goose/unstable/dictation/secret/delete", "title": "DictationSecretDeleteRequest" }, { @@ -3033,7 +3033,7 @@ "$ref": "#/$defs/DictationModelsListRequest" } ], - "description": "Params for _goose/v1/dictation/models/list", + "description": "Params for _goose/unstable/dictation/models/list", "title": "DictationModelsListRequest" }, { @@ -3042,7 +3042,7 @@ "$ref": "#/$defs/DictationModelDownloadRequest" } ], - "description": "Params for _goose/v1/dictation/models/download", + "description": "Params for _goose/unstable/dictation/models/download", "title": "DictationModelDownloadRequest" }, { @@ -3051,7 +3051,7 @@ "$ref": "#/$defs/DictationModelDownloadProgressRequest" } ], - "description": "Params for _goose/v1/dictation/models/download/progress", + "description": "Params for _goose/unstable/dictation/models/download/progress", "title": "DictationModelDownloadProgressRequest" }, { @@ -3060,7 +3060,7 @@ "$ref": "#/$defs/DictationModelCancelRequest" } ], - "description": "Params for _goose/v1/dictation/models/cancel", + "description": "Params for _goose/unstable/dictation/models/cancel", "title": "DictationModelCancelRequest" }, { @@ -3069,7 +3069,7 @@ "$ref": "#/$defs/DictationModelDeleteRequest" } ], - "description": "Params for _goose/v1/dictation/models/delete", + "description": "Params for _goose/unstable/dictation/models/delete", "title": "DictationModelDeleteRequest" }, { @@ -3078,7 +3078,7 @@ "$ref": "#/$defs/DictationModelSelectRequest" } ], - "description": "Params for _goose/v1/dictation/models/select", + "description": "Params for _goose/unstable/dictation/models/select", "title": "DictationModelSelectRequest" } ] diff --git a/ui/sdk/src/generated/client.gen.ts b/ui/sdk/src/generated/client.gen.ts index f75977978988..5ae73c458761 100644 --- a/ui/sdk/src/generated/client.gen.ts +++ b/ui/sdk/src/generated/client.gen.ts @@ -134,78 +134,97 @@ import { export class GooseExtClient { constructor(private conn: ExtMethodProvider) {} - async GooseSessionExtensionsAdd(params: AddExtensionRequest): Promise { - await this.conn.extMethod("_goose/v1/session/extensions/add", params); + async GooseUnstableSessionExtensionsAdd( + params: AddExtensionRequest, + ): Promise { + await this.conn.extMethod("_goose/unstable/session/extensions/add", params); } - async GooseSessionExtensionsRemove( + async GooseUnstableSessionExtensionsRemove( params: RemoveExtensionRequest, ): Promise { - await this.conn.extMethod("_goose/v1/session/extensions/remove", params); + await this.conn.extMethod( + "_goose/unstable/session/extensions/remove", + params, + ); } - async GooseToolsList(params: GetToolsRequest): Promise { - const raw = await this.conn.extMethod("_goose/v1/tools/list", params); + async GooseUnstableToolsList( + params: GetToolsRequest, + ): Promise { + const raw = await this.conn.extMethod("_goose/unstable/tools/list", params); return zGetToolsResponse.parse(raw) as GetToolsResponse; } - async GooseToolsCall( + async GooseUnstableToolsCall( params: GooseToolCallRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/v1/tools/call", params); + const raw = await this.conn.extMethod("_goose/unstable/tools/call", params); return zGooseToolCallResponse.parse(raw) as GooseToolCallResponse; } - async GooseResourcesRead( + async GooseUnstableResourcesRead( params: ReadResourceRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/v1/resources/read", params); + const raw = await this.conn.extMethod( + "_goose/unstable/resources/read", + params, + ); return zReadResourceResponse.parse(raw) as ReadResourceResponse; } - async GooseSessionWorkingDirUpdate( + async GooseUnstableSessionWorkingDirUpdate( params: UpdateWorkingDirRequest, ): Promise { - await this.conn.extMethod("_goose/v1/session/working-dir/update", params); + await this.conn.extMethod( + "_goose/unstable/session/working-dir/update", + params, + ); } async sessionDelete(params: DeleteSessionRequest): Promise { await this.conn.extMethod("session/delete", params); } - async GooseConfigExtensionsList( + async GooseUnstableConfigExtensionsList( params: GetExtensionsRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/v1/config/extensions/list", + "_goose/unstable/config/extensions/list", params, ); return zGetExtensionsResponse.parse(raw) as GetExtensionsResponse; } - async GooseConfigExtensionsAdd( + async GooseUnstableConfigExtensionsAdd( params: AddConfigExtensionRequest, ): Promise { - await this.conn.extMethod("_goose/v1/config/extensions/add", params); + await this.conn.extMethod("_goose/unstable/config/extensions/add", params); } - async GooseConfigExtensionsRemove( + async GooseUnstableConfigExtensionsRemove( params: RemoveConfigExtensionRequest, ): Promise { - await this.conn.extMethod("_goose/v1/config/extensions/remove", params); + await this.conn.extMethod( + "_goose/unstable/config/extensions/remove", + params, + ); } - async GooseConfigExtensionsToggle( + async GooseUnstableConfigExtensionsToggle( params: ToggleConfigExtensionRequest, ): Promise { - await this.conn.extMethod("_goose/v1/config/extensions/toggle", params); + await this.conn.extMethod( + "_goose/unstable/config/extensions/toggle", + params, + ); } - async GooseSessionExtensionsList( + async GooseUnstableSessionExtensionsList( params: GetSessionExtensionsRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/v1/session/extensions/list", + "_goose/unstable/session/extensions/list", params, ); return zGetSessionExtensionsResponse.parse( @@ -213,18 +232,21 @@ export class GooseExtClient { ) as GetSessionExtensionsResponse; } - async GooseProvidersList( + async GooseUnstableProvidersList( params: ListProvidersRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/v1/providers/list", params); + const raw = await this.conn.extMethod( + "_goose/unstable/providers/list", + params, + ); return zListProvidersResponse.parse(raw) as ListProvidersResponse; } - async GooseProvidersCatalogList( + async GooseUnstableProvidersCatalogList( params: ProviderCatalogListRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/v1/providers/catalog/list", + "_goose/unstable/providers/catalog/list", params, ); return zProviderCatalogListResponse.parse( @@ -232,11 +254,11 @@ export class GooseExtClient { ) as ProviderCatalogListResponse; } - async GooseProvidersSetupCatalogList( + async GooseUnstableProvidersSetupCatalogList( params: ProviderSetupCatalogListRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/v1/providers/setup/catalog/list", + "_goose/unstable/providers/setup/catalog/list", params, ); return zProviderSetupCatalogListResponse.parse( @@ -244,11 +266,11 @@ export class GooseExtClient { ) as ProviderSetupCatalogListResponse; } - async GooseProvidersCatalogTemplate( + async GooseUnstableProvidersCatalogTemplate( params: ProviderCatalogTemplateRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/v1/providers/catalog/template", + "_goose/unstable/providers/catalog/template", params, ); return zProviderCatalogTemplateResponse.parse( @@ -256,11 +278,11 @@ export class GooseExtClient { ) as ProviderCatalogTemplateResponse; } - async GooseProvidersCustomCreate( + async GooseUnstableProvidersCustomCreate( params: CustomProviderCreateRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/v1/providers/custom/create", + "_goose/unstable/providers/custom/create", params, ); return zCustomProviderCreateResponse.parse( @@ -268,21 +290,21 @@ export class GooseExtClient { ) as CustomProviderCreateResponse; } - async GooseProvidersCustomRead( + async GooseUnstableProvidersCustomRead( params: CustomProviderReadRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/v1/providers/custom/read", + "_goose/unstable/providers/custom/read", params, ); return zCustomProviderReadResponse.parse(raw) as CustomProviderReadResponse; } - async GooseProvidersCustomUpdate( + async GooseUnstableProvidersCustomUpdate( params: CustomProviderUpdateRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/v1/providers/custom/update", + "_goose/unstable/providers/custom/update", params, ); return zCustomProviderUpdateResponse.parse( @@ -290,11 +312,11 @@ export class GooseExtClient { ) as CustomProviderUpdateResponse; } - async GooseProvidersCustomDelete( + async GooseUnstableProvidersCustomDelete( params: CustomProviderDeleteRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/v1/providers/custom/delete", + "_goose/unstable/providers/custom/delete", params, ); return zCustomProviderDeleteResponse.parse( @@ -302,11 +324,11 @@ export class GooseExtClient { ) as CustomProviderDeleteResponse; } - async GooseProvidersInventoryRefresh( + async GooseUnstableProvidersInventoryRefresh( params: RefreshProviderInventoryRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/v1/providers/inventory/refresh", + "_goose/unstable/providers/inventory/refresh", params, ); return zRefreshProviderInventoryResponse.parse( @@ -314,21 +336,21 @@ export class GooseExtClient { ) as RefreshProviderInventoryResponse; } - async GooseProvidersConfigRead( + async GooseUnstableProvidersConfigRead( params: ProviderConfigReadRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/v1/providers/config/read", + "_goose/unstable/providers/config/read", params, ); return zProviderConfigReadResponse.parse(raw) as ProviderConfigReadResponse; } - async GooseProvidersConfigStatus( + async GooseUnstableProvidersConfigStatus( params: ProviderConfigStatusRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/v1/providers/config/status", + "_goose/unstable/providers/config/status", params, ); return zProviderConfigStatusResponse.parse( @@ -336,11 +358,11 @@ export class GooseExtClient { ) as ProviderConfigStatusResponse; } - async GooseProvidersConfigSave( + async GooseUnstableProvidersConfigSave( params: ProviderConfigSaveRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/v1/providers/config/save", + "_goose/unstable/providers/config/save", params, ); return zProviderConfigChangeResponse.parse( @@ -348,11 +370,11 @@ export class GooseExtClient { ) as ProviderConfigChangeResponse; } - async GooseProvidersConfigDelete( + async GooseUnstableProvidersConfigDelete( params: ProviderConfigDeleteRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/v1/providers/config/delete", + "_goose/unstable/providers/config/delete", params, ); return zProviderConfigChangeResponse.parse( @@ -360,11 +382,11 @@ export class GooseExtClient { ) as ProviderConfigChangeResponse; } - async GooseProvidersConfigAuthenticate( + async GooseUnstableProvidersConfigAuthenticate( params: ProviderConfigAuthenticateRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/v1/providers/config/authenticate", + "_goose/unstable/providers/config/authenticate", params, ); return zProviderConfigChangeResponse.parse( @@ -372,42 +394,53 @@ export class GooseExtClient { ) as ProviderConfigChangeResponse; } - async GoosePreferencesRead( + async GooseUnstablePreferencesRead( params: PreferencesReadRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/v1/preferences/read", params); + const raw = await this.conn.extMethod( + "_goose/unstable/preferences/read", + params, + ); return zPreferencesReadResponse.parse(raw) as PreferencesReadResponse; } - async GoosePreferencesSave(params: PreferencesSaveRequest): Promise { - await this.conn.extMethod("_goose/v1/preferences/save", params); + async GooseUnstablePreferencesSave( + params: PreferencesSaveRequest, + ): Promise { + await this.conn.extMethod("_goose/unstable/preferences/save", params); } - async GoosePreferencesRemove( + async GooseUnstablePreferencesRemove( params: PreferencesRemoveRequest, ): Promise { - await this.conn.extMethod("_goose/v1/preferences/remove", params); + await this.conn.extMethod("_goose/unstable/preferences/remove", params); } - async GooseDefaultsRead( + async GooseUnstableDefaultsRead( params: DefaultsReadRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/v1/defaults/read", params); + const raw = await this.conn.extMethod( + "_goose/unstable/defaults/read", + params, + ); return zDefaultsReadResponse.parse(raw) as DefaultsReadResponse; } - async GooseDefaultsSave( + async GooseUnstableDefaultsSave( params: DefaultsSaveRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/v1/defaults/save", params); + const raw = await this.conn.extMethod( + "_goose/unstable/defaults/save", + params, + ); return zDefaultsReadResponse.parse(raw) as DefaultsReadResponse; } - async GooseOnboardingImportScan( + async GooseUnstableOnboardingImportScan( params: OnboardingImportScanRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/v1/onboarding/import/scan", + "_goose/unstable/onboarding/import/scan", params, ); return zOnboardingImportScanResponse.parse( @@ -415,11 +448,11 @@ export class GooseExtClient { ) as OnboardingImportScanResponse; } - async GooseOnboardingImportApply( + async GooseUnstableOnboardingImportApply( params: OnboardingImportApplyRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/v1/onboarding/import/apply", + "_goose/unstable/onboarding/import/apply", params, ); return zOnboardingImportApplyResponse.parse( @@ -427,82 +460,109 @@ export class GooseExtClient { ) as OnboardingImportApplyResponse; } - async GooseSessionExport( + async GooseUnstableSessionExport( params: ExportSessionRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/v1/session/export", params); + const raw = await this.conn.extMethod( + "_goose/unstable/session/export", + params, + ); return zExportSessionResponse.parse(raw) as ExportSessionResponse; } - async GooseSessionImport( + async GooseUnstableSessionImport( params: ImportSessionRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/v1/session/import", params); + const raw = await this.conn.extMethod( + "_goose/unstable/session/import", + params, + ); return zImportSessionResponse.parse(raw) as ImportSessionResponse; } - async GooseSessionProjectUpdate( + async GooseUnstableSessionProjectUpdate( params: UpdateSessionProjectRequest, ): Promise { - await this.conn.extMethod("_goose/v1/session/project/update", params); + await this.conn.extMethod("_goose/unstable/session/project/update", params); } - async GooseSessionRename(params: RenameSessionRequest): Promise { - await this.conn.extMethod("_goose/v1/session/rename", params); + async GooseUnstableSessionRename( + params: RenameSessionRequest, + ): Promise { + await this.conn.extMethod("_goose/unstable/session/rename", params); } - async GooseSessionArchive(params: ArchiveSessionRequest): Promise { - await this.conn.extMethod("_goose/v1/session/archive", params); + async GooseUnstableSessionArchive( + params: ArchiveSessionRequest, + ): Promise { + await this.conn.extMethod("_goose/unstable/session/archive", params); } - async GooseSessionUnarchive(params: UnarchiveSessionRequest): Promise { - await this.conn.extMethod("_goose/v1/session/unarchive", params); + async GooseUnstableSessionUnarchive( + params: UnarchiveSessionRequest, + ): Promise { + await this.conn.extMethod("_goose/unstable/session/unarchive", params); } - async GooseSourcesCreate( + async GooseUnstableSourcesCreate( params: CreateSourceRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/v1/sources/create", params); + const raw = await this.conn.extMethod( + "_goose/unstable/sources/create", + params, + ); return zCreateSourceResponse.parse(raw) as CreateSourceResponse; } - async GooseSourcesList( + async GooseUnstableSourcesList( params: ListSourcesRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/v1/sources/list", params); + const raw = await this.conn.extMethod( + "_goose/unstable/sources/list", + params, + ); return zListSourcesResponse.parse(raw) as ListSourcesResponse; } - async GooseSourcesUpdate( + async GooseUnstableSourcesUpdate( params: UpdateSourceRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/v1/sources/update", params); + const raw = await this.conn.extMethod( + "_goose/unstable/sources/update", + params, + ); return zUpdateSourceResponse.parse(raw) as UpdateSourceResponse; } - async GooseSourcesDelete(params: DeleteSourceRequest): Promise { - await this.conn.extMethod("_goose/v1/sources/delete", params); + async GooseUnstableSourcesDelete(params: DeleteSourceRequest): Promise { + await this.conn.extMethod("_goose/unstable/sources/delete", params); } - async GooseSourcesExport( + async GooseUnstableSourcesExport( params: ExportSourceRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/v1/sources/export", params); + const raw = await this.conn.extMethod( + "_goose/unstable/sources/export", + params, + ); return zExportSourceResponse.parse(raw) as ExportSourceResponse; } - async GooseSourcesImport( + async GooseUnstableSourcesImport( params: ImportSourcesRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/v1/sources/import", params); + const raw = await this.conn.extMethod( + "_goose/unstable/sources/import", + params, + ); return zImportSourcesResponse.parse(raw) as ImportSourcesResponse; } - async GooseDictationTranscribe( + async GooseUnstableDictationTranscribe( params: DictationTranscribeRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/v1/dictation/transcribe", + "_goose/unstable/dictation/transcribe", params, ); return zDictationTranscribeResponse.parse( @@ -510,30 +570,36 @@ export class GooseExtClient { ) as DictationTranscribeResponse; } - async GooseDictationConfig( + async GooseUnstableDictationConfig( params: DictationConfigRequest, ): Promise { - const raw = await this.conn.extMethod("_goose/v1/dictation/config", params); + const raw = await this.conn.extMethod( + "_goose/unstable/dictation/config", + params, + ); return zDictationConfigResponse.parse(raw) as DictationConfigResponse; } - async GooseDictationSecretSave( + async GooseUnstableDictationSecretSave( params: DictationSecretSaveRequest, ): Promise { - await this.conn.extMethod("_goose/v1/dictation/secret/save", params); + await this.conn.extMethod("_goose/unstable/dictation/secret/save", params); } - async GooseDictationSecretDelete( + async GooseUnstableDictationSecretDelete( params: DictationSecretDeleteRequest, ): Promise { - await this.conn.extMethod("_goose/v1/dictation/secret/delete", params); + await this.conn.extMethod( + "_goose/unstable/dictation/secret/delete", + params, + ); } - async GooseDictationModelsList( + async GooseUnstableDictationModelsList( params: DictationModelsListRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/v1/dictation/models/list", + "_goose/unstable/dictation/models/list", params, ); return zDictationModelsListResponse.parse( @@ -541,17 +607,20 @@ export class GooseExtClient { ) as DictationModelsListResponse; } - async GooseDictationModelsDownload( + async GooseUnstableDictationModelsDownload( params: DictationModelDownloadRequest, ): Promise { - await this.conn.extMethod("_goose/v1/dictation/models/download", params); + await this.conn.extMethod( + "_goose/unstable/dictation/models/download", + params, + ); } - async GooseDictationModelsDownloadProgress( + async GooseUnstableDictationModelsDownloadProgress( params: DictationModelDownloadProgressRequest, ): Promise { const raw = await this.conn.extMethod( - "_goose/v1/dictation/models/download/progress", + "_goose/unstable/dictation/models/download/progress", params, ); return zDictationModelDownloadProgressResponse.parse( @@ -559,21 +628,30 @@ export class GooseExtClient { ) as DictationModelDownloadProgressResponse; } - async GooseDictationModelsCancel( + async GooseUnstableDictationModelsCancel( params: DictationModelCancelRequest, ): Promise { - await this.conn.extMethod("_goose/v1/dictation/models/cancel", params); + await this.conn.extMethod( + "_goose/unstable/dictation/models/cancel", + params, + ); } - async GooseDictationModelsDelete( + async GooseUnstableDictationModelsDelete( params: DictationModelDeleteRequest, ): Promise { - await this.conn.extMethod("_goose/v1/dictation/models/delete", params); + await this.conn.extMethod( + "_goose/unstable/dictation/models/delete", + params, + ); } - async GooseDictationModelsSelect( + async GooseUnstableDictationModelsSelect( params: DictationModelSelectRequest, ): Promise { - await this.conn.extMethod("_goose/v1/dictation/models/select", params); + await this.conn.extMethod( + "_goose/unstable/dictation/models/select", + params, + ); } } diff --git a/ui/sdk/src/generated/index.ts b/ui/sdk/src/generated/index.ts index 47bce566ca6b..f1d934537111 100644 --- a/ui/sdk/src/generated/index.ts +++ b/ui/sdk/src/generated/index.ts @@ -4,32 +4,32 @@ export type { AddConfigExtensionRequest, AddExtensionRequest, ArchiveSessionRequ export const GOOSE_EXT_METHODS = [ { - method: "_goose/v1/session/extensions/add", + method: "_goose/unstable/session/extensions/add", requestType: "AddExtensionRequest", responseType: "EmptyResponse", }, { - method: "_goose/v1/session/extensions/remove", + method: "_goose/unstable/session/extensions/remove", requestType: "RemoveExtensionRequest", responseType: "EmptyResponse", }, { - method: "_goose/v1/tools/list", + method: "_goose/unstable/tools/list", requestType: "GetToolsRequest", responseType: "GetToolsResponse", }, { - method: "_goose/v1/tools/call", + method: "_goose/unstable/tools/call", requestType: "GooseToolCallRequest", responseType: "GooseToolCallResponse", }, { - method: "_goose/v1/resources/read", + method: "_goose/unstable/resources/read", requestType: "ReadResourceRequest", responseType: "ReadResourceResponse", }, { - method: "_goose/v1/session/working-dir/update", + method: "_goose/unstable/session/working-dir/update", requestType: "UpdateWorkingDirRequest", responseType: "EmptyResponse", }, @@ -39,242 +39,242 @@ export const GOOSE_EXT_METHODS = [ responseType: "EmptyResponse", }, { - method: "_goose/v1/config/extensions/list", + method: "_goose/unstable/config/extensions/list", requestType: "GetExtensionsRequest", responseType: "GetExtensionsResponse", }, { - method: "_goose/v1/config/extensions/add", + method: "_goose/unstable/config/extensions/add", requestType: "AddConfigExtensionRequest", responseType: "EmptyResponse", }, { - method: "_goose/v1/config/extensions/remove", + method: "_goose/unstable/config/extensions/remove", requestType: "RemoveConfigExtensionRequest", responseType: "EmptyResponse", }, { - method: "_goose/v1/config/extensions/toggle", + method: "_goose/unstable/config/extensions/toggle", requestType: "ToggleConfigExtensionRequest", responseType: "EmptyResponse", }, { - method: "_goose/v1/session/extensions/list", + method: "_goose/unstable/session/extensions/list", requestType: "GetSessionExtensionsRequest", responseType: "GetSessionExtensionsResponse", }, { - method: "_goose/v1/providers/list", + method: "_goose/unstable/providers/list", requestType: "ListProvidersRequest", responseType: "ListProvidersResponse", }, { - method: "_goose/v1/providers/catalog/list", + method: "_goose/unstable/providers/catalog/list", requestType: "ProviderCatalogListRequest", responseType: "ProviderCatalogListResponse", }, { - method: "_goose/v1/providers/setup/catalog/list", + method: "_goose/unstable/providers/setup/catalog/list", requestType: "ProviderSetupCatalogListRequest", responseType: "ProviderSetupCatalogListResponse", }, { - method: "_goose/v1/providers/catalog/template", + method: "_goose/unstable/providers/catalog/template", requestType: "ProviderCatalogTemplateRequest", responseType: "ProviderCatalogTemplateResponse", }, { - method: "_goose/v1/providers/custom/create", + method: "_goose/unstable/providers/custom/create", requestType: "CustomProviderCreateRequest", responseType: "CustomProviderCreateResponse", }, { - method: "_goose/v1/providers/custom/read", + method: "_goose/unstable/providers/custom/read", requestType: "CustomProviderReadRequest", responseType: "CustomProviderReadResponse", }, { - method: "_goose/v1/providers/custom/update", + method: "_goose/unstable/providers/custom/update", requestType: "CustomProviderUpdateRequest", responseType: "CustomProviderUpdateResponse", }, { - method: "_goose/v1/providers/custom/delete", + method: "_goose/unstable/providers/custom/delete", requestType: "CustomProviderDeleteRequest", responseType: "CustomProviderDeleteResponse", }, { - method: "_goose/v1/providers/inventory/refresh", + method: "_goose/unstable/providers/inventory/refresh", requestType: "RefreshProviderInventoryRequest", responseType: "RefreshProviderInventoryResponse", }, { - method: "_goose/v1/providers/config/read", + method: "_goose/unstable/providers/config/read", requestType: "ProviderConfigReadRequest", responseType: "ProviderConfigReadResponse", }, { - method: "_goose/v1/providers/config/status", + method: "_goose/unstable/providers/config/status", requestType: "ProviderConfigStatusRequest", responseType: "ProviderConfigStatusResponse", }, { - method: "_goose/v1/providers/config/save", + method: "_goose/unstable/providers/config/save", requestType: "ProviderConfigSaveRequest", responseType: "ProviderConfigChangeResponse", }, { - method: "_goose/v1/providers/config/delete", + method: "_goose/unstable/providers/config/delete", requestType: "ProviderConfigDeleteRequest", responseType: "ProviderConfigChangeResponse", }, { - method: "_goose/v1/providers/config/authenticate", + method: "_goose/unstable/providers/config/authenticate", requestType: "ProviderConfigAuthenticateRequest", responseType: "ProviderConfigChangeResponse", }, { - method: "_goose/v1/preferences/read", + method: "_goose/unstable/preferences/read", requestType: "PreferencesReadRequest", responseType: "PreferencesReadResponse", }, { - method: "_goose/v1/preferences/save", + method: "_goose/unstable/preferences/save", requestType: "PreferencesSaveRequest", responseType: "EmptyResponse", }, { - method: "_goose/v1/preferences/remove", + method: "_goose/unstable/preferences/remove", requestType: "PreferencesRemoveRequest", responseType: "EmptyResponse", }, { - method: "_goose/v1/defaults/read", + method: "_goose/unstable/defaults/read", requestType: "DefaultsReadRequest", responseType: "DefaultsReadResponse", }, { - method: "_goose/v1/defaults/save", + method: "_goose/unstable/defaults/save", requestType: "DefaultsSaveRequest", responseType: "DefaultsReadResponse", }, { - method: "_goose/v1/onboarding/import/scan", + method: "_goose/unstable/onboarding/import/scan", requestType: "OnboardingImportScanRequest", responseType: "OnboardingImportScanResponse", }, { - method: "_goose/v1/onboarding/import/apply", + method: "_goose/unstable/onboarding/import/apply", requestType: "OnboardingImportApplyRequest", responseType: "OnboardingImportApplyResponse", }, { - method: "_goose/v1/session/export", + method: "_goose/unstable/session/export", requestType: "ExportSessionRequest", responseType: "ExportSessionResponse", }, { - method: "_goose/v1/session/import", + method: "_goose/unstable/session/import", requestType: "ImportSessionRequest", responseType: "ImportSessionResponse", }, { - method: "_goose/v1/session/project/update", + method: "_goose/unstable/session/project/update", requestType: "UpdateSessionProjectRequest", responseType: "EmptyResponse", }, { - method: "_goose/v1/session/rename", + method: "_goose/unstable/session/rename", requestType: "RenameSessionRequest", responseType: "EmptyResponse", }, { - method: "_goose/v1/session/archive", + method: "_goose/unstable/session/archive", requestType: "ArchiveSessionRequest", responseType: "EmptyResponse", }, { - method: "_goose/v1/session/unarchive", + method: "_goose/unstable/session/unarchive", requestType: "UnarchiveSessionRequest", responseType: "EmptyResponse", }, { - method: "_goose/v1/sources/create", + method: "_goose/unstable/sources/create", requestType: "CreateSourceRequest", responseType: "CreateSourceResponse", }, { - method: "_goose/v1/sources/list", + method: "_goose/unstable/sources/list", requestType: "ListSourcesRequest", responseType: "ListSourcesResponse", }, { - method: "_goose/v1/sources/update", + method: "_goose/unstable/sources/update", requestType: "UpdateSourceRequest", responseType: "UpdateSourceResponse", }, { - method: "_goose/v1/sources/delete", + method: "_goose/unstable/sources/delete", requestType: "DeleteSourceRequest", responseType: "EmptyResponse", }, { - method: "_goose/v1/sources/export", + method: "_goose/unstable/sources/export", requestType: "ExportSourceRequest", responseType: "ExportSourceResponse", }, { - method: "_goose/v1/sources/import", + method: "_goose/unstable/sources/import", requestType: "ImportSourcesRequest", responseType: "ImportSourcesResponse", }, { - method: "_goose/v1/dictation/transcribe", + method: "_goose/unstable/dictation/transcribe", requestType: "DictationTranscribeRequest", responseType: "DictationTranscribeResponse", }, { - method: "_goose/v1/dictation/config", + method: "_goose/unstable/dictation/config", requestType: "DictationConfigRequest", responseType: "DictationConfigResponse", }, { - method: "_goose/v1/dictation/secret/save", + method: "_goose/unstable/dictation/secret/save", requestType: "DictationSecretSaveRequest", responseType: "EmptyResponse", }, { - method: "_goose/v1/dictation/secret/delete", + method: "_goose/unstable/dictation/secret/delete", requestType: "DictationSecretDeleteRequest", responseType: "EmptyResponse", }, { - method: "_goose/v1/dictation/models/list", + method: "_goose/unstable/dictation/models/list", requestType: "DictationModelsListRequest", responseType: "DictationModelsListResponse", }, { - method: "_goose/v1/dictation/models/download", + method: "_goose/unstable/dictation/models/download", requestType: "DictationModelDownloadRequest", responseType: "EmptyResponse", }, { - method: "_goose/v1/dictation/models/download/progress", + method: "_goose/unstable/dictation/models/download/progress", requestType: "DictationModelDownloadProgressRequest", responseType: "DictationModelDownloadProgressResponse", }, { - method: "_goose/v1/dictation/models/cancel", + method: "_goose/unstable/dictation/models/cancel", requestType: "DictationModelCancelRequest", responseType: "EmptyResponse", }, { - method: "_goose/v1/dictation/models/delete", + method: "_goose/unstable/dictation/models/delete", requestType: "DictationModelDeleteRequest", responseType: "EmptyResponse", }, { - method: "_goose/v1/dictation/models/select", + method: "_goose/unstable/dictation/models/select", requestType: "DictationModelSelectRequest", responseType: "EmptyResponse", }, diff --git a/ui/sdk/src/generated/types.gen.ts b/ui/sdk/src/generated/types.gen.ts index 1fad27eb00a2..d9bc1c2df1a9 100644 --- a/ui/sdk/src/generated/types.gen.ts +++ b/ui/sdk/src/generated/types.gen.ts @@ -891,7 +891,7 @@ export type ExportSourceResponse = { }; /** - * Import a source from a JSON export payload produced by `_goose/v1/sources/export`. + * Import a source from a JSON export payload produced by `_goose/unstable/sources/export`. * The imported source is written into the explicit target scope; on name * collisions a `-imported` suffix is appended. */ diff --git a/ui/sdk/src/generated/zod.gen.ts b/ui/sdk/src/generated/zod.gen.ts index 0b0f3b484074..08d6da8dfaff 100644 --- a/ui/sdk/src/generated/zod.gen.ts +++ b/ui/sdk/src/generated/zod.gen.ts @@ -883,7 +883,7 @@ export const zExportSourceResponse = z.object({ }); /** - * Import a source from a JSON export payload produced by `_goose/v1/sources/export`. + * Import a source from a JSON export payload produced by `_goose/unstable/sources/export`. * The imported source is written into the explicit target scope; on name * collisions a `-imported` suffix is appended. */ From b5224dde035faf79a55c52b9ec558cc89c6d48fc Mon Sep 17 00:00:00 2001 From: Jack Amadeo Date: Wed, 20 May 2026 11:07:20 -0400 Subject: [PATCH 4/8] Add to method name --- crates/goose/acp-meta.json | 178 +++---- crates/goose/acp-schema.json | 526 +++++++++---------- crates/goose/src/bin/generate_acp_schema.rs | 86 ++- ui/sdk/src/generated/client.gen.ts | 554 +++++++++++--------- ui/sdk/src/generated/index.ts | 180 +++---- ui/sdk/src/generated/types.gen.ts | 186 +++---- ui/sdk/src/generated/zod.gen.ts | 354 ++++++------- 7 files changed, 1085 insertions(+), 979 deletions(-) diff --git a/crates/goose/acp-meta.json b/crates/goose/acp-meta.json index 46173e5ae28b..60893f102010 100644 --- a/crates/goose/acp-meta.json +++ b/crates/goose/acp-meta.json @@ -2,32 +2,32 @@ "methods": [ { "method": "_goose/unstable/session/extensions/add", - "requestType": "AddExtensionRequest", + "requestType": "AddExtensionRequest_unstable", "responseType": "EmptyResponse" }, { "method": "_goose/unstable/session/extensions/remove", - "requestType": "RemoveExtensionRequest", + "requestType": "RemoveExtensionRequest_unstable", "responseType": "EmptyResponse" }, { "method": "_goose/unstable/tools/list", - "requestType": "GetToolsRequest", - "responseType": "GetToolsResponse" + "requestType": "GetToolsRequest_unstable", + "responseType": "GetToolsResponse_unstable" }, { "method": "_goose/unstable/tools/call", - "requestType": "GooseToolCallRequest", - "responseType": "GooseToolCallResponse" + "requestType": "GooseToolCallRequest_unstable", + "responseType": "GooseToolCallResponse_unstable" }, { "method": "_goose/unstable/resources/read", - "requestType": "ReadResourceRequest", - "responseType": "ReadResourceResponse" + "requestType": "ReadResourceRequest_unstable", + "responseType": "ReadResourceResponse_unstable" }, { "method": "_goose/unstable/session/working-dir/update", - "requestType": "UpdateWorkingDirRequest", + "requestType": "UpdateWorkingDirRequest_unstable", "responseType": "EmptyResponse" }, { @@ -37,242 +37,242 @@ }, { "method": "_goose/unstable/config/extensions/list", - "requestType": "GetExtensionsRequest", - "responseType": "GetExtensionsResponse" + "requestType": "GetExtensionsRequest_unstable", + "responseType": "GetExtensionsResponse_unstable" }, { "method": "_goose/unstable/config/extensions/add", - "requestType": "AddConfigExtensionRequest", + "requestType": "AddConfigExtensionRequest_unstable", "responseType": "EmptyResponse" }, { "method": "_goose/unstable/config/extensions/remove", - "requestType": "RemoveConfigExtensionRequest", + "requestType": "RemoveConfigExtensionRequest_unstable", "responseType": "EmptyResponse" }, { "method": "_goose/unstable/config/extensions/toggle", - "requestType": "ToggleConfigExtensionRequest", + "requestType": "ToggleConfigExtensionRequest_unstable", "responseType": "EmptyResponse" }, { "method": "_goose/unstable/session/extensions/list", - "requestType": "GetSessionExtensionsRequest", - "responseType": "GetSessionExtensionsResponse" + "requestType": "GetSessionExtensionsRequest_unstable", + "responseType": "GetSessionExtensionsResponse_unstable" }, { "method": "_goose/unstable/providers/list", - "requestType": "ListProvidersRequest", - "responseType": "ListProvidersResponse" + "requestType": "ListProvidersRequest_unstable", + "responseType": "ListProvidersResponse_unstable" }, { "method": "_goose/unstable/providers/catalog/list", - "requestType": "ProviderCatalogListRequest", - "responseType": "ProviderCatalogListResponse" + "requestType": "ProviderCatalogListRequest_unstable", + "responseType": "ProviderCatalogListResponse_unstable" }, { "method": "_goose/unstable/providers/setup/catalog/list", - "requestType": "ProviderSetupCatalogListRequest", - "responseType": "ProviderSetupCatalogListResponse" + "requestType": "ProviderSetupCatalogListRequest_unstable", + "responseType": "ProviderSetupCatalogListResponse_unstable" }, { "method": "_goose/unstable/providers/catalog/template", - "requestType": "ProviderCatalogTemplateRequest", - "responseType": "ProviderCatalogTemplateResponse" + "requestType": "ProviderCatalogTemplateRequest_unstable", + "responseType": "ProviderCatalogTemplateResponse_unstable" }, { "method": "_goose/unstable/providers/custom/create", - "requestType": "CustomProviderCreateRequest", - "responseType": "CustomProviderCreateResponse" + "requestType": "CustomProviderCreateRequest_unstable", + "responseType": "CustomProviderCreateResponse_unstable" }, { "method": "_goose/unstable/providers/custom/read", - "requestType": "CustomProviderReadRequest", - "responseType": "CustomProviderReadResponse" + "requestType": "CustomProviderReadRequest_unstable", + "responseType": "CustomProviderReadResponse_unstable" }, { "method": "_goose/unstable/providers/custom/update", - "requestType": "CustomProviderUpdateRequest", - "responseType": "CustomProviderUpdateResponse" + "requestType": "CustomProviderUpdateRequest_unstable", + "responseType": "CustomProviderUpdateResponse_unstable" }, { "method": "_goose/unstable/providers/custom/delete", - "requestType": "CustomProviderDeleteRequest", - "responseType": "CustomProviderDeleteResponse" + "requestType": "CustomProviderDeleteRequest_unstable", + "responseType": "CustomProviderDeleteResponse_unstable" }, { "method": "_goose/unstable/providers/inventory/refresh", - "requestType": "RefreshProviderInventoryRequest", - "responseType": "RefreshProviderInventoryResponse" + "requestType": "RefreshProviderInventoryRequest_unstable", + "responseType": "RefreshProviderInventoryResponse_unstable" }, { "method": "_goose/unstable/providers/config/read", - "requestType": "ProviderConfigReadRequest", - "responseType": "ProviderConfigReadResponse" + "requestType": "ProviderConfigReadRequest_unstable", + "responseType": "ProviderConfigReadResponse_unstable" }, { "method": "_goose/unstable/providers/config/status", - "requestType": "ProviderConfigStatusRequest", - "responseType": "ProviderConfigStatusResponse" + "requestType": "ProviderConfigStatusRequest_unstable", + "responseType": "ProviderConfigStatusResponse_unstable" }, { "method": "_goose/unstable/providers/config/save", - "requestType": "ProviderConfigSaveRequest", - "responseType": "ProviderConfigChangeResponse" + "requestType": "ProviderConfigSaveRequest_unstable", + "responseType": "ProviderConfigChangeResponse_unstable" }, { "method": "_goose/unstable/providers/config/delete", - "requestType": "ProviderConfigDeleteRequest", - "responseType": "ProviderConfigChangeResponse" + "requestType": "ProviderConfigDeleteRequest_unstable", + "responseType": "ProviderConfigChangeResponse_unstable" }, { "method": "_goose/unstable/providers/config/authenticate", - "requestType": "ProviderConfigAuthenticateRequest", - "responseType": "ProviderConfigChangeResponse" + "requestType": "ProviderConfigAuthenticateRequest_unstable", + "responseType": "ProviderConfigChangeResponse_unstable" }, { "method": "_goose/unstable/preferences/read", - "requestType": "PreferencesReadRequest", - "responseType": "PreferencesReadResponse" + "requestType": "PreferencesReadRequest_unstable", + "responseType": "PreferencesReadResponse_unstable" }, { "method": "_goose/unstable/preferences/save", - "requestType": "PreferencesSaveRequest", + "requestType": "PreferencesSaveRequest_unstable", "responseType": "EmptyResponse" }, { "method": "_goose/unstable/preferences/remove", - "requestType": "PreferencesRemoveRequest", + "requestType": "PreferencesRemoveRequest_unstable", "responseType": "EmptyResponse" }, { "method": "_goose/unstable/defaults/read", - "requestType": "DefaultsReadRequest", - "responseType": "DefaultsReadResponse" + "requestType": "DefaultsReadRequest_unstable", + "responseType": "DefaultsReadResponse_unstable" }, { "method": "_goose/unstable/defaults/save", - "requestType": "DefaultsSaveRequest", - "responseType": "DefaultsReadResponse" + "requestType": "DefaultsSaveRequest_unstable", + "responseType": "DefaultsReadResponse_unstable" }, { "method": "_goose/unstable/onboarding/import/scan", - "requestType": "OnboardingImportScanRequest", - "responseType": "OnboardingImportScanResponse" + "requestType": "OnboardingImportScanRequest_unstable", + "responseType": "OnboardingImportScanResponse_unstable" }, { "method": "_goose/unstable/onboarding/import/apply", - "requestType": "OnboardingImportApplyRequest", - "responseType": "OnboardingImportApplyResponse" + "requestType": "OnboardingImportApplyRequest_unstable", + "responseType": "OnboardingImportApplyResponse_unstable" }, { "method": "_goose/unstable/session/export", - "requestType": "ExportSessionRequest", - "responseType": "ExportSessionResponse" + "requestType": "ExportSessionRequest_unstable", + "responseType": "ExportSessionResponse_unstable" }, { "method": "_goose/unstable/session/import", - "requestType": "ImportSessionRequest", - "responseType": "ImportSessionResponse" + "requestType": "ImportSessionRequest_unstable", + "responseType": "ImportSessionResponse_unstable" }, { "method": "_goose/unstable/session/project/update", - "requestType": "UpdateSessionProjectRequest", + "requestType": "UpdateSessionProjectRequest_unstable", "responseType": "EmptyResponse" }, { "method": "_goose/unstable/session/rename", - "requestType": "RenameSessionRequest", + "requestType": "RenameSessionRequest_unstable", "responseType": "EmptyResponse" }, { "method": "_goose/unstable/session/archive", - "requestType": "ArchiveSessionRequest", + "requestType": "ArchiveSessionRequest_unstable", "responseType": "EmptyResponse" }, { "method": "_goose/unstable/session/unarchive", - "requestType": "UnarchiveSessionRequest", + "requestType": "UnarchiveSessionRequest_unstable", "responseType": "EmptyResponse" }, { "method": "_goose/unstable/sources/create", - "requestType": "CreateSourceRequest", - "responseType": "CreateSourceResponse" + "requestType": "CreateSourceRequest_unstable", + "responseType": "CreateSourceResponse_unstable" }, { "method": "_goose/unstable/sources/list", - "requestType": "ListSourcesRequest", - "responseType": "ListSourcesResponse" + "requestType": "ListSourcesRequest_unstable", + "responseType": "ListSourcesResponse_unstable" }, { "method": "_goose/unstable/sources/update", - "requestType": "UpdateSourceRequest", - "responseType": "UpdateSourceResponse" + "requestType": "UpdateSourceRequest_unstable", + "responseType": "UpdateSourceResponse_unstable" }, { "method": "_goose/unstable/sources/delete", - "requestType": "DeleteSourceRequest", + "requestType": "DeleteSourceRequest_unstable", "responseType": "EmptyResponse" }, { "method": "_goose/unstable/sources/export", - "requestType": "ExportSourceRequest", - "responseType": "ExportSourceResponse" + "requestType": "ExportSourceRequest_unstable", + "responseType": "ExportSourceResponse_unstable" }, { "method": "_goose/unstable/sources/import", - "requestType": "ImportSourcesRequest", - "responseType": "ImportSourcesResponse" + "requestType": "ImportSourcesRequest_unstable", + "responseType": "ImportSourcesResponse_unstable" }, { "method": "_goose/unstable/dictation/transcribe", - "requestType": "DictationTranscribeRequest", - "responseType": "DictationTranscribeResponse" + "requestType": "DictationTranscribeRequest_unstable", + "responseType": "DictationTranscribeResponse_unstable" }, { "method": "_goose/unstable/dictation/config", - "requestType": "DictationConfigRequest", - "responseType": "DictationConfigResponse" + "requestType": "DictationConfigRequest_unstable", + "responseType": "DictationConfigResponse_unstable" }, { "method": "_goose/unstable/dictation/secret/save", - "requestType": "DictationSecretSaveRequest", + "requestType": "DictationSecretSaveRequest_unstable", "responseType": "EmptyResponse" }, { "method": "_goose/unstable/dictation/secret/delete", - "requestType": "DictationSecretDeleteRequest", + "requestType": "DictationSecretDeleteRequest_unstable", "responseType": "EmptyResponse" }, { "method": "_goose/unstable/dictation/models/list", - "requestType": "DictationModelsListRequest", - "responseType": "DictationModelsListResponse" + "requestType": "DictationModelsListRequest_unstable", + "responseType": "DictationModelsListResponse_unstable" }, { "method": "_goose/unstable/dictation/models/download", - "requestType": "DictationModelDownloadRequest", + "requestType": "DictationModelDownloadRequest_unstable", "responseType": "EmptyResponse" }, { "method": "_goose/unstable/dictation/models/download/progress", - "requestType": "DictationModelDownloadProgressRequest", - "responseType": "DictationModelDownloadProgressResponse" + "requestType": "DictationModelDownloadProgressRequest_unstable", + "responseType": "DictationModelDownloadProgressResponse_unstable" }, { "method": "_goose/unstable/dictation/models/cancel", - "requestType": "DictationModelCancelRequest", + "requestType": "DictationModelCancelRequest_unstable", "responseType": "EmptyResponse" }, { "method": "_goose/unstable/dictation/models/delete", - "requestType": "DictationModelDeleteRequest", + "requestType": "DictationModelDeleteRequest_unstable", "responseType": "EmptyResponse" }, { "method": "_goose/unstable/dictation/models/select", - "requestType": "DictationModelSelectRequest", + "requestType": "DictationModelSelectRequest_unstable", "responseType": "EmptyResponse" } ] diff --git a/crates/goose/acp-schema.json b/crates/goose/acp-schema.json index 74d5e6a37045..63bf2b76439c 100644 --- a/crates/goose/acp-schema.json +++ b/crates/goose/acp-schema.json @@ -2,7 +2,7 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "GooseExtensions", "$defs": { - "AddExtensionRequest": { + "AddExtensionRequest_unstable": { "type": "object", "properties": { "sessionId": { @@ -25,7 +25,7 @@ "description": "Empty success response for operations that return no data.", "x-side": "agent" }, - "RemoveExtensionRequest": { + "RemoveExtensionRequest_unstable": { "type": "object", "properties": { "sessionId": { @@ -43,7 +43,7 @@ "x-side": "agent", "x-method": "_goose/unstable/session/extensions/remove" }, - "GetToolsRequest": { + "GetToolsRequest_unstable": { "type": "object", "properties": { "sessionId": { @@ -57,7 +57,7 @@ "x-side": "agent", "x-method": "_goose/unstable/tools/list" }, - "GetToolsResponse": { + "GetToolsResponse_unstable": { "type": "object", "properties": { "tools": { @@ -73,7 +73,7 @@ "x-side": "agent", "x-method": "_goose/unstable/tools/list" }, - "GooseToolCallRequest": { + "GooseToolCallRequest_unstable": { "type": "object", "properties": { "sessionId": { @@ -94,7 +94,7 @@ "x-side": "agent", "x-method": "_goose/unstable/tools/call" }, - "GooseToolCallResponse": { + "GooseToolCallResponse_unstable": { "type": "object", "properties": { "content": { @@ -115,7 +115,7 @@ "x-side": "agent", "x-method": "_goose/unstable/tools/call" }, - "ReadResourceRequest": { + "ReadResourceRequest_unstable": { "type": "object", "properties": { "sessionId": { @@ -137,7 +137,7 @@ "x-side": "agent", "x-method": "_goose/unstable/resources/read" }, - "ReadResourceResponse": { + "ReadResourceResponse_unstable": { "type": "object", "properties": { "result": { @@ -149,7 +149,7 @@ "x-side": "agent", "x-method": "_goose/unstable/resources/read" }, - "UpdateWorkingDirRequest": { + "UpdateWorkingDirRequest_unstable": { "type": "object", "properties": { "sessionId": { @@ -181,13 +181,13 @@ "x-side": "agent", "x-method": "session/delete" }, - "GetExtensionsRequest": { + "GetExtensionsRequest_unstable": { "type": "object", "description": "List configured extensions and any warnings.", "x-side": "agent", "x-method": "_goose/unstable/config/extensions/list" }, - "GetExtensionsResponse": { + "GetExtensionsResponse_unstable": { "type": "object", "properties": { "extensions": { @@ -210,7 +210,7 @@ "x-side": "agent", "x-method": "_goose/unstable/config/extensions/list" }, - "AddConfigExtensionRequest": { + "AddConfigExtensionRequest_unstable": { "type": "object", "properties": { "name": { @@ -232,7 +232,7 @@ "x-side": "agent", "x-method": "_goose/unstable/config/extensions/add" }, - "RemoveConfigExtensionRequest": { + "RemoveConfigExtensionRequest_unstable": { "type": "object", "properties": { "configKey": { @@ -246,7 +246,7 @@ "x-side": "agent", "x-method": "_goose/unstable/config/extensions/remove" }, - "ToggleConfigExtensionRequest": { + "ToggleConfigExtensionRequest_unstable": { "type": "object", "properties": { "configKey": { @@ -264,7 +264,7 @@ "x-side": "agent", "x-method": "_goose/unstable/config/extensions/toggle" }, - "GetSessionExtensionsRequest": { + "GetSessionExtensionsRequest_unstable": { "type": "object", "properties": { "sessionId": { @@ -277,7 +277,7 @@ "x-side": "agent", "x-method": "_goose/unstable/session/extensions/list" }, - "GetSessionExtensionsResponse": { + "GetSessionExtensionsResponse_unstable": { "type": "object", "properties": { "extensions": { @@ -291,7 +291,7 @@ "x-side": "agent", "x-method": "_goose/unstable/session/extensions/list" }, - "ListProvidersRequest": { + "ListProvidersRequest_unstable": { "type": "object", "properties": { "providerIds": { @@ -307,7 +307,7 @@ "x-side": "agent", "x-method": "_goose/unstable/providers/list" }, - "ListProvidersResponse": { + "ListProvidersResponse_unstable": { "type": "object", "properties": { "entries": { @@ -525,7 +525,7 @@ ], "description": "A single model in provider inventory." }, - "ProviderCatalogListRequest": { + "ProviderCatalogListRequest_unstable": { "type": "object", "properties": { "format": { @@ -539,7 +539,7 @@ "x-side": "agent", "x-method": "_goose/unstable/providers/catalog/list" }, - "ProviderCatalogListResponse": { + "ProviderCatalogListResponse_unstable": { "type": "object", "properties": { "providers": { @@ -591,13 +591,13 @@ "envVar" ] }, - "ProviderSetupCatalogListRequest": { + "ProviderSetupCatalogListRequest_unstable": { "type": "object", "description": "List provider setup catalog entries", "x-side": "agent", "x-method": "_goose/unstable/providers/setup/catalog/list" }, - "ProviderSetupCatalogListResponse": { + "ProviderSetupCatalogListResponse_unstable": { "type": "object", "properties": { "providers": { @@ -748,7 +748,7 @@ "additional" ] }, - "ProviderCatalogTemplateRequest": { + "ProviderCatalogTemplateRequest_unstable": { "type": "object", "properties": { "providerId": { @@ -762,7 +762,7 @@ "x-side": "agent", "x-method": "_goose/unstable/providers/catalog/template" }, - "ProviderCatalogTemplateResponse": { + "ProviderCatalogTemplateResponse_unstable": { "type": "object", "properties": { "template": { @@ -868,7 +868,7 @@ "temperature" ] }, - "CustomProviderCreateRequest": { + "CustomProviderCreateRequest_unstable": { "type": "object", "properties": { "engine": { @@ -938,7 +938,7 @@ "x-side": "agent", "x-method": "_goose/unstable/providers/custom/create" }, - "CustomProviderCreateResponse": { + "CustomProviderCreateResponse_unstable": { "type": "object", "properties": { "providerId": { @@ -948,7 +948,7 @@ "$ref": "#/$defs/ProviderConfigStatusDto" }, "refresh": { - "$ref": "#/$defs/RefreshProviderInventoryResponse" + "$ref": "#/$defs/RefreshProviderInventoryResponse_unstable" } }, "required": [ @@ -974,7 +974,7 @@ "isConfigured" ] }, - "RefreshProviderInventoryResponse": { + "RefreshProviderInventoryResponse_unstable": { "type": "object", "properties": { "started": { @@ -1024,7 +1024,7 @@ "already_refreshing" ] }, - "CustomProviderReadRequest": { + "CustomProviderReadRequest_unstable": { "type": "object", "properties": { "providerId": { @@ -1038,7 +1038,7 @@ "x-side": "agent", "x-method": "_goose/unstable/providers/custom/read" }, - "CustomProviderReadResponse": { + "CustomProviderReadResponse_unstable": { "type": "object", "properties": { "provider": { @@ -1132,7 +1132,7 @@ "preservesThinking" ] }, - "CustomProviderUpdateRequest": { + "CustomProviderUpdateRequest_unstable": { "type": "object", "properties": { "providerId": { @@ -1206,7 +1206,7 @@ "x-side": "agent", "x-method": "_goose/unstable/providers/custom/update" }, - "CustomProviderUpdateResponse": { + "CustomProviderUpdateResponse_unstable": { "type": "object", "properties": { "providerId": { @@ -1216,7 +1216,7 @@ "$ref": "#/$defs/ProviderConfigStatusDto" }, "refresh": { - "$ref": "#/$defs/RefreshProviderInventoryResponse" + "$ref": "#/$defs/RefreshProviderInventoryResponse_unstable" } }, "required": [ @@ -1227,7 +1227,7 @@ "x-side": "agent", "x-method": "_goose/unstable/providers/custom/update" }, - "CustomProviderDeleteRequest": { + "CustomProviderDeleteRequest_unstable": { "type": "object", "properties": { "providerId": { @@ -1241,14 +1241,14 @@ "x-side": "agent", "x-method": "_goose/unstable/providers/custom/delete" }, - "CustomProviderDeleteResponse": { + "CustomProviderDeleteResponse_unstable": { "type": "object", "properties": { "providerId": { "type": "string" }, "refresh": { - "$ref": "#/$defs/RefreshProviderInventoryResponse" + "$ref": "#/$defs/RefreshProviderInventoryResponse_unstable" } }, "required": [ @@ -1258,7 +1258,7 @@ "x-side": "agent", "x-method": "_goose/unstable/providers/custom/delete" }, - "RefreshProviderInventoryRequest": { + "RefreshProviderInventoryRequest_unstable": { "type": "object", "properties": { "providerIds": { @@ -1274,7 +1274,7 @@ "x-side": "agent", "x-method": "_goose/unstable/providers/inventory/refresh" }, - "ProviderConfigReadRequest": { + "ProviderConfigReadRequest_unstable": { "type": "object", "properties": { "providerId": { @@ -1288,7 +1288,7 @@ "x-side": "agent", "x-method": "_goose/unstable/providers/config/read" }, - "ProviderConfigReadResponse": { + "ProviderConfigReadResponse_unstable": { "type": "object", "properties": { "fields": { @@ -1334,7 +1334,7 @@ "required" ] }, - "ProviderConfigStatusRequest": { + "ProviderConfigStatusRequest_unstable": { "type": "object", "properties": { "providerIds": { @@ -1349,7 +1349,7 @@ "x-side": "agent", "x-method": "_goose/unstable/providers/config/status" }, - "ProviderConfigStatusResponse": { + "ProviderConfigStatusResponse_unstable": { "type": "object", "properties": { "statuses": { @@ -1365,7 +1365,7 @@ "x-side": "agent", "x-method": "_goose/unstable/providers/config/status" }, - "ProviderConfigSaveRequest": { + "ProviderConfigSaveRequest_unstable": { "type": "object", "properties": { "providerId": { @@ -1401,14 +1401,14 @@ "value" ] }, - "ProviderConfigChangeResponse": { + "ProviderConfigChangeResponse_unstable": { "type": "object", "properties": { "status": { "$ref": "#/$defs/ProviderConfigStatusDto" }, "refresh": { - "$ref": "#/$defs/RefreshProviderInventoryResponse" + "$ref": "#/$defs/RefreshProviderInventoryResponse_unstable" } }, "required": [ @@ -1417,7 +1417,7 @@ ], "x-side": "agent" }, - "ProviderConfigDeleteRequest": { + "ProviderConfigDeleteRequest_unstable": { "type": "object", "properties": { "providerId": { @@ -1431,7 +1431,7 @@ "x-side": "agent", "x-method": "_goose/unstable/providers/config/delete" }, - "ProviderConfigAuthenticateRequest": { + "ProviderConfigAuthenticateRequest_unstable": { "type": "object", "properties": { "providerId": { @@ -1445,7 +1445,7 @@ "x-side": "agent", "x-method": "_goose/unstable/providers/config/authenticate" }, - "PreferencesReadRequest": { + "PreferencesReadRequest_unstable": { "type": "object", "properties": { "keys": { @@ -1469,7 +1469,7 @@ "voiceDictationPreferredMic" ] }, - "PreferencesReadResponse": { + "PreferencesReadResponse_unstable": { "type": "object", "properties": { "values": { @@ -1499,7 +1499,7 @@ "key" ] }, - "PreferencesSaveRequest": { + "PreferencesSaveRequest_unstable": { "type": "object", "properties": { "values": { @@ -1514,7 +1514,7 @@ "x-side": "agent", "x-method": "_goose/unstable/preferences/save" }, - "PreferencesRemoveRequest": { + "PreferencesRemoveRequest_unstable": { "type": "object", "properties": { "keys": { @@ -1529,13 +1529,13 @@ "x-side": "agent", "x-method": "_goose/unstable/preferences/remove" }, - "DefaultsReadRequest": { + "DefaultsReadRequest_unstable": { "type": "object", "description": "Read Goose default provider and model configuration.", "x-side": "agent", "x-method": "_goose/unstable/defaults/read" }, - "DefaultsReadResponse": { + "DefaultsReadResponse_unstable": { "type": "object", "properties": { "providerId": { @@ -1553,7 +1553,7 @@ }, "x-side": "agent" }, - "DefaultsSaveRequest": { + "DefaultsSaveRequest_unstable": { "type": "object", "properties": { "providerId": { @@ -1573,7 +1573,7 @@ "x-side": "agent", "x-method": "_goose/unstable/defaults/save" }, - "OnboardingImportScanRequest": { + "OnboardingImportScanRequest_unstable": { "type": "object", "properties": { "sources": { @@ -1597,7 +1597,7 @@ ], "description": "Sources that onboarding knows how to discover and import." }, - "OnboardingImportScanResponse": { + "OnboardingImportScanResponse_unstable": { "type": "object", "properties": { "candidates": { @@ -1684,7 +1684,7 @@ "preferences" ] }, - "OnboardingImportApplyRequest": { + "OnboardingImportApplyRequest_unstable": { "type": "object", "properties": { "candidateIds": { @@ -1703,7 +1703,7 @@ "x-side": "agent", "x-method": "_goose/unstable/onboarding/import/apply" }, - "OnboardingImportApplyResponse": { + "OnboardingImportApplyResponse_unstable": { "type": "object", "properties": { "imported": { @@ -1722,7 +1722,7 @@ "providerDefaults": { "anyOf": [ { - "$ref": "#/$defs/DefaultsReadResponse" + "$ref": "#/$defs/DefaultsReadResponse_unstable" }, { "type": "null" @@ -1737,7 +1737,7 @@ "x-side": "agent", "x-method": "_goose/unstable/onboarding/import/apply" }, - "ExportSessionRequest": { + "ExportSessionRequest_unstable": { "type": "object", "properties": { "sessionId": { @@ -1751,7 +1751,7 @@ "x-side": "agent", "x-method": "_goose/unstable/session/export" }, - "ExportSessionResponse": { + "ExportSessionResponse_unstable": { "type": "object", "properties": { "data": { @@ -1765,7 +1765,7 @@ "x-side": "agent", "x-method": "_goose/unstable/session/export" }, - "ImportSessionRequest": { + "ImportSessionRequest_unstable": { "type": "object", "properties": { "data": { @@ -1779,7 +1779,7 @@ "x-side": "agent", "x-method": "_goose/unstable/session/import" }, - "ImportSessionResponse": { + "ImportSessionResponse_unstable": { "type": "object", "properties": { "sessionId": { @@ -1810,7 +1810,7 @@ "x-side": "agent", "x-method": "_goose/unstable/session/import" }, - "UpdateSessionProjectRequest": { + "UpdateSessionProjectRequest_unstable": { "type": "object", "properties": { "sessionId": { @@ -1830,7 +1830,7 @@ "x-side": "agent", "x-method": "_goose/unstable/session/project/update" }, - "RenameSessionRequest": { + "RenameSessionRequest_unstable": { "type": "object", "properties": { "sessionId": { @@ -1848,7 +1848,7 @@ "x-side": "agent", "x-method": "_goose/unstable/session/rename" }, - "ArchiveSessionRequest": { + "ArchiveSessionRequest_unstable": { "type": "object", "properties": { "sessionId": { @@ -1862,7 +1862,7 @@ "x-side": "agent", "x-method": "_goose/unstable/session/archive" }, - "UnarchiveSessionRequest": { + "UnarchiveSessionRequest_unstable": { "type": "object", "properties": { "sessionId": { @@ -1876,7 +1876,7 @@ "x-side": "agent", "x-method": "_goose/unstable/session/unarchive" }, - "CreateSourceRequest": { + "CreateSourceRequest_unstable": { "type": "object", "properties": { "type": { @@ -1972,7 +1972,7 @@ ], "description": "Target scope for creating or importing sources." }, - "CreateSourceResponse": { + "CreateSourceResponse_unstable": { "type": "object", "properties": { "source": { @@ -2036,7 +2036,7 @@ ], "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": { + "ListSourcesRequest_unstable": { "type": "object", "properties": { "type": { @@ -2065,7 +2065,7 @@ "x-side": "agent", "x-method": "_goose/unstable/sources/list" }, - "ListSourcesResponse": { + "ListSourcesResponse_unstable": { "type": "object", "properties": { "sources": { @@ -2081,7 +2081,7 @@ "x-side": "agent", "x-method": "_goose/unstable/sources/list" }, - "UpdateSourceRequest": { + "UpdateSourceRequest_unstable": { "type": "object", "properties": { "type": { @@ -2119,7 +2119,7 @@ "x-side": "agent", "x-method": "_goose/unstable/sources/update" }, - "UpdateSourceResponse": { + "UpdateSourceResponse_unstable": { "type": "object", "properties": { "source": { @@ -2132,7 +2132,7 @@ "x-side": "agent", "x-method": "_goose/unstable/sources/update" }, - "DeleteSourceRequest": { + "DeleteSourceRequest_unstable": { "type": "object", "properties": { "type": { @@ -2150,7 +2150,7 @@ "x-side": "agent", "x-method": "_goose/unstable/sources/delete" }, - "ExportSourceRequest": { + "ExportSourceRequest_unstable": { "type": "object", "properties": { "type": { @@ -2168,7 +2168,7 @@ "x-side": "agent", "x-method": "_goose/unstable/sources/export" }, - "ExportSourceResponse": { + "ExportSourceResponse_unstable": { "type": "object", "properties": { "json": { @@ -2185,7 +2185,7 @@ "x-side": "agent", "x-method": "_goose/unstable/sources/export" }, - "ImportSourcesRequest": { + "ImportSourcesRequest_unstable": { "type": "object", "properties": { "data": { @@ -2203,7 +2203,7 @@ "x-side": "agent", "x-method": "_goose/unstable/sources/import" }, - "ImportSourcesResponse": { + "ImportSourcesResponse_unstable": { "type": "object", "properties": { "sources": { @@ -2219,7 +2219,7 @@ "x-side": "agent", "x-method": "_goose/unstable/sources/import" }, - "DictationTranscribeRequest": { + "DictationTranscribeRequest_unstable": { "type": "object", "properties": { "audio": { @@ -2244,7 +2244,7 @@ "x-side": "agent", "x-method": "_goose/unstable/dictation/transcribe" }, - "DictationTranscribeResponse": { + "DictationTranscribeResponse_unstable": { "type": "object", "properties": { "text": { @@ -2258,13 +2258,13 @@ "x-side": "agent", "x-method": "_goose/unstable/dictation/transcribe" }, - "DictationConfigRequest": { + "DictationConfigRequest_unstable": { "type": "object", "description": "Get the configuration status of all dictation providers.", "x-side": "agent", "x-method": "_goose/unstable/dictation/config" }, - "DictationConfigResponse": { + "DictationConfigResponse_unstable": { "type": "object", "properties": { "providers": { @@ -2363,7 +2363,7 @@ "description" ] }, - "DictationSecretSaveRequest": { + "DictationSecretSaveRequest_unstable": { "type": "object", "properties": { "provider": { @@ -2381,7 +2381,7 @@ "x-side": "agent", "x-method": "_goose/unstable/dictation/secret/save" }, - "DictationSecretDeleteRequest": { + "DictationSecretDeleteRequest_unstable": { "type": "object", "properties": { "provider": { @@ -2395,13 +2395,13 @@ "x-side": "agent", "x-method": "_goose/unstable/dictation/secret/delete" }, - "DictationModelsListRequest": { + "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": { + "DictationModelsListResponse_unstable": { "type": "object", "properties": { "models": { @@ -2449,7 +2449,7 @@ "downloadInProgress" ] }, - "DictationModelDownloadRequest": { + "DictationModelDownloadRequest_unstable": { "type": "object", "properties": { "modelId": { @@ -2463,7 +2463,7 @@ "x-side": "agent", "x-method": "_goose/unstable/dictation/models/download" }, - "DictationModelDownloadProgressRequest": { + "DictationModelDownloadProgressRequest_unstable": { "type": "object", "properties": { "modelId": { @@ -2477,7 +2477,7 @@ "x-side": "agent", "x-method": "_goose/unstable/dictation/models/download/progress" }, - "DictationModelDownloadProgressResponse": { + "DictationModelDownloadProgressResponse_unstable": { "type": "object", "properties": { "progress": { @@ -2528,7 +2528,7 @@ "status" ] }, - "DictationModelCancelRequest": { + "DictationModelCancelRequest_unstable": { "type": "object", "properties": { "modelId": { @@ -2542,7 +2542,7 @@ "x-side": "agent", "x-method": "_goose/unstable/dictation/models/cancel" }, - "DictationModelDeleteRequest": { + "DictationModelDeleteRequest_unstable": { "type": "object", "properties": { "modelId": { @@ -2556,7 +2556,7 @@ "x-side": "agent", "x-method": "_goose/unstable/dictation/models/delete" }, - "DictationModelSelectRequest": { + "DictationModelSelectRequest_unstable": { "type": "object", "properties": { "provider": { @@ -2589,56 +2589,56 @@ { "allOf": [ { - "$ref": "#/$defs/AddExtensionRequest" + "$ref": "#/$defs/AddExtensionRequest_unstable" } ], "description": "Params for _goose/unstable/session/extensions/add", - "title": "AddExtensionRequest" + "title": "AddExtensionRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/RemoveExtensionRequest" + "$ref": "#/$defs/RemoveExtensionRequest_unstable" } ], "description": "Params for _goose/unstable/session/extensions/remove", - "title": "RemoveExtensionRequest" + "title": "RemoveExtensionRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/GetToolsRequest" + "$ref": "#/$defs/GetToolsRequest_unstable" } ], "description": "Params for _goose/unstable/tools/list", - "title": "GetToolsRequest" + "title": "GetToolsRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/GooseToolCallRequest" + "$ref": "#/$defs/GooseToolCallRequest_unstable" } ], "description": "Params for _goose/unstable/tools/call", - "title": "GooseToolCallRequest" + "title": "GooseToolCallRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ReadResourceRequest" + "$ref": "#/$defs/ReadResourceRequest_unstable" } ], "description": "Params for _goose/unstable/resources/read", - "title": "ReadResourceRequest" + "title": "ReadResourceRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/UpdateWorkingDirRequest" + "$ref": "#/$defs/UpdateWorkingDirRequest_unstable" } ], "description": "Params for _goose/unstable/session/working-dir/update", - "title": "UpdateWorkingDirRequest" + "title": "UpdateWorkingDirRequest_unstable" }, { "allOf": [ @@ -2652,434 +2652,434 @@ { "allOf": [ { - "$ref": "#/$defs/GetExtensionsRequest" + "$ref": "#/$defs/GetExtensionsRequest_unstable" } ], "description": "Params for _goose/unstable/config/extensions/list", - "title": "GetExtensionsRequest" + "title": "GetExtensionsRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/AddConfigExtensionRequest" + "$ref": "#/$defs/AddConfigExtensionRequest_unstable" } ], "description": "Params for _goose/unstable/config/extensions/add", - "title": "AddConfigExtensionRequest" + "title": "AddConfigExtensionRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/RemoveConfigExtensionRequest" + "$ref": "#/$defs/RemoveConfigExtensionRequest_unstable" } ], "description": "Params for _goose/unstable/config/extensions/remove", - "title": "RemoveConfigExtensionRequest" + "title": "RemoveConfigExtensionRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ToggleConfigExtensionRequest" + "$ref": "#/$defs/ToggleConfigExtensionRequest_unstable" } ], "description": "Params for _goose/unstable/config/extensions/toggle", - "title": "ToggleConfigExtensionRequest" + "title": "ToggleConfigExtensionRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/GetSessionExtensionsRequest" + "$ref": "#/$defs/GetSessionExtensionsRequest_unstable" } ], "description": "Params for _goose/unstable/session/extensions/list", - "title": "GetSessionExtensionsRequest" + "title": "GetSessionExtensionsRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ListProvidersRequest" + "$ref": "#/$defs/ListProvidersRequest_unstable" } ], "description": "Params for _goose/unstable/providers/list", - "title": "ListProvidersRequest" + "title": "ListProvidersRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ProviderCatalogListRequest" + "$ref": "#/$defs/ProviderCatalogListRequest_unstable" } ], "description": "Params for _goose/unstable/providers/catalog/list", - "title": "ProviderCatalogListRequest" + "title": "ProviderCatalogListRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ProviderSetupCatalogListRequest" + "$ref": "#/$defs/ProviderSetupCatalogListRequest_unstable" } ], "description": "Params for _goose/unstable/providers/setup/catalog/list", - "title": "ProviderSetupCatalogListRequest" + "title": "ProviderSetupCatalogListRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ProviderCatalogTemplateRequest" + "$ref": "#/$defs/ProviderCatalogTemplateRequest_unstable" } ], "description": "Params for _goose/unstable/providers/catalog/template", - "title": "ProviderCatalogTemplateRequest" + "title": "ProviderCatalogTemplateRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/CustomProviderCreateRequest" + "$ref": "#/$defs/CustomProviderCreateRequest_unstable" } ], "description": "Params for _goose/unstable/providers/custom/create", - "title": "CustomProviderCreateRequest" + "title": "CustomProviderCreateRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/CustomProviderReadRequest" + "$ref": "#/$defs/CustomProviderReadRequest_unstable" } ], "description": "Params for _goose/unstable/providers/custom/read", - "title": "CustomProviderReadRequest" + "title": "CustomProviderReadRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/CustomProviderUpdateRequest" + "$ref": "#/$defs/CustomProviderUpdateRequest_unstable" } ], "description": "Params for _goose/unstable/providers/custom/update", - "title": "CustomProviderUpdateRequest" + "title": "CustomProviderUpdateRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/CustomProviderDeleteRequest" + "$ref": "#/$defs/CustomProviderDeleteRequest_unstable" } ], "description": "Params for _goose/unstable/providers/custom/delete", - "title": "CustomProviderDeleteRequest" + "title": "CustomProviderDeleteRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/RefreshProviderInventoryRequest" + "$ref": "#/$defs/RefreshProviderInventoryRequest_unstable" } ], "description": "Params for _goose/unstable/providers/inventory/refresh", - "title": "RefreshProviderInventoryRequest" + "title": "RefreshProviderInventoryRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ProviderConfigReadRequest" + "$ref": "#/$defs/ProviderConfigReadRequest_unstable" } ], "description": "Params for _goose/unstable/providers/config/read", - "title": "ProviderConfigReadRequest" + "title": "ProviderConfigReadRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ProviderConfigStatusRequest" + "$ref": "#/$defs/ProviderConfigStatusRequest_unstable" } ], "description": "Params for _goose/unstable/providers/config/status", - "title": "ProviderConfigStatusRequest" + "title": "ProviderConfigStatusRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ProviderConfigSaveRequest" + "$ref": "#/$defs/ProviderConfigSaveRequest_unstable" } ], "description": "Params for _goose/unstable/providers/config/save", - "title": "ProviderConfigSaveRequest" + "title": "ProviderConfigSaveRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ProviderConfigDeleteRequest" + "$ref": "#/$defs/ProviderConfigDeleteRequest_unstable" } ], "description": "Params for _goose/unstable/providers/config/delete", - "title": "ProviderConfigDeleteRequest" + "title": "ProviderConfigDeleteRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ProviderConfigAuthenticateRequest" + "$ref": "#/$defs/ProviderConfigAuthenticateRequest_unstable" } ], "description": "Params for _goose/unstable/providers/config/authenticate", - "title": "ProviderConfigAuthenticateRequest" + "title": "ProviderConfigAuthenticateRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/PreferencesReadRequest" + "$ref": "#/$defs/PreferencesReadRequest_unstable" } ], "description": "Params for _goose/unstable/preferences/read", - "title": "PreferencesReadRequest" + "title": "PreferencesReadRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/PreferencesSaveRequest" + "$ref": "#/$defs/PreferencesSaveRequest_unstable" } ], "description": "Params for _goose/unstable/preferences/save", - "title": "PreferencesSaveRequest" + "title": "PreferencesSaveRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/PreferencesRemoveRequest" + "$ref": "#/$defs/PreferencesRemoveRequest_unstable" } ], "description": "Params for _goose/unstable/preferences/remove", - "title": "PreferencesRemoveRequest" + "title": "PreferencesRemoveRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/DefaultsReadRequest" + "$ref": "#/$defs/DefaultsReadRequest_unstable" } ], "description": "Params for _goose/unstable/defaults/read", - "title": "DefaultsReadRequest" + "title": "DefaultsReadRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/DefaultsSaveRequest" + "$ref": "#/$defs/DefaultsSaveRequest_unstable" } ], "description": "Params for _goose/unstable/defaults/save", - "title": "DefaultsSaveRequest" + "title": "DefaultsSaveRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/OnboardingImportScanRequest" + "$ref": "#/$defs/OnboardingImportScanRequest_unstable" } ], "description": "Params for _goose/unstable/onboarding/import/scan", - "title": "OnboardingImportScanRequest" + "title": "OnboardingImportScanRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/OnboardingImportApplyRequest" + "$ref": "#/$defs/OnboardingImportApplyRequest_unstable" } ], "description": "Params for _goose/unstable/onboarding/import/apply", - "title": "OnboardingImportApplyRequest" + "title": "OnboardingImportApplyRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ExportSessionRequest" + "$ref": "#/$defs/ExportSessionRequest_unstable" } ], "description": "Params for _goose/unstable/session/export", - "title": "ExportSessionRequest" + "title": "ExportSessionRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ImportSessionRequest" + "$ref": "#/$defs/ImportSessionRequest_unstable" } ], "description": "Params for _goose/unstable/session/import", - "title": "ImportSessionRequest" + "title": "ImportSessionRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/UpdateSessionProjectRequest" + "$ref": "#/$defs/UpdateSessionProjectRequest_unstable" } ], "description": "Params for _goose/unstable/session/project/update", - "title": "UpdateSessionProjectRequest" + "title": "UpdateSessionProjectRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/RenameSessionRequest" + "$ref": "#/$defs/RenameSessionRequest_unstable" } ], "description": "Params for _goose/unstable/session/rename", - "title": "RenameSessionRequest" + "title": "RenameSessionRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ArchiveSessionRequest" + "$ref": "#/$defs/ArchiveSessionRequest_unstable" } ], "description": "Params for _goose/unstable/session/archive", - "title": "ArchiveSessionRequest" + "title": "ArchiveSessionRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/UnarchiveSessionRequest" + "$ref": "#/$defs/UnarchiveSessionRequest_unstable" } ], "description": "Params for _goose/unstable/session/unarchive", - "title": "UnarchiveSessionRequest" + "title": "UnarchiveSessionRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/CreateSourceRequest" + "$ref": "#/$defs/CreateSourceRequest_unstable" } ], "description": "Params for _goose/unstable/sources/create", - "title": "CreateSourceRequest" + "title": "CreateSourceRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ListSourcesRequest" + "$ref": "#/$defs/ListSourcesRequest_unstable" } ], "description": "Params for _goose/unstable/sources/list", - "title": "ListSourcesRequest" + "title": "ListSourcesRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/UpdateSourceRequest" + "$ref": "#/$defs/UpdateSourceRequest_unstable" } ], "description": "Params for _goose/unstable/sources/update", - "title": "UpdateSourceRequest" + "title": "UpdateSourceRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/DeleteSourceRequest" + "$ref": "#/$defs/DeleteSourceRequest_unstable" } ], "description": "Params for _goose/unstable/sources/delete", - "title": "DeleteSourceRequest" + "title": "DeleteSourceRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ExportSourceRequest" + "$ref": "#/$defs/ExportSourceRequest_unstable" } ], "description": "Params for _goose/unstable/sources/export", - "title": "ExportSourceRequest" + "title": "ExportSourceRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ImportSourcesRequest" + "$ref": "#/$defs/ImportSourcesRequest_unstable" } ], "description": "Params for _goose/unstable/sources/import", - "title": "ImportSourcesRequest" + "title": "ImportSourcesRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/DictationTranscribeRequest" + "$ref": "#/$defs/DictationTranscribeRequest_unstable" } ], "description": "Params for _goose/unstable/dictation/transcribe", - "title": "DictationTranscribeRequest" + "title": "DictationTranscribeRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/DictationConfigRequest" + "$ref": "#/$defs/DictationConfigRequest_unstable" } ], "description": "Params for _goose/unstable/dictation/config", - "title": "DictationConfigRequest" + "title": "DictationConfigRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/DictationSecretSaveRequest" + "$ref": "#/$defs/DictationSecretSaveRequest_unstable" } ], "description": "Params for _goose/unstable/dictation/secret/save", - "title": "DictationSecretSaveRequest" + "title": "DictationSecretSaveRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/DictationSecretDeleteRequest" + "$ref": "#/$defs/DictationSecretDeleteRequest_unstable" } ], "description": "Params for _goose/unstable/dictation/secret/delete", - "title": "DictationSecretDeleteRequest" + "title": "DictationSecretDeleteRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/DictationModelsListRequest" + "$ref": "#/$defs/DictationModelsListRequest_unstable" } ], "description": "Params for _goose/unstable/dictation/models/list", - "title": "DictationModelsListRequest" + "title": "DictationModelsListRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/DictationModelDownloadRequest" + "$ref": "#/$defs/DictationModelDownloadRequest_unstable" } ], "description": "Params for _goose/unstable/dictation/models/download", - "title": "DictationModelDownloadRequest" + "title": "DictationModelDownloadRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/DictationModelDownloadProgressRequest" + "$ref": "#/$defs/DictationModelDownloadProgressRequest_unstable" } ], "description": "Params for _goose/unstable/dictation/models/download/progress", - "title": "DictationModelDownloadProgressRequest" + "title": "DictationModelDownloadProgressRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/DictationModelCancelRequest" + "$ref": "#/$defs/DictationModelCancelRequest_unstable" } ], "description": "Params for _goose/unstable/dictation/models/cancel", - "title": "DictationModelCancelRequest" + "title": "DictationModelCancelRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/DictationModelDeleteRequest" + "$ref": "#/$defs/DictationModelDeleteRequest_unstable" } ], "description": "Params for _goose/unstable/dictation/models/delete", - "title": "DictationModelDeleteRequest" + "title": "DictationModelDeleteRequest_unstable" }, { "allOf": [ { - "$ref": "#/$defs/DictationModelSelectRequest" + "$ref": "#/$defs/DictationModelSelectRequest_unstable" } ], "description": "Params for _goose/unstable/dictation/models/select", - "title": "DictationModelSelectRequest" + "title": "DictationModelSelectRequest_unstable" } ] }, @@ -3122,258 +3122,258 @@ { "allOf": [ { - "$ref": "#/$defs/GetToolsResponse" + "$ref": "#/$defs/GetToolsResponse_unstable" } ], - "title": "GetToolsResponse" + "title": "GetToolsResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/GooseToolCallResponse" + "$ref": "#/$defs/GooseToolCallResponse_unstable" } ], - "title": "GooseToolCallResponse" + "title": "GooseToolCallResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ReadResourceResponse" + "$ref": "#/$defs/ReadResourceResponse_unstable" } ], - "title": "ReadResourceResponse" + "title": "ReadResourceResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/GetExtensionsResponse" + "$ref": "#/$defs/GetExtensionsResponse_unstable" } ], - "title": "GetExtensionsResponse" + "title": "GetExtensionsResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/GetSessionExtensionsResponse" + "$ref": "#/$defs/GetSessionExtensionsResponse_unstable" } ], - "title": "GetSessionExtensionsResponse" + "title": "GetSessionExtensionsResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ListProvidersResponse" + "$ref": "#/$defs/ListProvidersResponse_unstable" } ], - "title": "ListProvidersResponse" + "title": "ListProvidersResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ProviderCatalogListResponse" + "$ref": "#/$defs/ProviderCatalogListResponse_unstable" } ], - "title": "ProviderCatalogListResponse" + "title": "ProviderCatalogListResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ProviderSetupCatalogListResponse" + "$ref": "#/$defs/ProviderSetupCatalogListResponse_unstable" } ], - "title": "ProviderSetupCatalogListResponse" + "title": "ProviderSetupCatalogListResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ProviderCatalogTemplateResponse" + "$ref": "#/$defs/ProviderCatalogTemplateResponse_unstable" } ], - "title": "ProviderCatalogTemplateResponse" + "title": "ProviderCatalogTemplateResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/CustomProviderCreateResponse" + "$ref": "#/$defs/CustomProviderCreateResponse_unstable" } ], - "title": "CustomProviderCreateResponse" + "title": "CustomProviderCreateResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/CustomProviderReadResponse" + "$ref": "#/$defs/CustomProviderReadResponse_unstable" } ], - "title": "CustomProviderReadResponse" + "title": "CustomProviderReadResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/CustomProviderUpdateResponse" + "$ref": "#/$defs/CustomProviderUpdateResponse_unstable" } ], - "title": "CustomProviderUpdateResponse" + "title": "CustomProviderUpdateResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/CustomProviderDeleteResponse" + "$ref": "#/$defs/CustomProviderDeleteResponse_unstable" } ], - "title": "CustomProviderDeleteResponse" + "title": "CustomProviderDeleteResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/RefreshProviderInventoryResponse" + "$ref": "#/$defs/RefreshProviderInventoryResponse_unstable" } ], - "title": "RefreshProviderInventoryResponse" + "title": "RefreshProviderInventoryResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ProviderConfigReadResponse" + "$ref": "#/$defs/ProviderConfigReadResponse_unstable" } ], - "title": "ProviderConfigReadResponse" + "title": "ProviderConfigReadResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ProviderConfigStatusResponse" + "$ref": "#/$defs/ProviderConfigStatusResponse_unstable" } ], - "title": "ProviderConfigStatusResponse" + "title": "ProviderConfigStatusResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ProviderConfigChangeResponse" + "$ref": "#/$defs/ProviderConfigChangeResponse_unstable" } ], - "title": "ProviderConfigChangeResponse" + "title": "ProviderConfigChangeResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/PreferencesReadResponse" + "$ref": "#/$defs/PreferencesReadResponse_unstable" } ], - "title": "PreferencesReadResponse" + "title": "PreferencesReadResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/DefaultsReadResponse" + "$ref": "#/$defs/DefaultsReadResponse_unstable" } ], - "title": "DefaultsReadResponse" + "title": "DefaultsReadResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/OnboardingImportScanResponse" + "$ref": "#/$defs/OnboardingImportScanResponse_unstable" } ], - "title": "OnboardingImportScanResponse" + "title": "OnboardingImportScanResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/OnboardingImportApplyResponse" + "$ref": "#/$defs/OnboardingImportApplyResponse_unstable" } ], - "title": "OnboardingImportApplyResponse" + "title": "OnboardingImportApplyResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ExportSessionResponse" + "$ref": "#/$defs/ExportSessionResponse_unstable" } ], - "title": "ExportSessionResponse" + "title": "ExportSessionResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ImportSessionResponse" + "$ref": "#/$defs/ImportSessionResponse_unstable" } ], - "title": "ImportSessionResponse" + "title": "ImportSessionResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/CreateSourceResponse" + "$ref": "#/$defs/CreateSourceResponse_unstable" } ], - "title": "CreateSourceResponse" + "title": "CreateSourceResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ListSourcesResponse" + "$ref": "#/$defs/ListSourcesResponse_unstable" } ], - "title": "ListSourcesResponse" + "title": "ListSourcesResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/UpdateSourceResponse" + "$ref": "#/$defs/UpdateSourceResponse_unstable" } ], - "title": "UpdateSourceResponse" + "title": "UpdateSourceResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ExportSourceResponse" + "$ref": "#/$defs/ExportSourceResponse_unstable" } ], - "title": "ExportSourceResponse" + "title": "ExportSourceResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/ImportSourcesResponse" + "$ref": "#/$defs/ImportSourcesResponse_unstable" } ], - "title": "ImportSourcesResponse" + "title": "ImportSourcesResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/DictationTranscribeResponse" + "$ref": "#/$defs/DictationTranscribeResponse_unstable" } ], - "title": "DictationTranscribeResponse" + "title": "DictationTranscribeResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/DictationConfigResponse" + "$ref": "#/$defs/DictationConfigResponse_unstable" } ], - "title": "DictationConfigResponse" + "title": "DictationConfigResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/DictationModelsListResponse" + "$ref": "#/$defs/DictationModelsListResponse_unstable" } ], - "title": "DictationModelsListResponse" + "title": "DictationModelsListResponse_unstable" }, { "allOf": [ { - "$ref": "#/$defs/DictationModelDownloadProgressResponse" + "$ref": "#/$defs/DictationModelDownloadProgressResponse_unstable" } ], - "title": "DictationModelDownloadProgressResponse" + "title": "DictationModelDownloadProgressResponse_unstable" } ] }, diff --git a/crates/goose/src/bin/generate_acp_schema.rs b/crates/goose/src/bin/generate_acp_schema.rs index 070d9d74e7fa..905dacb1a13a 100644 --- a/crates/goose/src/bin/generate_acp_schema.rs +++ b/crates/goose/src/bin/generate_acp_schema.rs @@ -35,6 +35,32 @@ fn main() { } } + let unstable_type_names: BTreeSet = type_methods + .iter() + .filter_map(|(name, methods_list)| { + if methods_list.iter().all(|method| is_unstable_method(method)) { + Some(name.clone()) + } else { + None + } + }) + .collect(); + + for def in defs.values_mut() { + rewrite_unstable_schema_refs(def, &unstable_type_names); + } + + let mut renamed_defs = Map::new(); + for (name, def) in defs { + let generated_name = generated_type_name(&name, &unstable_type_names); + let previous = renamed_defs.insert(generated_name.clone(), def); + assert!( + previous.is_none(), + "duplicate schema definition name after unstable suffix: {generated_name}" + ); + } + let mut defs = renamed_defs; + // Replace `true` with `{}` throughout $defs. Both mean "accept any value" in // JSON Schema, but many TS codegen tools (e.g. @hey-api/openapi-ts Zod plugin) // silently drop properties whose schema is the bare `true` literal. @@ -49,7 +75,8 @@ fn main() { // Annotate $defs entries with x-method/x-side. Only set x-method for types // used by exactly one method (shared types like EmptyResponse skip x-method). for (name, methods_list) in &type_methods { - if let Some(def) = defs.get_mut(name) { + let generated_name = generated_type_name(name, &unstable_type_names); + if let Some(def) = defs.get_mut(&generated_name) { if let Some(obj) = def.as_object_mut() { obj.insert("x-side".into(), json!("agent")); if methods_list.len() == 1 { @@ -67,18 +94,20 @@ fn main() { for m in &methods { if let Some(name) = &m.params_type_name { + let generated_name = generated_type_name(name, &unstable_type_names); request_variants.push(json!({ - "allOf": [{ "$ref": format!("#/$defs/{name}") }], + "allOf": [{ "$ref": format!("#/$defs/{generated_name}") }], "description": format!("Params for {}", m.method), - "title": name, + "title": generated_name, })); } if let Some(name) = &m.response_type_name { - if seen_response_types.insert(name.clone()) { + let generated_name = generated_type_name(name, &unstable_type_names); + if seen_response_types.insert(generated_name.clone()) { response_variants.push(json!({ - "allOf": [{ "$ref": format!("#/$defs/{name}") }], - "title": name, + "allOf": [{ "$ref": format!("#/$defs/{generated_name}") }], + "title": generated_name, })); } } @@ -179,8 +208,14 @@ fn main() { .map(|m| { json!({ "method": &m.method, - "requestType": m.params_type_name, - "responseType": m.response_type_name, + "requestType": m + .params_type_name + .as_ref() + .map(|name| generated_type_name(name, &unstable_type_names)), + "responseType": m + .response_type_name + .as_ref() + .map(|name| generated_type_name(name, &unstable_type_names)), }) }) .collect(); @@ -193,6 +228,41 @@ fn main() { println!("{json_str}"); } +fn is_unstable_method(method: &str) -> bool { + method.contains("_goose/unstable") +} + +fn generated_type_name(name: &str, unstable_type_names: &BTreeSet) -> String { + if unstable_type_names.contains(name) { + format!("{name}_unstable") + } else { + name.to_string() + } +} + +fn rewrite_unstable_schema_refs(value: &mut Value, unstable_type_names: &BTreeSet) { + match value { + Value::Object(map) => { + if let Some(Value::String(reference)) = map.get_mut("$ref") { + if let Some(name) = reference.strip_prefix("#/$defs/") { + if unstable_type_names.contains(name) { + *reference = format!("#/$defs/{name}_unstable"); + } + } + } + for v in map.values_mut() { + rewrite_unstable_schema_refs(v, unstable_type_names); + } + } + Value::Array(arr) => { + for v in arr.iter_mut() { + rewrite_unstable_schema_refs(v, unstable_type_names); + } + } + _ => {} + } +} + /// Recursively strip `"format"` from integer-typed schemas. /// /// schemars emits `"format": "uint64"` / `"int64"` etc. for Rust integer types. diff --git a/ui/sdk/src/generated/client.gen.ts b/ui/sdk/src/generated/client.gen.ts index 5ae73c458761..84d2602ac824 100644 --- a/ui/sdk/src/generated/client.gen.ts +++ b/ui/sdk/src/generated/client.gen.ts @@ -8,140 +8,140 @@ export interface ExtMethodProvider { } import type { - AddConfigExtensionRequest, - AddExtensionRequest, - ArchiveSessionRequest, - CreateSourceRequest, - CreateSourceResponse, - CustomProviderCreateRequest, - CustomProviderCreateResponse, - CustomProviderDeleteRequest, - CustomProviderDeleteResponse, - CustomProviderReadRequest, - CustomProviderReadResponse, - CustomProviderUpdateRequest, - CustomProviderUpdateResponse, - DefaultsReadRequest, - DefaultsReadResponse, - DefaultsSaveRequest, + AddConfigExtensionRequest_unstable, + AddExtensionRequest_unstable, + ArchiveSessionRequest_unstable, + CreateSourceRequest_unstable, + CreateSourceResponse_unstable, + CustomProviderCreateRequest_unstable, + CustomProviderCreateResponse_unstable, + CustomProviderDeleteRequest_unstable, + CustomProviderDeleteResponse_unstable, + CustomProviderReadRequest_unstable, + CustomProviderReadResponse_unstable, + CustomProviderUpdateRequest_unstable, + CustomProviderUpdateResponse_unstable, + DefaultsReadRequest_unstable, + DefaultsReadResponse_unstable, + DefaultsSaveRequest_unstable, DeleteSessionRequest, - DeleteSourceRequest, - DictationConfigRequest, - DictationConfigResponse, - DictationModelCancelRequest, - DictationModelDeleteRequest, - DictationModelDownloadProgressRequest, - DictationModelDownloadProgressResponse, - DictationModelDownloadRequest, - DictationModelSelectRequest, - DictationModelsListRequest, - DictationModelsListResponse, - DictationSecretDeleteRequest, - DictationSecretSaveRequest, - DictationTranscribeRequest, - DictationTranscribeResponse, - ExportSessionRequest, - ExportSessionResponse, - ExportSourceRequest, - ExportSourceResponse, - GetExtensionsRequest, - GetExtensionsResponse, - GetSessionExtensionsRequest, - GetSessionExtensionsResponse, - GetToolsRequest, - GetToolsResponse, - GooseToolCallRequest, - GooseToolCallResponse, - ImportSessionRequest, - ImportSessionResponse, - ImportSourcesRequest, - ImportSourcesResponse, - ListProvidersRequest, - ListProvidersResponse, - ListSourcesRequest, - ListSourcesResponse, - OnboardingImportApplyRequest, - OnboardingImportApplyResponse, - OnboardingImportScanRequest, - OnboardingImportScanResponse, - PreferencesReadRequest, - PreferencesReadResponse, - PreferencesRemoveRequest, - PreferencesSaveRequest, - ProviderCatalogListRequest, - ProviderCatalogListResponse, - ProviderCatalogTemplateRequest, - ProviderCatalogTemplateResponse, - ProviderConfigAuthenticateRequest, - ProviderConfigChangeResponse, - ProviderConfigDeleteRequest, - ProviderConfigReadRequest, - ProviderConfigReadResponse, - ProviderConfigSaveRequest, - ProviderConfigStatusRequest, - ProviderConfigStatusResponse, - ProviderSetupCatalogListRequest, - ProviderSetupCatalogListResponse, - ReadResourceRequest, - ReadResourceResponse, - RefreshProviderInventoryRequest, - RefreshProviderInventoryResponse, - RemoveConfigExtensionRequest, - RemoveExtensionRequest, - RenameSessionRequest, - ToggleConfigExtensionRequest, - UnarchiveSessionRequest, - UpdateSessionProjectRequest, - UpdateSourceRequest, - UpdateSourceResponse, - UpdateWorkingDirRequest, + DeleteSourceRequest_unstable, + DictationConfigRequest_unstable, + DictationConfigResponse_unstable, + DictationModelCancelRequest_unstable, + DictationModelDeleteRequest_unstable, + DictationModelDownloadProgressRequest_unstable, + DictationModelDownloadProgressResponse_unstable, + DictationModelDownloadRequest_unstable, + DictationModelSelectRequest_unstable, + DictationModelsListRequest_unstable, + DictationModelsListResponse_unstable, + DictationSecretDeleteRequest_unstable, + DictationSecretSaveRequest_unstable, + DictationTranscribeRequest_unstable, + DictationTranscribeResponse_unstable, + ExportSessionRequest_unstable, + ExportSessionResponse_unstable, + ExportSourceRequest_unstable, + ExportSourceResponse_unstable, + GetExtensionsRequest_unstable, + GetExtensionsResponse_unstable, + GetSessionExtensionsRequest_unstable, + GetSessionExtensionsResponse_unstable, + GetToolsRequest_unstable, + GetToolsResponse_unstable, + GooseToolCallRequest_unstable, + GooseToolCallResponse_unstable, + ImportSessionRequest_unstable, + ImportSessionResponse_unstable, + ImportSourcesRequest_unstable, + ImportSourcesResponse_unstable, + ListProvidersRequest_unstable, + ListProvidersResponse_unstable, + ListSourcesRequest_unstable, + ListSourcesResponse_unstable, + OnboardingImportApplyRequest_unstable, + OnboardingImportApplyResponse_unstable, + OnboardingImportScanRequest_unstable, + OnboardingImportScanResponse_unstable, + PreferencesReadRequest_unstable, + PreferencesReadResponse_unstable, + PreferencesRemoveRequest_unstable, + PreferencesSaveRequest_unstable, + ProviderCatalogListRequest_unstable, + ProviderCatalogListResponse_unstable, + ProviderCatalogTemplateRequest_unstable, + ProviderCatalogTemplateResponse_unstable, + ProviderConfigAuthenticateRequest_unstable, + ProviderConfigChangeResponse_unstable, + ProviderConfigDeleteRequest_unstable, + ProviderConfigReadRequest_unstable, + ProviderConfigReadResponse_unstable, + ProviderConfigSaveRequest_unstable, + ProviderConfigStatusRequest_unstable, + ProviderConfigStatusResponse_unstable, + ProviderSetupCatalogListRequest_unstable, + ProviderSetupCatalogListResponse_unstable, + ReadResourceRequest_unstable, + ReadResourceResponse_unstable, + RefreshProviderInventoryRequest_unstable, + RefreshProviderInventoryResponse_unstable, + RemoveConfigExtensionRequest_unstable, + RemoveExtensionRequest_unstable, + RenameSessionRequest_unstable, + ToggleConfigExtensionRequest_unstable, + UnarchiveSessionRequest_unstable, + UpdateSessionProjectRequest_unstable, + UpdateSourceRequest_unstable, + UpdateSourceResponse_unstable, + UpdateWorkingDirRequest_unstable, } from './types.gen.js'; import { - zCreateSourceResponse, - zCustomProviderCreateResponse, - zCustomProviderDeleteResponse, - zCustomProviderReadResponse, - zCustomProviderUpdateResponse, - zDefaultsReadResponse, - zDictationConfigResponse, - zDictationModelDownloadProgressResponse, - zDictationModelsListResponse, - zDictationTranscribeResponse, - zExportSessionResponse, - zExportSourceResponse, - zGetExtensionsResponse, - zGetSessionExtensionsResponse, - zGetToolsResponse, - zGooseToolCallResponse, - zImportSessionResponse, - zImportSourcesResponse, - zListProvidersResponse, - zListSourcesResponse, - zOnboardingImportApplyResponse, - zOnboardingImportScanResponse, - zPreferencesReadResponse, - zProviderCatalogListResponse, - zProviderCatalogTemplateResponse, - zProviderConfigChangeResponse, - zProviderConfigReadResponse, - zProviderConfigStatusResponse, - zProviderSetupCatalogListResponse, - zReadResourceResponse, - zRefreshProviderInventoryResponse, - zUpdateSourceResponse, + zCreateSourceResponse_unstable, + zCustomProviderCreateResponse_unstable, + zCustomProviderDeleteResponse_unstable, + zCustomProviderReadResponse_unstable, + zCustomProviderUpdateResponse_unstable, + zDefaultsReadResponse_unstable, + zDictationConfigResponse_unstable, + zDictationModelDownloadProgressResponse_unstable, + zDictationModelsListResponse_unstable, + zDictationTranscribeResponse_unstable, + zExportSessionResponse_unstable, + zExportSourceResponse_unstable, + zGetExtensionsResponse_unstable, + zGetSessionExtensionsResponse_unstable, + zGetToolsResponse_unstable, + zGooseToolCallResponse_unstable, + zImportSessionResponse_unstable, + zImportSourcesResponse_unstable, + zListProvidersResponse_unstable, + zListSourcesResponse_unstable, + zOnboardingImportApplyResponse_unstable, + zOnboardingImportScanResponse_unstable, + zPreferencesReadResponse_unstable, + zProviderCatalogListResponse_unstable, + zProviderCatalogTemplateResponse_unstable, + zProviderConfigChangeResponse_unstable, + zProviderConfigReadResponse_unstable, + zProviderConfigStatusResponse_unstable, + zProviderSetupCatalogListResponse_unstable, + zReadResourceResponse_unstable, + zRefreshProviderInventoryResponse_unstable, + zUpdateSourceResponse_unstable, } from './zod.gen.js'; export class GooseExtClient { constructor(private conn: ExtMethodProvider) {} async GooseUnstableSessionExtensionsAdd( - params: AddExtensionRequest, + params: AddExtensionRequest_unstable, ): Promise { await this.conn.extMethod("_goose/unstable/session/extensions/add", params); } async GooseUnstableSessionExtensionsRemove( - params: RemoveExtensionRequest, + params: RemoveExtensionRequest_unstable, ): Promise { await this.conn.extMethod( "_goose/unstable/session/extensions/remove", @@ -150,31 +150,35 @@ export class GooseExtClient { } async GooseUnstableToolsList( - params: GetToolsRequest, - ): Promise { + params: GetToolsRequest_unstable, + ): Promise { const raw = await this.conn.extMethod("_goose/unstable/tools/list", params); - return zGetToolsResponse.parse(raw) as GetToolsResponse; + return zGetToolsResponse_unstable.parse(raw) as GetToolsResponse_unstable; } async GooseUnstableToolsCall( - params: GooseToolCallRequest, - ): Promise { + params: GooseToolCallRequest_unstable, + ): Promise { const raw = await this.conn.extMethod("_goose/unstable/tools/call", params); - return zGooseToolCallResponse.parse(raw) as GooseToolCallResponse; + return zGooseToolCallResponse_unstable.parse( + raw, + ) as GooseToolCallResponse_unstable; } async GooseUnstableResourcesRead( - params: ReadResourceRequest, - ): Promise { + params: ReadResourceRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/resources/read", params, ); - return zReadResourceResponse.parse(raw) as ReadResourceResponse; + return zReadResourceResponse_unstable.parse( + raw, + ) as ReadResourceResponse_unstable; } async GooseUnstableSessionWorkingDirUpdate( - params: UpdateWorkingDirRequest, + params: UpdateWorkingDirRequest_unstable, ): Promise { await this.conn.extMethod( "_goose/unstable/session/working-dir/update", @@ -187,23 +191,25 @@ export class GooseExtClient { } async GooseUnstableConfigExtensionsList( - params: GetExtensionsRequest, - ): Promise { + params: GetExtensionsRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/config/extensions/list", params, ); - return zGetExtensionsResponse.parse(raw) as GetExtensionsResponse; + return zGetExtensionsResponse_unstable.parse( + raw, + ) as GetExtensionsResponse_unstable; } async GooseUnstableConfigExtensionsAdd( - params: AddConfigExtensionRequest, + params: AddConfigExtensionRequest_unstable, ): Promise { await this.conn.extMethod("_goose/unstable/config/extensions/add", params); } async GooseUnstableConfigExtensionsRemove( - params: RemoveConfigExtensionRequest, + params: RemoveConfigExtensionRequest_unstable, ): Promise { await this.conn.extMethod( "_goose/unstable/config/extensions/remove", @@ -212,7 +218,7 @@ export class GooseExtClient { } async GooseUnstableConfigExtensionsToggle( - params: ToggleConfigExtensionRequest, + params: ToggleConfigExtensionRequest_unstable, ): Promise { await this.conn.extMethod( "_goose/unstable/config/extensions/toggle", @@ -221,373 +227,403 @@ export class GooseExtClient { } async GooseUnstableSessionExtensionsList( - params: GetSessionExtensionsRequest, - ): Promise { + params: GetSessionExtensionsRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/session/extensions/list", params, ); - return zGetSessionExtensionsResponse.parse( + return zGetSessionExtensionsResponse_unstable.parse( raw, - ) as GetSessionExtensionsResponse; + ) as GetSessionExtensionsResponse_unstable; } async GooseUnstableProvidersList( - params: ListProvidersRequest, - ): Promise { + params: ListProvidersRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/providers/list", params, ); - return zListProvidersResponse.parse(raw) as ListProvidersResponse; + return zListProvidersResponse_unstable.parse( + raw, + ) as ListProvidersResponse_unstable; } async GooseUnstableProvidersCatalogList( - params: ProviderCatalogListRequest, - ): Promise { + params: ProviderCatalogListRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/providers/catalog/list", params, ); - return zProviderCatalogListResponse.parse( + return zProviderCatalogListResponse_unstable.parse( raw, - ) as ProviderCatalogListResponse; + ) as ProviderCatalogListResponse_unstable; } async GooseUnstableProvidersSetupCatalogList( - params: ProviderSetupCatalogListRequest, - ): Promise { + params: ProviderSetupCatalogListRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/providers/setup/catalog/list", params, ); - return zProviderSetupCatalogListResponse.parse( + return zProviderSetupCatalogListResponse_unstable.parse( raw, - ) as ProviderSetupCatalogListResponse; + ) as ProviderSetupCatalogListResponse_unstable; } async GooseUnstableProvidersCatalogTemplate( - params: ProviderCatalogTemplateRequest, - ): Promise { + params: ProviderCatalogTemplateRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/providers/catalog/template", params, ); - return zProviderCatalogTemplateResponse.parse( + return zProviderCatalogTemplateResponse_unstable.parse( raw, - ) as ProviderCatalogTemplateResponse; + ) as ProviderCatalogTemplateResponse_unstable; } async GooseUnstableProvidersCustomCreate( - params: CustomProviderCreateRequest, - ): Promise { + params: CustomProviderCreateRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/providers/custom/create", params, ); - return zCustomProviderCreateResponse.parse( + return zCustomProviderCreateResponse_unstable.parse( raw, - ) as CustomProviderCreateResponse; + ) as CustomProviderCreateResponse_unstable; } async GooseUnstableProvidersCustomRead( - params: CustomProviderReadRequest, - ): Promise { + params: CustomProviderReadRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/providers/custom/read", params, ); - return zCustomProviderReadResponse.parse(raw) as CustomProviderReadResponse; + return zCustomProviderReadResponse_unstable.parse( + raw, + ) as CustomProviderReadResponse_unstable; } async GooseUnstableProvidersCustomUpdate( - params: CustomProviderUpdateRequest, - ): Promise { + params: CustomProviderUpdateRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/providers/custom/update", params, ); - return zCustomProviderUpdateResponse.parse( + return zCustomProviderUpdateResponse_unstable.parse( raw, - ) as CustomProviderUpdateResponse; + ) as CustomProviderUpdateResponse_unstable; } async GooseUnstableProvidersCustomDelete( - params: CustomProviderDeleteRequest, - ): Promise { + params: CustomProviderDeleteRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/providers/custom/delete", params, ); - return zCustomProviderDeleteResponse.parse( + return zCustomProviderDeleteResponse_unstable.parse( raw, - ) as CustomProviderDeleteResponse; + ) as CustomProviderDeleteResponse_unstable; } async GooseUnstableProvidersInventoryRefresh( - params: RefreshProviderInventoryRequest, - ): Promise { + params: RefreshProviderInventoryRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/providers/inventory/refresh", params, ); - return zRefreshProviderInventoryResponse.parse( + return zRefreshProviderInventoryResponse_unstable.parse( raw, - ) as RefreshProviderInventoryResponse; + ) as RefreshProviderInventoryResponse_unstable; } async GooseUnstableProvidersConfigRead( - params: ProviderConfigReadRequest, - ): Promise { + params: ProviderConfigReadRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/providers/config/read", params, ); - return zProviderConfigReadResponse.parse(raw) as ProviderConfigReadResponse; + return zProviderConfigReadResponse_unstable.parse( + raw, + ) as ProviderConfigReadResponse_unstable; } async GooseUnstableProvidersConfigStatus( - params: ProviderConfigStatusRequest, - ): Promise { + params: ProviderConfigStatusRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/providers/config/status", params, ); - return zProviderConfigStatusResponse.parse( + return zProviderConfigStatusResponse_unstable.parse( raw, - ) as ProviderConfigStatusResponse; + ) as ProviderConfigStatusResponse_unstable; } async GooseUnstableProvidersConfigSave( - params: ProviderConfigSaveRequest, - ): Promise { + params: ProviderConfigSaveRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/providers/config/save", params, ); - return zProviderConfigChangeResponse.parse( + return zProviderConfigChangeResponse_unstable.parse( raw, - ) as ProviderConfigChangeResponse; + ) as ProviderConfigChangeResponse_unstable; } async GooseUnstableProvidersConfigDelete( - params: ProviderConfigDeleteRequest, - ): Promise { + params: ProviderConfigDeleteRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/providers/config/delete", params, ); - return zProviderConfigChangeResponse.parse( + return zProviderConfigChangeResponse_unstable.parse( raw, - ) as ProviderConfigChangeResponse; + ) as ProviderConfigChangeResponse_unstable; } async GooseUnstableProvidersConfigAuthenticate( - params: ProviderConfigAuthenticateRequest, - ): Promise { + params: ProviderConfigAuthenticateRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/providers/config/authenticate", params, ); - return zProviderConfigChangeResponse.parse( + return zProviderConfigChangeResponse_unstable.parse( raw, - ) as ProviderConfigChangeResponse; + ) as ProviderConfigChangeResponse_unstable; } async GooseUnstablePreferencesRead( - params: PreferencesReadRequest, - ): Promise { + params: PreferencesReadRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/preferences/read", params, ); - return zPreferencesReadResponse.parse(raw) as PreferencesReadResponse; + return zPreferencesReadResponse_unstable.parse( + raw, + ) as PreferencesReadResponse_unstable; } async GooseUnstablePreferencesSave( - params: PreferencesSaveRequest, + params: PreferencesSaveRequest_unstable, ): Promise { await this.conn.extMethod("_goose/unstable/preferences/save", params); } async GooseUnstablePreferencesRemove( - params: PreferencesRemoveRequest, + params: PreferencesRemoveRequest_unstable, ): Promise { await this.conn.extMethod("_goose/unstable/preferences/remove", params); } async GooseUnstableDefaultsRead( - params: DefaultsReadRequest, - ): Promise { + params: DefaultsReadRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/defaults/read", params, ); - return zDefaultsReadResponse.parse(raw) as DefaultsReadResponse; + return zDefaultsReadResponse_unstable.parse( + raw, + ) as DefaultsReadResponse_unstable; } async GooseUnstableDefaultsSave( - params: DefaultsSaveRequest, - ): Promise { + params: DefaultsSaveRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/defaults/save", params, ); - return zDefaultsReadResponse.parse(raw) as DefaultsReadResponse; + return zDefaultsReadResponse_unstable.parse( + raw, + ) as DefaultsReadResponse_unstable; } async GooseUnstableOnboardingImportScan( - params: OnboardingImportScanRequest, - ): Promise { + params: OnboardingImportScanRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/onboarding/import/scan", params, ); - return zOnboardingImportScanResponse.parse( + return zOnboardingImportScanResponse_unstable.parse( raw, - ) as OnboardingImportScanResponse; + ) as OnboardingImportScanResponse_unstable; } async GooseUnstableOnboardingImportApply( - params: OnboardingImportApplyRequest, - ): Promise { + params: OnboardingImportApplyRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/onboarding/import/apply", params, ); - return zOnboardingImportApplyResponse.parse( + return zOnboardingImportApplyResponse_unstable.parse( raw, - ) as OnboardingImportApplyResponse; + ) as OnboardingImportApplyResponse_unstable; } async GooseUnstableSessionExport( - params: ExportSessionRequest, - ): Promise { + params: ExportSessionRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/session/export", params, ); - return zExportSessionResponse.parse(raw) as ExportSessionResponse; + return zExportSessionResponse_unstable.parse( + raw, + ) as ExportSessionResponse_unstable; } async GooseUnstableSessionImport( - params: ImportSessionRequest, - ): Promise { + params: ImportSessionRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/session/import", params, ); - return zImportSessionResponse.parse(raw) as ImportSessionResponse; + return zImportSessionResponse_unstable.parse( + raw, + ) as ImportSessionResponse_unstable; } async GooseUnstableSessionProjectUpdate( - params: UpdateSessionProjectRequest, + params: UpdateSessionProjectRequest_unstable, ): Promise { await this.conn.extMethod("_goose/unstable/session/project/update", params); } async GooseUnstableSessionRename( - params: RenameSessionRequest, + params: RenameSessionRequest_unstable, ): Promise { await this.conn.extMethod("_goose/unstable/session/rename", params); } async GooseUnstableSessionArchive( - params: ArchiveSessionRequest, + params: ArchiveSessionRequest_unstable, ): Promise { await this.conn.extMethod("_goose/unstable/session/archive", params); } async GooseUnstableSessionUnarchive( - params: UnarchiveSessionRequest, + params: UnarchiveSessionRequest_unstable, ): Promise { await this.conn.extMethod("_goose/unstable/session/unarchive", params); } async GooseUnstableSourcesCreate( - params: CreateSourceRequest, - ): Promise { + params: CreateSourceRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/sources/create", params, ); - return zCreateSourceResponse.parse(raw) as CreateSourceResponse; + return zCreateSourceResponse_unstable.parse( + raw, + ) as CreateSourceResponse_unstable; } async GooseUnstableSourcesList( - params: ListSourcesRequest, - ): Promise { + params: ListSourcesRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/sources/list", params, ); - return zListSourcesResponse.parse(raw) as ListSourcesResponse; + return zListSourcesResponse_unstable.parse( + raw, + ) as ListSourcesResponse_unstable; } async GooseUnstableSourcesUpdate( - params: UpdateSourceRequest, - ): Promise { + params: UpdateSourceRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/sources/update", params, ); - return zUpdateSourceResponse.parse(raw) as UpdateSourceResponse; + return zUpdateSourceResponse_unstable.parse( + raw, + ) as UpdateSourceResponse_unstable; } - async GooseUnstableSourcesDelete(params: DeleteSourceRequest): Promise { + async GooseUnstableSourcesDelete( + params: DeleteSourceRequest_unstable, + ): Promise { await this.conn.extMethod("_goose/unstable/sources/delete", params); } async GooseUnstableSourcesExport( - params: ExportSourceRequest, - ): Promise { + params: ExportSourceRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/sources/export", params, ); - return zExportSourceResponse.parse(raw) as ExportSourceResponse; + return zExportSourceResponse_unstable.parse( + raw, + ) as ExportSourceResponse_unstable; } async GooseUnstableSourcesImport( - params: ImportSourcesRequest, - ): Promise { + params: ImportSourcesRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/sources/import", params, ); - return zImportSourcesResponse.parse(raw) as ImportSourcesResponse; + return zImportSourcesResponse_unstable.parse( + raw, + ) as ImportSourcesResponse_unstable; } async GooseUnstableDictationTranscribe( - params: DictationTranscribeRequest, - ): Promise { + params: DictationTranscribeRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/dictation/transcribe", params, ); - return zDictationTranscribeResponse.parse( + return zDictationTranscribeResponse_unstable.parse( raw, - ) as DictationTranscribeResponse; + ) as DictationTranscribeResponse_unstable; } async GooseUnstableDictationConfig( - params: DictationConfigRequest, - ): Promise { + params: DictationConfigRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/dictation/config", params, ); - return zDictationConfigResponse.parse(raw) as DictationConfigResponse; + return zDictationConfigResponse_unstable.parse( + raw, + ) as DictationConfigResponse_unstable; } async GooseUnstableDictationSecretSave( - params: DictationSecretSaveRequest, + params: DictationSecretSaveRequest_unstable, ): Promise { await this.conn.extMethod("_goose/unstable/dictation/secret/save", params); } async GooseUnstableDictationSecretDelete( - params: DictationSecretDeleteRequest, + params: DictationSecretDeleteRequest_unstable, ): Promise { await this.conn.extMethod( "_goose/unstable/dictation/secret/delete", @@ -596,19 +632,19 @@ export class GooseExtClient { } async GooseUnstableDictationModelsList( - params: DictationModelsListRequest, - ): Promise { + params: DictationModelsListRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/dictation/models/list", params, ); - return zDictationModelsListResponse.parse( + return zDictationModelsListResponse_unstable.parse( raw, - ) as DictationModelsListResponse; + ) as DictationModelsListResponse_unstable; } async GooseUnstableDictationModelsDownload( - params: DictationModelDownloadRequest, + params: DictationModelDownloadRequest_unstable, ): Promise { await this.conn.extMethod( "_goose/unstable/dictation/models/download", @@ -617,19 +653,19 @@ export class GooseExtClient { } async GooseUnstableDictationModelsDownloadProgress( - params: DictationModelDownloadProgressRequest, - ): Promise { + params: DictationModelDownloadProgressRequest_unstable, + ): Promise { const raw = await this.conn.extMethod( "_goose/unstable/dictation/models/download/progress", params, ); - return zDictationModelDownloadProgressResponse.parse( + return zDictationModelDownloadProgressResponse_unstable.parse( raw, - ) as DictationModelDownloadProgressResponse; + ) as DictationModelDownloadProgressResponse_unstable; } async GooseUnstableDictationModelsCancel( - params: DictationModelCancelRequest, + params: DictationModelCancelRequest_unstable, ): Promise { await this.conn.extMethod( "_goose/unstable/dictation/models/cancel", @@ -638,7 +674,7 @@ export class GooseExtClient { } async GooseUnstableDictationModelsDelete( - params: DictationModelDeleteRequest, + params: DictationModelDeleteRequest_unstable, ): Promise { await this.conn.extMethod( "_goose/unstable/dictation/models/delete", @@ -647,7 +683,7 @@ export class GooseExtClient { } async GooseUnstableDictationModelsSelect( - params: DictationModelSelectRequest, + params: DictationModelSelectRequest_unstable, ): Promise { await this.conn.extMethod( "_goose/unstable/dictation/models/select", diff --git a/ui/sdk/src/generated/index.ts b/ui/sdk/src/generated/index.ts index f1d934537111..df782eee63f3 100644 --- a/ui/sdk/src/generated/index.ts +++ b/ui/sdk/src/generated/index.ts @@ -1,36 +1,36 @@ // This file is auto-generated by @hey-api/openapi-ts -export type { AddConfigExtensionRequest, AddExtensionRequest, ArchiveSessionRequest, CreateSourceRequest, CreateSourceResponse, CustomProviderConfigDto, CustomProviderCreateRequest, CustomProviderCreateResponse, CustomProviderDeleteRequest, CustomProviderDeleteResponse, CustomProviderReadRequest, CustomProviderReadResponse, CustomProviderUpdateRequest, CustomProviderUpdateResponse, DefaultsReadRequest, DefaultsReadResponse, DefaultsSaveRequest, DeleteSessionRequest, DeleteSourceRequest, DictationConfigRequest, DictationConfigResponse, DictationDownloadProgress, DictationLocalModelStatus, DictationModelCancelRequest, DictationModelDeleteRequest, DictationModelDownloadProgressRequest, DictationModelDownloadProgressResponse, DictationModelDownloadRequest, DictationModelOption, DictationModelSelectRequest, DictationModelsListRequest, DictationModelsListResponse, DictationProviderStatusEntry, DictationSecretDeleteRequest, DictationSecretSaveRequest, DictationTranscribeRequest, DictationTranscribeResponse, EmptyResponse, ExportSessionRequest, ExportSessionResponse, ExportSourceRequest, ExportSourceResponse, ExtRequest, ExtResponse, GetExtensionsRequest, GetExtensionsResponse, GetSessionExtensionsRequest, GetSessionExtensionsResponse, GetToolsRequest, GetToolsResponse, GooseToolCallRequest, GooseToolCallResponse, ImportSessionRequest, ImportSessionResponse, ImportSourcesRequest, ImportSourcesResponse, ListProvidersRequest, ListProvidersResponse, ListSourcesRequest, ListSourcesResponse, OnboardingImportApplyRequest, OnboardingImportApplyResponse, OnboardingImportCandidate, OnboardingImportCounts, OnboardingImportScanRequest, OnboardingImportScanResponse, OnboardingImportSourceKind, PreferenceKey, PreferencesReadRequest, PreferencesReadResponse, PreferencesRemoveRequest, PreferencesSaveRequest, PreferenceValue, ProviderCatalogListRequest, ProviderCatalogListResponse, ProviderCatalogTemplateRequest, ProviderCatalogTemplateResponse, ProviderConfigAuthenticateRequest, ProviderConfigChangeResponse, ProviderConfigDeleteRequest, ProviderConfigFieldUpdate, ProviderConfigFieldValueDto, ProviderConfigKey, ProviderConfigReadRequest, ProviderConfigReadResponse, ProviderConfigSaveRequest, ProviderConfigStatusDto, ProviderConfigStatusRequest, ProviderConfigStatusResponse, ProviderInventoryEntryDto, ProviderInventoryModelDto, ProviderSetupCatalogEntryDto, ProviderSetupCatalogListRequest, ProviderSetupCatalogListResponse, ProviderSetupCategoryDto, ProviderSetupFieldDto, ProviderSetupGroupDto, ProviderSetupMethodDto, ProviderTemplateCapabilitiesDto, ProviderTemplateCatalogEntryDto, ProviderTemplateDto, ProviderTemplateModelDto, ReadResourceRequest, ReadResourceResponse, RefreshProviderInventoryRequest, RefreshProviderInventoryResponse, RefreshProviderInventorySkipDto, RefreshProviderInventorySkipReasonDto, RemoveConfigExtensionRequest, RemoveExtensionRequest, RenameSessionRequest, SourceEntry, SourceScope, SourceType, ToggleConfigExtensionRequest, UnarchiveSessionRequest, UpdateSessionProjectRequest, UpdateSourceRequest, UpdateSourceResponse, UpdateWorkingDirRequest } from './types.gen.js'; +export type { AddConfigExtensionRequestUnstable, AddExtensionRequestUnstable, ArchiveSessionRequestUnstable, CreateSourceRequestUnstable, CreateSourceResponseUnstable, CustomProviderConfigDto, CustomProviderCreateRequestUnstable, CustomProviderCreateResponseUnstable, CustomProviderDeleteRequestUnstable, CustomProviderDeleteResponseUnstable, CustomProviderReadRequestUnstable, CustomProviderReadResponseUnstable, CustomProviderUpdateRequestUnstable, CustomProviderUpdateResponseUnstable, DefaultsReadRequestUnstable, DefaultsReadResponseUnstable, DefaultsSaveRequestUnstable, DeleteSessionRequest, DeleteSourceRequestUnstable, DictationConfigRequestUnstable, DictationConfigResponseUnstable, DictationDownloadProgress, DictationLocalModelStatus, DictationModelCancelRequestUnstable, DictationModelDeleteRequestUnstable, DictationModelDownloadProgressRequestUnstable, DictationModelDownloadProgressResponseUnstable, DictationModelDownloadRequestUnstable, DictationModelOption, DictationModelSelectRequestUnstable, DictationModelsListRequestUnstable, DictationModelsListResponseUnstable, DictationProviderStatusEntry, DictationSecretDeleteRequestUnstable, DictationSecretSaveRequestUnstable, DictationTranscribeRequestUnstable, DictationTranscribeResponseUnstable, EmptyResponse, ExportSessionRequestUnstable, ExportSessionResponseUnstable, ExportSourceRequestUnstable, ExportSourceResponseUnstable, ExtRequest, ExtResponse, GetExtensionsRequestUnstable, GetExtensionsResponseUnstable, GetSessionExtensionsRequestUnstable, GetSessionExtensionsResponseUnstable, GetToolsRequestUnstable, GetToolsResponseUnstable, GooseToolCallRequestUnstable, GooseToolCallResponseUnstable, ImportSessionRequestUnstable, ImportSessionResponseUnstable, ImportSourcesRequestUnstable, ImportSourcesResponseUnstable, ListProvidersRequestUnstable, ListProvidersResponseUnstable, ListSourcesRequestUnstable, ListSourcesResponseUnstable, OnboardingImportApplyRequestUnstable, OnboardingImportApplyResponseUnstable, OnboardingImportCandidate, OnboardingImportCounts, OnboardingImportScanRequestUnstable, OnboardingImportScanResponseUnstable, OnboardingImportSourceKind, PreferenceKey, PreferencesReadRequestUnstable, PreferencesReadResponseUnstable, PreferencesRemoveRequestUnstable, PreferencesSaveRequestUnstable, PreferenceValue, ProviderCatalogListRequestUnstable, ProviderCatalogListResponseUnstable, ProviderCatalogTemplateRequestUnstable, ProviderCatalogTemplateResponseUnstable, ProviderConfigAuthenticateRequestUnstable, ProviderConfigChangeResponseUnstable, ProviderConfigDeleteRequestUnstable, ProviderConfigFieldUpdate, ProviderConfigFieldValueDto, ProviderConfigKey, ProviderConfigReadRequestUnstable, ProviderConfigReadResponseUnstable, ProviderConfigSaveRequestUnstable, ProviderConfigStatusDto, ProviderConfigStatusRequestUnstable, ProviderConfigStatusResponseUnstable, ProviderInventoryEntryDto, ProviderInventoryModelDto, ProviderSetupCatalogEntryDto, ProviderSetupCatalogListRequestUnstable, ProviderSetupCatalogListResponseUnstable, ProviderSetupCategoryDto, ProviderSetupFieldDto, ProviderSetupGroupDto, ProviderSetupMethodDto, ProviderTemplateCapabilitiesDto, ProviderTemplateCatalogEntryDto, ProviderTemplateDto, ProviderTemplateModelDto, ReadResourceRequestUnstable, ReadResourceResponseUnstable, RefreshProviderInventoryRequestUnstable, RefreshProviderInventoryResponseUnstable, RefreshProviderInventorySkipDto, RefreshProviderInventorySkipReasonDto, RemoveConfigExtensionRequestUnstable, RemoveExtensionRequestUnstable, RenameSessionRequestUnstable, SourceEntry, SourceScope, SourceType, ToggleConfigExtensionRequestUnstable, UnarchiveSessionRequestUnstable, UpdateSessionProjectRequestUnstable, UpdateSourceRequestUnstable, UpdateSourceResponseUnstable, UpdateWorkingDirRequestUnstable } from './types.gen.js'; export const GOOSE_EXT_METHODS = [ { method: "_goose/unstable/session/extensions/add", - requestType: "AddExtensionRequest", + requestType: "AddExtensionRequest_unstable", responseType: "EmptyResponse", }, { method: "_goose/unstable/session/extensions/remove", - requestType: "RemoveExtensionRequest", + requestType: "RemoveExtensionRequest_unstable", responseType: "EmptyResponse", }, { method: "_goose/unstable/tools/list", - requestType: "GetToolsRequest", - responseType: "GetToolsResponse", + requestType: "GetToolsRequest_unstable", + responseType: "GetToolsResponse_unstable", }, { method: "_goose/unstable/tools/call", - requestType: "GooseToolCallRequest", - responseType: "GooseToolCallResponse", + requestType: "GooseToolCallRequest_unstable", + responseType: "GooseToolCallResponse_unstable", }, { method: "_goose/unstable/resources/read", - requestType: "ReadResourceRequest", - responseType: "ReadResourceResponse", + requestType: "ReadResourceRequest_unstable", + responseType: "ReadResourceResponse_unstable", }, { method: "_goose/unstable/session/working-dir/update", - requestType: "UpdateWorkingDirRequest", + requestType: "UpdateWorkingDirRequest_unstable", responseType: "EmptyResponse", }, { @@ -40,242 +40,242 @@ export const GOOSE_EXT_METHODS = [ }, { method: "_goose/unstable/config/extensions/list", - requestType: "GetExtensionsRequest", - responseType: "GetExtensionsResponse", + requestType: "GetExtensionsRequest_unstable", + responseType: "GetExtensionsResponse_unstable", }, { method: "_goose/unstable/config/extensions/add", - requestType: "AddConfigExtensionRequest", + requestType: "AddConfigExtensionRequest_unstable", responseType: "EmptyResponse", }, { method: "_goose/unstable/config/extensions/remove", - requestType: "RemoveConfigExtensionRequest", + requestType: "RemoveConfigExtensionRequest_unstable", responseType: "EmptyResponse", }, { method: "_goose/unstable/config/extensions/toggle", - requestType: "ToggleConfigExtensionRequest", + requestType: "ToggleConfigExtensionRequest_unstable", responseType: "EmptyResponse", }, { method: "_goose/unstable/session/extensions/list", - requestType: "GetSessionExtensionsRequest", - responseType: "GetSessionExtensionsResponse", + requestType: "GetSessionExtensionsRequest_unstable", + responseType: "GetSessionExtensionsResponse_unstable", }, { method: "_goose/unstable/providers/list", - requestType: "ListProvidersRequest", - responseType: "ListProvidersResponse", + requestType: "ListProvidersRequest_unstable", + responseType: "ListProvidersResponse_unstable", }, { method: "_goose/unstable/providers/catalog/list", - requestType: "ProviderCatalogListRequest", - responseType: "ProviderCatalogListResponse", + requestType: "ProviderCatalogListRequest_unstable", + responseType: "ProviderCatalogListResponse_unstable", }, { method: "_goose/unstable/providers/setup/catalog/list", - requestType: "ProviderSetupCatalogListRequest", - responseType: "ProviderSetupCatalogListResponse", + requestType: "ProviderSetupCatalogListRequest_unstable", + responseType: "ProviderSetupCatalogListResponse_unstable", }, { method: "_goose/unstable/providers/catalog/template", - requestType: "ProviderCatalogTemplateRequest", - responseType: "ProviderCatalogTemplateResponse", + requestType: "ProviderCatalogTemplateRequest_unstable", + responseType: "ProviderCatalogTemplateResponse_unstable", }, { method: "_goose/unstable/providers/custom/create", - requestType: "CustomProviderCreateRequest", - responseType: "CustomProviderCreateResponse", + requestType: "CustomProviderCreateRequest_unstable", + responseType: "CustomProviderCreateResponse_unstable", }, { method: "_goose/unstable/providers/custom/read", - requestType: "CustomProviderReadRequest", - responseType: "CustomProviderReadResponse", + requestType: "CustomProviderReadRequest_unstable", + responseType: "CustomProviderReadResponse_unstable", }, { method: "_goose/unstable/providers/custom/update", - requestType: "CustomProviderUpdateRequest", - responseType: "CustomProviderUpdateResponse", + requestType: "CustomProviderUpdateRequest_unstable", + responseType: "CustomProviderUpdateResponse_unstable", }, { method: "_goose/unstable/providers/custom/delete", - requestType: "CustomProviderDeleteRequest", - responseType: "CustomProviderDeleteResponse", + requestType: "CustomProviderDeleteRequest_unstable", + responseType: "CustomProviderDeleteResponse_unstable", }, { method: "_goose/unstable/providers/inventory/refresh", - requestType: "RefreshProviderInventoryRequest", - responseType: "RefreshProviderInventoryResponse", + requestType: "RefreshProviderInventoryRequest_unstable", + responseType: "RefreshProviderInventoryResponse_unstable", }, { method: "_goose/unstable/providers/config/read", - requestType: "ProviderConfigReadRequest", - responseType: "ProviderConfigReadResponse", + requestType: "ProviderConfigReadRequest_unstable", + responseType: "ProviderConfigReadResponse_unstable", }, { method: "_goose/unstable/providers/config/status", - requestType: "ProviderConfigStatusRequest", - responseType: "ProviderConfigStatusResponse", + requestType: "ProviderConfigStatusRequest_unstable", + responseType: "ProviderConfigStatusResponse_unstable", }, { method: "_goose/unstable/providers/config/save", - requestType: "ProviderConfigSaveRequest", - responseType: "ProviderConfigChangeResponse", + requestType: "ProviderConfigSaveRequest_unstable", + responseType: "ProviderConfigChangeResponse_unstable", }, { method: "_goose/unstable/providers/config/delete", - requestType: "ProviderConfigDeleteRequest", - responseType: "ProviderConfigChangeResponse", + requestType: "ProviderConfigDeleteRequest_unstable", + responseType: "ProviderConfigChangeResponse_unstable", }, { method: "_goose/unstable/providers/config/authenticate", - requestType: "ProviderConfigAuthenticateRequest", - responseType: "ProviderConfigChangeResponse", + requestType: "ProviderConfigAuthenticateRequest_unstable", + responseType: "ProviderConfigChangeResponse_unstable", }, { method: "_goose/unstable/preferences/read", - requestType: "PreferencesReadRequest", - responseType: "PreferencesReadResponse", + requestType: "PreferencesReadRequest_unstable", + responseType: "PreferencesReadResponse_unstable", }, { method: "_goose/unstable/preferences/save", - requestType: "PreferencesSaveRequest", + requestType: "PreferencesSaveRequest_unstable", responseType: "EmptyResponse", }, { method: "_goose/unstable/preferences/remove", - requestType: "PreferencesRemoveRequest", + requestType: "PreferencesRemoveRequest_unstable", responseType: "EmptyResponse", }, { method: "_goose/unstable/defaults/read", - requestType: "DefaultsReadRequest", - responseType: "DefaultsReadResponse", + requestType: "DefaultsReadRequest_unstable", + responseType: "DefaultsReadResponse_unstable", }, { method: "_goose/unstable/defaults/save", - requestType: "DefaultsSaveRequest", - responseType: "DefaultsReadResponse", + requestType: "DefaultsSaveRequest_unstable", + responseType: "DefaultsReadResponse_unstable", }, { method: "_goose/unstable/onboarding/import/scan", - requestType: "OnboardingImportScanRequest", - responseType: "OnboardingImportScanResponse", + requestType: "OnboardingImportScanRequest_unstable", + responseType: "OnboardingImportScanResponse_unstable", }, { method: "_goose/unstable/onboarding/import/apply", - requestType: "OnboardingImportApplyRequest", - responseType: "OnboardingImportApplyResponse", + requestType: "OnboardingImportApplyRequest_unstable", + responseType: "OnboardingImportApplyResponse_unstable", }, { method: "_goose/unstable/session/export", - requestType: "ExportSessionRequest", - responseType: "ExportSessionResponse", + requestType: "ExportSessionRequest_unstable", + responseType: "ExportSessionResponse_unstable", }, { method: "_goose/unstable/session/import", - requestType: "ImportSessionRequest", - responseType: "ImportSessionResponse", + requestType: "ImportSessionRequest_unstable", + responseType: "ImportSessionResponse_unstable", }, { method: "_goose/unstable/session/project/update", - requestType: "UpdateSessionProjectRequest", + requestType: "UpdateSessionProjectRequest_unstable", responseType: "EmptyResponse", }, { method: "_goose/unstable/session/rename", - requestType: "RenameSessionRequest", + requestType: "RenameSessionRequest_unstable", responseType: "EmptyResponse", }, { method: "_goose/unstable/session/archive", - requestType: "ArchiveSessionRequest", + requestType: "ArchiveSessionRequest_unstable", responseType: "EmptyResponse", }, { method: "_goose/unstable/session/unarchive", - requestType: "UnarchiveSessionRequest", + requestType: "UnarchiveSessionRequest_unstable", responseType: "EmptyResponse", }, { method: "_goose/unstable/sources/create", - requestType: "CreateSourceRequest", - responseType: "CreateSourceResponse", + requestType: "CreateSourceRequest_unstable", + responseType: "CreateSourceResponse_unstable", }, { method: "_goose/unstable/sources/list", - requestType: "ListSourcesRequest", - responseType: "ListSourcesResponse", + requestType: "ListSourcesRequest_unstable", + responseType: "ListSourcesResponse_unstable", }, { method: "_goose/unstable/sources/update", - requestType: "UpdateSourceRequest", - responseType: "UpdateSourceResponse", + requestType: "UpdateSourceRequest_unstable", + responseType: "UpdateSourceResponse_unstable", }, { method: "_goose/unstable/sources/delete", - requestType: "DeleteSourceRequest", + requestType: "DeleteSourceRequest_unstable", responseType: "EmptyResponse", }, { method: "_goose/unstable/sources/export", - requestType: "ExportSourceRequest", - responseType: "ExportSourceResponse", + requestType: "ExportSourceRequest_unstable", + responseType: "ExportSourceResponse_unstable", }, { method: "_goose/unstable/sources/import", - requestType: "ImportSourcesRequest", - responseType: "ImportSourcesResponse", + requestType: "ImportSourcesRequest_unstable", + responseType: "ImportSourcesResponse_unstable", }, { method: "_goose/unstable/dictation/transcribe", - requestType: "DictationTranscribeRequest", - responseType: "DictationTranscribeResponse", + requestType: "DictationTranscribeRequest_unstable", + responseType: "DictationTranscribeResponse_unstable", }, { method: "_goose/unstable/dictation/config", - requestType: "DictationConfigRequest", - responseType: "DictationConfigResponse", + requestType: "DictationConfigRequest_unstable", + responseType: "DictationConfigResponse_unstable", }, { method: "_goose/unstable/dictation/secret/save", - requestType: "DictationSecretSaveRequest", + requestType: "DictationSecretSaveRequest_unstable", responseType: "EmptyResponse", }, { method: "_goose/unstable/dictation/secret/delete", - requestType: "DictationSecretDeleteRequest", + requestType: "DictationSecretDeleteRequest_unstable", responseType: "EmptyResponse", }, { method: "_goose/unstable/dictation/models/list", - requestType: "DictationModelsListRequest", - responseType: "DictationModelsListResponse", + requestType: "DictationModelsListRequest_unstable", + responseType: "DictationModelsListResponse_unstable", }, { method: "_goose/unstable/dictation/models/download", - requestType: "DictationModelDownloadRequest", + requestType: "DictationModelDownloadRequest_unstable", responseType: "EmptyResponse", }, { method: "_goose/unstable/dictation/models/download/progress", - requestType: "DictationModelDownloadProgressRequest", - responseType: "DictationModelDownloadProgressResponse", + requestType: "DictationModelDownloadProgressRequest_unstable", + responseType: "DictationModelDownloadProgressResponse_unstable", }, { method: "_goose/unstable/dictation/models/cancel", - requestType: "DictationModelCancelRequest", + requestType: "DictationModelCancelRequest_unstable", responseType: "EmptyResponse", }, { method: "_goose/unstable/dictation/models/delete", - requestType: "DictationModelDeleteRequest", + requestType: "DictationModelDeleteRequest_unstable", responseType: "EmptyResponse", }, { method: "_goose/unstable/dictation/models/select", - requestType: "DictationModelSelectRequest", + requestType: "DictationModelSelectRequest_unstable", responseType: "EmptyResponse", }, ] as const; diff --git a/ui/sdk/src/generated/types.gen.ts b/ui/sdk/src/generated/types.gen.ts index d9bc1c2df1a9..b0487cc12acf 100644 --- a/ui/sdk/src/generated/types.gen.ts +++ b/ui/sdk/src/generated/types.gen.ts @@ -4,7 +4,7 @@ /** * Add an extension to an active session. */ -export type AddExtensionRequest = { +export type AddExtensionRequestUnstable = { sessionId: string; /** * Extension configuration (see ExtensionConfig variants: Stdio, StreamableHttp, Builtin, Platform). @@ -22,7 +22,7 @@ export type EmptyResponse = { /** * Remove an extension from an active session. */ -export type RemoveExtensionRequest = { +export type RemoveExtensionRequestUnstable = { sessionId: string; name: string; }; @@ -30,14 +30,14 @@ export type RemoveExtensionRequest = { /** * List all tools available in a session. */ -export type GetToolsRequest = { +export type GetToolsRequestUnstable = { sessionId: string; }; /** * Tools response. */ -export type GetToolsResponse = { +export type GetToolsResponseUnstable = { /** * Array of tool info objects with `name`, `description`, `parameters`, and optional `permission`. */ @@ -47,7 +47,7 @@ export type GetToolsResponse = { /** * Call a tool from an extension. */ -export type GooseToolCallRequest = { +export type GooseToolCallRequestUnstable = { sessionId: string; name: string; arguments?: unknown; @@ -56,7 +56,7 @@ export type GooseToolCallRequest = { /** * Tool call response. */ -export type GooseToolCallResponse = { +export type GooseToolCallResponseUnstable = { content?: Array; structuredContent?: unknown; isError: boolean; @@ -66,7 +66,7 @@ export type GooseToolCallResponse = { /** * Read a resource from an extension. */ -export type ReadResourceRequest = { +export type ReadResourceRequestUnstable = { sessionId: string; uri: string; extensionName: string; @@ -75,7 +75,7 @@ export type ReadResourceRequest = { /** * Resource read response. */ -export type ReadResourceResponse = { +export type ReadResourceResponseUnstable = { /** * The resource result from the extension (MCP ReadResourceResult). */ @@ -85,7 +85,7 @@ export type ReadResourceResponse = { /** * Update the working directory for a session. */ -export type UpdateWorkingDirRequest = { +export type UpdateWorkingDirRequestUnstable = { sessionId: string; workingDir: string; }; @@ -100,14 +100,14 @@ export type DeleteSessionRequest = { /** * List configured extensions and any warnings. */ -export type GetExtensionsRequest = { +export type GetExtensionsRequestUnstable = { [key: string]: unknown; }; /** * List configured extensions and any warnings. */ -export type GetExtensionsResponse = { +export type GetExtensionsResponseUnstable = { /** * Array of ExtensionEntry objects with `enabled` flag, `configKey`, and flattened config details. */ @@ -118,7 +118,7 @@ export type GetExtensionsResponse = { /** * Persist a new extension to the user's global goose config. */ -export type AddConfigExtensionRequest = { +export type AddConfigExtensionRequestUnstable = { name: string; /** * Extension configuration. Must be a JSON object matching one of the @@ -132,30 +132,30 @@ export type AddConfigExtensionRequest = { /** * Remove a persisted extension from the user's global goose config. */ -export type RemoveConfigExtensionRequest = { +export type RemoveConfigExtensionRequestUnstable = { configKey: string; }; /** * Toggle the `enabled` flag for a persisted extension in the user's global goose config. */ -export type ToggleConfigExtensionRequest = { +export type ToggleConfigExtensionRequestUnstable = { configKey: string; enabled: boolean; }; -export type GetSessionExtensionsRequest = { +export type GetSessionExtensionsRequestUnstable = { sessionId: string; }; -export type GetSessionExtensionsResponse = { +export type GetSessionExtensionsResponseUnstable = { extensions: Array; }; /** * List providers with setup metadata and the current model inventory snapshot. */ -export type ListProvidersRequest = { +export type ListProvidersRequestUnstable = { /** * Only return entries for these providers. Empty means all. */ @@ -165,7 +165,7 @@ export type ListProvidersRequest = { /** * Provider list response. */ -export type ListProvidersResponse = { +export type ListProvidersResponseUnstable = { entries: Array; }; @@ -288,11 +288,11 @@ export type ProviderInventoryModelDto = { /** * List custom-provider catalog entries. Omit `format` to list all formats. */ -export type ProviderCatalogListRequest = { +export type ProviderCatalogListRequestUnstable = { format?: string | null; }; -export type ProviderCatalogListResponse = { +export type ProviderCatalogListResponseUnstable = { providers: Array; }; @@ -309,11 +309,11 @@ export type ProviderTemplateCatalogEntryDto = { /** * List provider setup catalog entries */ -export type ProviderSetupCatalogListRequest = { +export type ProviderSetupCatalogListRequestUnstable = { [key: string]: unknown; }; -export type ProviderSetupCatalogListResponse = { +export type ProviderSetupCatalogListResponseUnstable = { providers: Array; }; @@ -351,11 +351,11 @@ export type ProviderSetupGroupDto = 'default' | 'additional'; /** * Return the editable template for one catalog provider. */ -export type ProviderCatalogTemplateRequest = { +export type ProviderCatalogTemplateRequestUnstable = { providerId: string; }; -export type ProviderCatalogTemplateResponse = { +export type ProviderCatalogTemplateResponseUnstable = { template: ProviderTemplateDto; }; @@ -388,7 +388,7 @@ export type ProviderTemplateCapabilitiesDto = { /** * Create a custom provider backed by Goose's declarative provider store. */ -export type CustomProviderCreateRequest = { +export type CustomProviderCreateRequestUnstable = { engine: string; displayName: string; apiUrl: string; @@ -404,10 +404,10 @@ export type CustomProviderCreateRequest = { preservesThinking?: boolean | null; }; -export type CustomProviderCreateResponse = { +export type CustomProviderCreateResponseUnstable = { providerId: string; status: ProviderConfigStatusDto; - refresh: RefreshProviderInventoryResponse; + refresh: RefreshProviderInventoryResponseUnstable; }; export type ProviderConfigStatusDto = { @@ -418,7 +418,7 @@ export type ProviderConfigStatusDto = { /** * Refresh acknowledgement. */ -export type RefreshProviderInventoryResponse = { +export type RefreshProviderInventoryResponseUnstable = { /** * Which providers will be refreshed. */ @@ -439,11 +439,11 @@ export type RefreshProviderInventorySkipReasonDto = 'unknown_provider' | 'not_co /** * Read a declarative provider config. Custom configs are editable; bundled configs are read-only. */ -export type CustomProviderReadRequest = { +export type CustomProviderReadRequestUnstable = { providerId: string; }; -export type CustomProviderReadResponse = { +export type CustomProviderReadResponseUnstable = { provider: CustomProviderConfigDto; editable: boolean; status: ProviderConfigStatusDto; @@ -470,7 +470,7 @@ export type CustomProviderConfigDto = { /** * Update a custom provider backed by Goose's declarative provider store. */ -export type CustomProviderUpdateRequest = { +export type CustomProviderUpdateRequestUnstable = { providerId: string; engine: string; displayName: string; @@ -487,28 +487,28 @@ export type CustomProviderUpdateRequest = { preservesThinking?: boolean | null; }; -export type CustomProviderUpdateResponse = { +export type CustomProviderUpdateResponseUnstable = { providerId: string; status: ProviderConfigStatusDto; - refresh: RefreshProviderInventoryResponse; + refresh: RefreshProviderInventoryResponseUnstable; }; /** * Delete a custom provider from Goose's declarative provider store. */ -export type CustomProviderDeleteRequest = { +export type CustomProviderDeleteRequestUnstable = { providerId: string; }; -export type CustomProviderDeleteResponse = { +export type CustomProviderDeleteResponseUnstable = { providerId: string; - refresh: RefreshProviderInventoryResponse; + refresh: RefreshProviderInventoryResponseUnstable; }; /** * Trigger a background refresh of provider inventories. */ -export type RefreshProviderInventoryRequest = { +export type RefreshProviderInventoryRequestUnstable = { /** * Which providers to refresh. Empty means all known providers. */ @@ -518,11 +518,11 @@ export type RefreshProviderInventoryRequest = { /** * Read saved configuration field values for one provider. */ -export type ProviderConfigReadRequest = { +export type ProviderConfigReadRequestUnstable = { providerId: string; }; -export type ProviderConfigReadResponse = { +export type ProviderConfigReadResponseUnstable = { fields: Array; }; @@ -537,18 +537,18 @@ export type ProviderConfigFieldValueDto = { /** * Return provider configured statuses. Empty provider_ids means all providers. */ -export type ProviderConfigStatusRequest = { +export type ProviderConfigStatusRequestUnstable = { providerIds?: Array; }; -export type ProviderConfigStatusResponse = { +export type ProviderConfigStatusResponseUnstable = { statuses: Array; }; /** * Save provider configuration fields and start an inventory refresh when supported. */ -export type ProviderConfigSaveRequest = { +export type ProviderConfigSaveRequestUnstable = { providerId: string; fields: Array; }; @@ -558,35 +558,35 @@ export type ProviderConfigFieldUpdate = { value: string; }; -export type ProviderConfigChangeResponse = { +export type ProviderConfigChangeResponseUnstable = { status: ProviderConfigStatusDto; - refresh: RefreshProviderInventoryResponse; + refresh: RefreshProviderInventoryResponseUnstable; }; /** * Delete provider configuration fields and start an inventory refresh when supported. */ -export type ProviderConfigDeleteRequest = { +export type ProviderConfigDeleteRequestUnstable = { providerId: string; }; /** * Run a provider-owned native authentication flow and start an inventory refresh when supported. */ -export type ProviderConfigAuthenticateRequest = { +export type ProviderConfigAuthenticateRequestUnstable = { providerId: string; }; /** * Read allowlisted user preferences. Empty `keys` means all supported preferences. */ -export type PreferencesReadRequest = { +export type PreferencesReadRequestUnstable = { keys?: Array; }; export type PreferenceKey = 'autoCompactThreshold' | 'voiceAutoSubmitPhrases' | 'voiceDictationProvider' | 'voiceDictationPreferredMic'; -export type PreferencesReadResponse = { +export type PreferencesReadResponseUnstable = { values: Array; }; @@ -598,25 +598,25 @@ export type PreferenceValue = { /** * Save allowlisted user preferences. */ -export type PreferencesSaveRequest = { +export type PreferencesSaveRequestUnstable = { values?: Array; }; /** * Remove allowlisted user preferences. */ -export type PreferencesRemoveRequest = { +export type PreferencesRemoveRequestUnstable = { keys?: Array; }; /** * Read Goose default provider and model configuration. */ -export type DefaultsReadRequest = { +export type DefaultsReadRequestUnstable = { [key: string]: unknown; }; -export type DefaultsReadResponse = { +export type DefaultsReadResponseUnstable = { providerId?: string | null; modelId?: string | null; }; @@ -624,7 +624,7 @@ export type DefaultsReadResponse = { /** * Save Goose default provider and model configuration. */ -export type DefaultsSaveRequest = { +export type DefaultsSaveRequestUnstable = { providerId: string; modelId?: string | null; }; @@ -632,7 +632,7 @@ export type DefaultsSaveRequest = { /** * Scan for existing Goose and compatible app data that onboarding can import. */ -export type OnboardingImportScanRequest = { +export type OnboardingImportScanRequestUnstable = { /** * Empty means all supported import sources. */ @@ -644,7 +644,7 @@ export type OnboardingImportScanRequest = { */ export type OnboardingImportSourceKind = 'goose_config' | 'claude_desktop'; -export type OnboardingImportScanResponse = { +export type OnboardingImportScanResponseUnstable = { candidates: Array; }; @@ -669,43 +669,43 @@ export type OnboardingImportCounts = { /** * Import selected onboarding candidates. */ -export type OnboardingImportApplyRequest = { +export type OnboardingImportApplyRequestUnstable = { candidateIds?: Array; enableImportedExtensions?: boolean; }; -export type OnboardingImportApplyResponse = { +export type OnboardingImportApplyResponseUnstable = { imported: OnboardingImportCounts; skipped: OnboardingImportCounts; warnings?: Array; - providerDefaults?: DefaultsReadResponse | null; + providerDefaults?: DefaultsReadResponseUnstable | null; }; /** * Export a session as a JSON string. */ -export type ExportSessionRequest = { +export type ExportSessionRequestUnstable = { sessionId: string; }; /** * Export session response — raw JSON of the goose session with `conversation`. */ -export type ExportSessionResponse = { +export type ExportSessionResponseUnstable = { data: string; }; /** * Import a session from a JSON string. */ -export type ImportSessionRequest = { +export type ImportSessionRequestUnstable = { data: string; }; /** * Import session response — metadata about the newly created session. */ -export type ImportSessionResponse = { +export type ImportSessionResponseUnstable = { sessionId: string; title?: string | null; updatedAt?: string | null; @@ -715,7 +715,7 @@ export type ImportSessionResponse = { /** * Update the project association for a session. */ -export type UpdateSessionProjectRequest = { +export type UpdateSessionProjectRequestUnstable = { sessionId: string; projectId?: string | null; }; @@ -723,7 +723,7 @@ export type UpdateSessionProjectRequest = { /** * Rename a session. */ -export type RenameSessionRequest = { +export type RenameSessionRequestUnstable = { sessionId: string; title: string; }; @@ -731,21 +731,21 @@ export type RenameSessionRequest = { /** * Archive a session (soft delete). */ -export type ArchiveSessionRequest = { +export type ArchiveSessionRequestUnstable = { sessionId: string; }; /** * Unarchive a previously archived session. */ -export type UnarchiveSessionRequest = { +export type UnarchiveSessionRequestUnstable = { sessionId: string; }; /** * Create a new source in an explicit target scope (global or project-scoped). */ -export type CreateSourceRequest = { +export type CreateSourceRequestUnstable = { type: SourceType; name: string; description: string; @@ -777,7 +777,7 @@ export type SourceScope = { scope: 'projectId'; }; -export type CreateSourceResponse = { +export type CreateSourceResponseUnstable = { source: SourceEntry; }; @@ -830,7 +830,7 @@ export type SourceEntry = { * set. If `type` is `builtinSkill`, this lists shipped read-only built-in * skills. */ -export type ListSourcesRequest = { +export type ListSourcesRequestUnstable = { type?: SourceType | null; projectDir?: string | null; /** @@ -840,14 +840,14 @@ export type ListSourcesRequest = { includeProjectSources?: boolean; }; -export type ListSourcesResponse = { +export type ListSourcesResponseUnstable = { sources: Array; }; /** * Update an existing source's name, description, and content by absolute path. */ -export type UpdateSourceRequest = { +export type UpdateSourceRequestUnstable = { type: SourceType; path: string; name: string; @@ -865,14 +865,14 @@ export type UpdateSourceRequest = { } | null; }; -export type UpdateSourceResponse = { +export type UpdateSourceResponseUnstable = { source: SourceEntry; }; /** * Delete a source and its on-disk directory by absolute path. */ -export type DeleteSourceRequest = { +export type DeleteSourceRequestUnstable = { type: SourceType; path: string; }; @@ -880,12 +880,12 @@ export type DeleteSourceRequest = { /** * Export a source at an absolute path as a portable JSON payload. */ -export type ExportSourceRequest = { +export type ExportSourceRequestUnstable = { type: SourceType; path: string; }; -export type ExportSourceResponse = { +export type ExportSourceResponseUnstable = { json: string; filename: string; }; @@ -895,19 +895,19 @@ export type ExportSourceResponse = { * The imported source is written into the explicit target scope; on name * collisions a `-imported` suffix is appended. */ -export type ImportSourcesRequest = { +export type ImportSourcesRequestUnstable = { data: string; target: SourceScope; }; -export type ImportSourcesResponse = { +export type ImportSourcesResponseUnstable = { sources: Array; }; /** * Transcribe audio via a dictation provider. */ -export type DictationTranscribeRequest = { +export type DictationTranscribeRequestUnstable = { /** * Base64-encoded audio data */ @@ -925,21 +925,21 @@ export type DictationTranscribeRequest = { /** * Transcription result. */ -export type DictationTranscribeResponse = { +export type DictationTranscribeResponseUnstable = { text: string; }; /** * Get the configuration status of all dictation providers. */ -export type DictationConfigRequest = { +export type DictationConfigRequestUnstable = { [key: string]: unknown; }; /** * Dictation config response — map of provider name to status. */ -export type DictationConfigResponse = { +export type DictationConfigResponseUnstable = { providers: { [key: string]: DictationProviderStatusEntry; }; @@ -970,7 +970,7 @@ export type DictationModelOption = { /** * Set a dictation provider secret value. */ -export type DictationSecretSaveRequest = { +export type DictationSecretSaveRequestUnstable = { provider: string; value: string; }; @@ -978,18 +978,18 @@ export type DictationSecretSaveRequest = { /** * Remove a dictation provider secret value. */ -export type DictationSecretDeleteRequest = { +export type DictationSecretDeleteRequestUnstable = { provider: string; }; /** * List available local Whisper models with their download status. */ -export type DictationModelsListRequest = { +export type DictationModelsListRequestUnstable = { [key: string]: unknown; }; -export type DictationModelsListResponse = { +export type DictationModelsListResponseUnstable = { models: Array; }; @@ -1005,18 +1005,18 @@ export type DictationLocalModelStatus = { /** * Kick off a background download of a local Whisper model. */ -export type DictationModelDownloadRequest = { +export type DictationModelDownloadRequestUnstable = { modelId: string; }; /** * Poll the progress of an in-flight download. */ -export type DictationModelDownloadProgressRequest = { +export type DictationModelDownloadProgressRequestUnstable = { modelId: string; }; -export type DictationModelDownloadProgressResponse = { +export type DictationModelDownloadProgressResponseUnstable = { /** * None when no download is active for this model id. */ @@ -1037,21 +1037,21 @@ export type DictationDownloadProgress = { /** * Cancel an in-flight download. */ -export type DictationModelCancelRequest = { +export type DictationModelCancelRequestUnstable = { modelId: string; }; /** * Delete a downloaded local Whisper model from disk. */ -export type DictationModelDeleteRequest = { +export type DictationModelDeleteRequestUnstable = { modelId: string; }; /** * Persist the user's model selection for a given provider. */ -export type DictationModelSelectRequest = { +export type DictationModelSelectRequestUnstable = { provider: string; modelId: string; }; @@ -1059,14 +1059,14 @@ export type DictationModelSelectRequest = { export type ExtRequest = { id: string; method: string; - params?: AddExtensionRequest | RemoveExtensionRequest | GetToolsRequest | GooseToolCallRequest | ReadResourceRequest | UpdateWorkingDirRequest | DeleteSessionRequest | GetExtensionsRequest | AddConfigExtensionRequest | RemoveConfigExtensionRequest | ToggleConfigExtensionRequest | GetSessionExtensionsRequest | ListProvidersRequest | ProviderCatalogListRequest | ProviderSetupCatalogListRequest | ProviderCatalogTemplateRequest | CustomProviderCreateRequest | CustomProviderReadRequest | CustomProviderUpdateRequest | CustomProviderDeleteRequest | RefreshProviderInventoryRequest | ProviderConfigReadRequest | ProviderConfigStatusRequest | ProviderConfigSaveRequest | ProviderConfigDeleteRequest | ProviderConfigAuthenticateRequest | PreferencesReadRequest | PreferencesSaveRequest | PreferencesRemoveRequest | DefaultsReadRequest | DefaultsSaveRequest | OnboardingImportScanRequest | OnboardingImportApplyRequest | ExportSessionRequest | ImportSessionRequest | UpdateSessionProjectRequest | RenameSessionRequest | ArchiveSessionRequest | UnarchiveSessionRequest | CreateSourceRequest | ListSourcesRequest | UpdateSourceRequest | DeleteSourceRequest | ExportSourceRequest | ImportSourcesRequest | DictationTranscribeRequest | DictationConfigRequest | DictationSecretSaveRequest | DictationSecretDeleteRequest | DictationModelsListRequest | DictationModelDownloadRequest | DictationModelDownloadProgressRequest | DictationModelCancelRequest | DictationModelDeleteRequest | DictationModelSelectRequest | { + params?: AddExtensionRequestUnstable | RemoveExtensionRequestUnstable | GetToolsRequestUnstable | GooseToolCallRequestUnstable | ReadResourceRequestUnstable | UpdateWorkingDirRequestUnstable | DeleteSessionRequest | GetExtensionsRequestUnstable | AddConfigExtensionRequestUnstable | RemoveConfigExtensionRequestUnstable | ToggleConfigExtensionRequestUnstable | GetSessionExtensionsRequestUnstable | ListProvidersRequestUnstable | ProviderCatalogListRequestUnstable | ProviderSetupCatalogListRequestUnstable | ProviderCatalogTemplateRequestUnstable | CustomProviderCreateRequestUnstable | CustomProviderReadRequestUnstable | CustomProviderUpdateRequestUnstable | CustomProviderDeleteRequestUnstable | RefreshProviderInventoryRequestUnstable | ProviderConfigReadRequestUnstable | ProviderConfigStatusRequestUnstable | ProviderConfigSaveRequestUnstable | ProviderConfigDeleteRequestUnstable | ProviderConfigAuthenticateRequestUnstable | PreferencesReadRequestUnstable | PreferencesSaveRequestUnstable | PreferencesRemoveRequestUnstable | DefaultsReadRequestUnstable | DefaultsSaveRequestUnstable | OnboardingImportScanRequestUnstable | OnboardingImportApplyRequestUnstable | ExportSessionRequestUnstable | ImportSessionRequestUnstable | UpdateSessionProjectRequestUnstable | RenameSessionRequestUnstable | ArchiveSessionRequestUnstable | UnarchiveSessionRequestUnstable | CreateSourceRequestUnstable | ListSourcesRequestUnstable | UpdateSourceRequestUnstable | DeleteSourceRequestUnstable | ExportSourceRequestUnstable | ImportSourcesRequestUnstable | DictationTranscribeRequestUnstable | DictationConfigRequestUnstable | DictationSecretSaveRequestUnstable | DictationSecretDeleteRequestUnstable | DictationModelsListRequestUnstable | DictationModelDownloadRequestUnstable | DictationModelDownloadProgressRequestUnstable | DictationModelCancelRequestUnstable | DictationModelDeleteRequestUnstable | DictationModelSelectRequestUnstable | { [key: string]: unknown; } | null; }; export type ExtResponse = { id: string; - result?: EmptyResponse | GetToolsResponse | GooseToolCallResponse | ReadResourceResponse | GetExtensionsResponse | GetSessionExtensionsResponse | ListProvidersResponse | ProviderCatalogListResponse | ProviderSetupCatalogListResponse | ProviderCatalogTemplateResponse | CustomProviderCreateResponse | CustomProviderReadResponse | CustomProviderUpdateResponse | CustomProviderDeleteResponse | RefreshProviderInventoryResponse | ProviderConfigReadResponse | ProviderConfigStatusResponse | ProviderConfigChangeResponse | PreferencesReadResponse | DefaultsReadResponse | OnboardingImportScanResponse | OnboardingImportApplyResponse | ExportSessionResponse | ImportSessionResponse | CreateSourceResponse | ListSourcesResponse | UpdateSourceResponse | ExportSourceResponse | ImportSourcesResponse | DictationTranscribeResponse | DictationConfigResponse | DictationModelsListResponse | DictationModelDownloadProgressResponse | unknown; + result?: EmptyResponse | GetToolsResponseUnstable | GooseToolCallResponseUnstable | ReadResourceResponseUnstable | GetExtensionsResponseUnstable | GetSessionExtensionsResponseUnstable | ListProvidersResponseUnstable | ProviderCatalogListResponseUnstable | ProviderSetupCatalogListResponseUnstable | ProviderCatalogTemplateResponseUnstable | CustomProviderCreateResponseUnstable | CustomProviderReadResponseUnstable | CustomProviderUpdateResponseUnstable | CustomProviderDeleteResponseUnstable | RefreshProviderInventoryResponseUnstable | ProviderConfigReadResponseUnstable | ProviderConfigStatusResponseUnstable | ProviderConfigChangeResponseUnstable | PreferencesReadResponseUnstable | DefaultsReadResponseUnstable | OnboardingImportScanResponseUnstable | OnboardingImportApplyResponseUnstable | ExportSessionResponseUnstable | ImportSessionResponseUnstable | CreateSourceResponseUnstable | ListSourcesResponseUnstable | UpdateSourceResponseUnstable | ExportSourceResponseUnstable | ImportSourcesResponseUnstable | DictationTranscribeResponseUnstable | DictationConfigResponseUnstable | DictationModelsListResponseUnstable | DictationModelDownloadProgressResponseUnstable | unknown; } | { error: { code: number; diff --git a/ui/sdk/src/generated/zod.gen.ts b/ui/sdk/src/generated/zod.gen.ts index 08d6da8dfaff..9d754332362d 100644 --- a/ui/sdk/src/generated/zod.gen.ts +++ b/ui/sdk/src/generated/zod.gen.ts @@ -5,7 +5,7 @@ import { z } from 'zod'; /** * Add an extension to an active session. */ -export const zAddExtensionRequest = z.object({ +export const zAddExtensionRequestUnstable = z.object({ sessionId: z.string(), config: z.unknown().optional().default(null) }); @@ -18,7 +18,7 @@ export const zEmptyResponse = z.record(z.unknown()); /** * Remove an extension from an active session. */ -export const zRemoveExtensionRequest = z.object({ +export const zRemoveExtensionRequestUnstable = z.object({ sessionId: z.string(), name: z.string() }); @@ -26,21 +26,21 @@ export const zRemoveExtensionRequest = z.object({ /** * List all tools available in a session. */ -export const zGetToolsRequest = z.object({ +export const zGetToolsRequestUnstable = z.object({ sessionId: z.string() }); /** * Tools response. */ -export const zGetToolsResponse = z.object({ +export const zGetToolsResponseUnstable = z.object({ tools: z.array(z.unknown()) }); /** * Call a tool from an extension. */ -export const zGooseToolCallRequest = z.object({ +export const zGooseToolCallRequestUnstable = z.object({ sessionId: z.string(), name: z.string(), arguments: z.unknown().optional().default(null) @@ -49,7 +49,7 @@ export const zGooseToolCallRequest = z.object({ /** * Tool call response. */ -export const zGooseToolCallResponse = z.object({ +export const zGooseToolCallResponseUnstable = z.object({ content: z.array(z.unknown()).optional().default([]), structuredContent: z.unknown().optional(), isError: z.boolean(), @@ -59,7 +59,7 @@ export const zGooseToolCallResponse = z.object({ /** * Read a resource from an extension. */ -export const zReadResourceRequest = z.object({ +export const zReadResourceRequestUnstable = z.object({ sessionId: z.string(), uri: z.string(), extensionName: z.string() @@ -68,14 +68,14 @@ export const zReadResourceRequest = z.object({ /** * Resource read response. */ -export const zReadResourceResponse = z.object({ +export const zReadResourceResponseUnstable = z.object({ result: z.unknown().optional().default(null) }); /** * Update the working directory for a session. */ -export const zUpdateWorkingDirRequest = z.object({ +export const zUpdateWorkingDirRequestUnstable = z.object({ sessionId: z.string(), workingDir: z.string() }); @@ -90,12 +90,12 @@ export const zDeleteSessionRequest = z.object({ /** * List configured extensions and any warnings. */ -export const zGetExtensionsRequest = z.record(z.unknown()); +export const zGetExtensionsRequestUnstable = z.record(z.unknown()); /** * List configured extensions and any warnings. */ -export const zGetExtensionsResponse = z.object({ +export const zGetExtensionsResponseUnstable = z.object({ extensions: z.array(z.unknown()), warnings: z.array(z.string()) }); @@ -103,7 +103,7 @@ export const zGetExtensionsResponse = z.object({ /** * Persist a new extension to the user's global goose config. */ -export const zAddConfigExtensionRequest = z.object({ +export const zAddConfigExtensionRequestUnstable = z.object({ name: z.string(), extensionConfig: z.unknown().optional().default(null), enabled: z.boolean().optional().default(false) @@ -112,30 +112,30 @@ export const zAddConfigExtensionRequest = z.object({ /** * Remove a persisted extension from the user's global goose config. */ -export const zRemoveConfigExtensionRequest = z.object({ +export const zRemoveConfigExtensionRequestUnstable = z.object({ configKey: z.string() }); /** * Toggle the `enabled` flag for a persisted extension in the user's global goose config. */ -export const zToggleConfigExtensionRequest = z.object({ +export const zToggleConfigExtensionRequestUnstable = z.object({ configKey: z.string(), enabled: z.boolean() }); -export const zGetSessionExtensionsRequest = z.object({ +export const zGetSessionExtensionsRequestUnstable = z.object({ sessionId: z.string() }); -export const zGetSessionExtensionsResponse = z.object({ +export const zGetSessionExtensionsResponseUnstable = z.object({ extensions: z.array(z.unknown()) }); /** * List providers with setup metadata and the current model inventory snapshot. */ -export const zListProvidersRequest = z.object({ +export const zListProvidersRequestUnstable = z.object({ providerIds: z.array(z.string()).optional().default([]) }); @@ -213,14 +213,14 @@ export const zProviderInventoryEntryDto = z.object({ /** * Provider list response. */ -export const zListProvidersResponse = z.object({ +export const zListProvidersResponseUnstable = z.object({ entries: z.array(zProviderInventoryEntryDto) }); /** * List custom-provider catalog entries. Omit `format` to list all formats. */ -export const zProviderCatalogListRequest = z.object({ +export const zProviderCatalogListRequestUnstable = z.object({ format: z.union([ z.string(), z.null() @@ -237,14 +237,14 @@ export const zProviderTemplateCatalogEntryDto = z.object({ envVar: z.string() }); -export const zProviderCatalogListResponse = z.object({ +export const zProviderCatalogListResponseUnstable = z.object({ providers: z.array(zProviderTemplateCatalogEntryDto) }); /** * List provider setup catalog entries */ -export const zProviderSetupCatalogListRequest = z.record(z.unknown()); +export const zProviderSetupCatalogListRequestUnstable = z.record(z.unknown()); export const zProviderSetupMethodDto = z.enum([ 'none', @@ -302,14 +302,14 @@ export const zProviderSetupCatalogEntryDto = z.object({ supportsAuthStatus: z.boolean() }); -export const zProviderSetupCatalogListResponse = z.object({ +export const zProviderSetupCatalogListResponseUnstable = z.object({ providers: z.array(zProviderSetupCatalogEntryDto) }); /** * Return the editable template for one catalog provider. */ -export const zProviderCatalogTemplateRequest = z.object({ +export const zProviderCatalogTemplateRequestUnstable = z.object({ providerId: z.string() }); @@ -339,14 +339,14 @@ export const zProviderTemplateDto = z.object({ docUrl: z.string() }); -export const zProviderCatalogTemplateResponse = z.object({ +export const zProviderCatalogTemplateResponseUnstable = z.object({ template: zProviderTemplateDto }); /** * Create a custom provider backed by Goose's declarative provider store. */ -export const zCustomProviderCreateRequest = z.object({ +export const zCustomProviderCreateRequestUnstable = z.object({ engine: z.string(), displayName: z.string(), apiUrl: z.string(), @@ -395,21 +395,21 @@ export const zRefreshProviderInventorySkipDto = z.object({ /** * Refresh acknowledgement. */ -export const zRefreshProviderInventoryResponse = z.object({ +export const zRefreshProviderInventoryResponseUnstable = z.object({ started: z.array(z.string()), skipped: z.array(zRefreshProviderInventorySkipDto).optional().default([]) }); -export const zCustomProviderCreateResponse = z.object({ +export const zCustomProviderCreateResponseUnstable = z.object({ providerId: z.string(), status: zProviderConfigStatusDto, - refresh: zRefreshProviderInventoryResponse + refresh: zRefreshProviderInventoryResponseUnstable }); /** * Read a declarative provider config. Custom configs are editable; bundled configs are read-only. */ -export const zCustomProviderReadRequest = z.object({ +export const zCustomProviderReadRequestUnstable = z.object({ providerId: z.string() }); @@ -441,7 +441,7 @@ export const zCustomProviderConfigDto = z.object({ preservesThinking: z.boolean() }); -export const zCustomProviderReadResponse = z.object({ +export const zCustomProviderReadResponseUnstable = z.object({ provider: zCustomProviderConfigDto, editable: z.boolean(), status: zProviderConfigStatusDto @@ -450,7 +450,7 @@ export const zCustomProviderReadResponse = z.object({ /** * Update a custom provider backed by Goose's declarative provider store. */ -export const zCustomProviderUpdateRequest = z.object({ +export const zCustomProviderUpdateRequestUnstable = z.object({ providerId: z.string(), engine: z.string(), displayName: z.string(), @@ -480,35 +480,35 @@ export const zCustomProviderUpdateRequest = z.object({ ]).optional() }); -export const zCustomProviderUpdateResponse = z.object({ +export const zCustomProviderUpdateResponseUnstable = z.object({ providerId: z.string(), status: zProviderConfigStatusDto, - refresh: zRefreshProviderInventoryResponse + refresh: zRefreshProviderInventoryResponseUnstable }); /** * Delete a custom provider from Goose's declarative provider store. */ -export const zCustomProviderDeleteRequest = z.object({ +export const zCustomProviderDeleteRequestUnstable = z.object({ providerId: z.string() }); -export const zCustomProviderDeleteResponse = z.object({ +export const zCustomProviderDeleteResponseUnstable = z.object({ providerId: z.string(), - refresh: zRefreshProviderInventoryResponse + refresh: zRefreshProviderInventoryResponseUnstable }); /** * Trigger a background refresh of provider inventories. */ -export const zRefreshProviderInventoryRequest = z.object({ +export const zRefreshProviderInventoryRequestUnstable = z.object({ providerIds: z.array(z.string()).optional().default([]) }); /** * Read saved configuration field values for one provider. */ -export const zProviderConfigReadRequest = z.object({ +export const zProviderConfigReadRequestUnstable = z.object({ providerId: z.string() }); @@ -523,18 +523,18 @@ export const zProviderConfigFieldValueDto = z.object({ required: z.boolean() }); -export const zProviderConfigReadResponse = z.object({ +export const zProviderConfigReadResponseUnstable = z.object({ fields: z.array(zProviderConfigFieldValueDto) }); /** * Return provider configured statuses. Empty provider_ids means all providers. */ -export const zProviderConfigStatusRequest = z.object({ +export const zProviderConfigStatusRequestUnstable = z.object({ providerIds: z.array(z.string()).optional().default([]) }); -export const zProviderConfigStatusResponse = z.object({ +export const zProviderConfigStatusResponseUnstable = z.object({ statuses: z.array(zProviderConfigStatusDto) }); @@ -546,27 +546,27 @@ export const zProviderConfigFieldUpdate = z.object({ /** * Save provider configuration fields and start an inventory refresh when supported. */ -export const zProviderConfigSaveRequest = z.object({ +export const zProviderConfigSaveRequestUnstable = z.object({ providerId: z.string(), fields: z.array(zProviderConfigFieldUpdate) }); -export const zProviderConfigChangeResponse = z.object({ +export const zProviderConfigChangeResponseUnstable = z.object({ status: zProviderConfigStatusDto, - refresh: zRefreshProviderInventoryResponse + refresh: zRefreshProviderInventoryResponseUnstable }); /** * Delete provider configuration fields and start an inventory refresh when supported. */ -export const zProviderConfigDeleteRequest = z.object({ +export const zProviderConfigDeleteRequestUnstable = z.object({ providerId: z.string() }); /** * Run a provider-owned native authentication flow and start an inventory refresh when supported. */ -export const zProviderConfigAuthenticateRequest = z.object({ +export const zProviderConfigAuthenticateRequestUnstable = z.object({ providerId: z.string() }); @@ -580,7 +580,7 @@ export const zPreferenceKey = z.enum([ /** * Read allowlisted user preferences. Empty `keys` means all supported preferences. */ -export const zPreferencesReadRequest = z.object({ +export const zPreferencesReadRequestUnstable = z.object({ keys: z.array(zPreferenceKey).optional().default([]) }); @@ -589,30 +589,30 @@ export const zPreferenceValue = z.object({ value: z.unknown().optional().default(null) }); -export const zPreferencesReadResponse = z.object({ +export const zPreferencesReadResponseUnstable = z.object({ values: z.array(zPreferenceValue) }); /** * Save allowlisted user preferences. */ -export const zPreferencesSaveRequest = z.object({ +export const zPreferencesSaveRequestUnstable = z.object({ values: z.array(zPreferenceValue).optional().default([]) }); /** * Remove allowlisted user preferences. */ -export const zPreferencesRemoveRequest = z.object({ +export const zPreferencesRemoveRequestUnstable = z.object({ keys: z.array(zPreferenceKey).optional().default([]) }); /** * Read Goose default provider and model configuration. */ -export const zDefaultsReadRequest = z.record(z.unknown()); +export const zDefaultsReadRequestUnstable = z.record(z.unknown()); -export const zDefaultsReadResponse = z.object({ +export const zDefaultsReadResponseUnstable = z.object({ providerId: z.union([ z.string(), z.null() @@ -626,7 +626,7 @@ export const zDefaultsReadResponse = z.object({ /** * Save Goose default provider and model configuration. */ -export const zDefaultsSaveRequest = z.object({ +export const zDefaultsSaveRequestUnstable = z.object({ providerId: z.string(), modelId: z.union([ z.string(), @@ -642,7 +642,7 @@ export const zOnboardingImportSourceKind = z.enum(['goose_config', 'claude_deskt /** * Scan for existing Goose and compatible app data that onboarding can import. */ -export const zOnboardingImportScanRequest = z.object({ +export const zOnboardingImportScanRequestUnstable = z.object({ sources: z.array(zOnboardingImportSourceKind).optional().default([]) }); @@ -664,24 +664,24 @@ export const zOnboardingImportCandidate = z.object({ warnings: z.array(z.string()).optional().default([]) }); -export const zOnboardingImportScanResponse = z.object({ +export const zOnboardingImportScanResponseUnstable = z.object({ candidates: z.array(zOnboardingImportCandidate) }); /** * Import selected onboarding candidates. */ -export const zOnboardingImportApplyRequest = z.object({ +export const zOnboardingImportApplyRequestUnstable = z.object({ candidateIds: z.array(z.string()).optional().default([]), enableImportedExtensions: z.boolean().optional().default(false) }); -export const zOnboardingImportApplyResponse = z.object({ +export const zOnboardingImportApplyResponseUnstable = z.object({ imported: zOnboardingImportCounts, skipped: zOnboardingImportCounts, warnings: z.array(z.string()).optional().default([]), providerDefaults: z.union([ - zDefaultsReadResponse, + zDefaultsReadResponseUnstable, z.null() ]).optional() }); @@ -689,28 +689,28 @@ export const zOnboardingImportApplyResponse = z.object({ /** * Export a session as a JSON string. */ -export const zExportSessionRequest = z.object({ +export const zExportSessionRequestUnstable = z.object({ sessionId: z.string() }); /** * Export session response — raw JSON of the goose session with `conversation`. */ -export const zExportSessionResponse = z.object({ +export const zExportSessionResponseUnstable = z.object({ data: z.string() }); /** * Import a session from a JSON string. */ -export const zImportSessionRequest = z.object({ +export const zImportSessionRequestUnstable = z.object({ data: z.string() }); /** * Import session response — metadata about the newly created session. */ -export const zImportSessionResponse = z.object({ +export const zImportSessionResponseUnstable = z.object({ sessionId: z.string(), title: z.union([ z.string(), @@ -726,7 +726,7 @@ export const zImportSessionResponse = z.object({ /** * Update the project association for a session. */ -export const zUpdateSessionProjectRequest = z.object({ +export const zUpdateSessionProjectRequestUnstable = z.object({ sessionId: z.string(), projectId: z.union([ z.string(), @@ -737,7 +737,7 @@ export const zUpdateSessionProjectRequest = z.object({ /** * Rename a session. */ -export const zRenameSessionRequest = z.object({ +export const zRenameSessionRequestUnstable = z.object({ sessionId: z.string(), title: z.string() }); @@ -745,14 +745,14 @@ export const zRenameSessionRequest = z.object({ /** * Archive a session (soft delete). */ -export const zArchiveSessionRequest = z.object({ +export const zArchiveSessionRequestUnstable = z.object({ sessionId: z.string() }); /** * Unarchive a previously archived session. */ -export const zUnarchiveSessionRequest = z.object({ +export const zUnarchiveSessionRequestUnstable = z.object({ sessionId: z.string() }); @@ -788,7 +788,7 @@ export const zSourceScope = z.union([ /** * Create a new source in an explicit target scope (global or project-scoped). */ -export const zCreateSourceRequest = z.object({ +export const zCreateSourceRequestUnstable = z.object({ type: zSourceType, name: z.string(), description: z.string(), @@ -814,7 +814,7 @@ export const zSourceEntry = z.object({ properties: z.record(z.unknown()).optional() }); -export const zCreateSourceResponse = z.object({ +export const zCreateSourceResponseUnstable = z.object({ source: zSourceEntry }); @@ -826,7 +826,7 @@ export const zCreateSourceResponse = z.object({ * set. If `type` is `builtinSkill`, this lists shipped read-only built-in * skills. */ -export const zListSourcesRequest = z.object({ +export const zListSourcesRequestUnstable = z.object({ type: z.union([ zSourceType, z.null() @@ -838,14 +838,14 @@ export const zListSourcesRequest = z.object({ includeProjectSources: z.boolean().optional().default(false) }); -export const zListSourcesResponse = z.object({ +export const zListSourcesResponseUnstable = z.object({ sources: z.array(zSourceEntry) }); /** * Update an existing source's name, description, and content by absolute path. */ -export const zUpdateSourceRequest = z.object({ +export const zUpdateSourceRequestUnstable = z.object({ type: zSourceType, path: z.string(), name: z.string(), @@ -857,14 +857,14 @@ export const zUpdateSourceRequest = z.object({ ]).optional() }); -export const zUpdateSourceResponse = z.object({ +export const zUpdateSourceResponseUnstable = z.object({ source: zSourceEntry }); /** * Delete a source and its on-disk directory by absolute path. */ -export const zDeleteSourceRequest = z.object({ +export const zDeleteSourceRequestUnstable = z.object({ type: zSourceType, path: z.string() }); @@ -872,12 +872,12 @@ export const zDeleteSourceRequest = z.object({ /** * Export a source at an absolute path as a portable JSON payload. */ -export const zExportSourceRequest = z.object({ +export const zExportSourceRequestUnstable = z.object({ type: zSourceType, path: z.string() }); -export const zExportSourceResponse = z.object({ +export const zExportSourceResponseUnstable = z.object({ json: z.string(), filename: z.string() }); @@ -887,19 +887,19 @@ export const zExportSourceResponse = z.object({ * The imported source is written into the explicit target scope; on name * collisions a `-imported` suffix is appended. */ -export const zImportSourcesRequest = z.object({ +export const zImportSourcesRequestUnstable = z.object({ data: z.string(), target: zSourceScope }); -export const zImportSourcesResponse = z.object({ +export const zImportSourcesResponseUnstable = z.object({ sources: z.array(zSourceEntry) }); /** * Transcribe audio via a dictation provider. */ -export const zDictationTranscribeRequest = z.object({ +export const zDictationTranscribeRequestUnstable = z.object({ audio: z.string(), mimeType: z.string(), provider: z.string() @@ -908,14 +908,14 @@ export const zDictationTranscribeRequest = z.object({ /** * Transcription result. */ -export const zDictationTranscribeResponse = z.object({ +export const zDictationTranscribeResponseUnstable = z.object({ text: z.string() }); /** * Get the configuration status of all dictation providers. */ -export const zDictationConfigRequest = z.record(z.unknown()); +export const zDictationConfigRequestUnstable = z.record(z.unknown()); export const zDictationModelOption = z.object({ id: z.string(), @@ -960,14 +960,14 @@ export const zDictationProviderStatusEntry = z.object({ /** * Dictation config response — map of provider name to status. */ -export const zDictationConfigResponse = z.object({ +export const zDictationConfigResponseUnstable = z.object({ providers: z.record(zDictationProviderStatusEntry) }); /** * Set a dictation provider secret value. */ -export const zDictationSecretSaveRequest = z.object({ +export const zDictationSecretSaveRequestUnstable = z.object({ provider: z.string(), value: z.string() }); @@ -975,14 +975,14 @@ export const zDictationSecretSaveRequest = z.object({ /** * Remove a dictation provider secret value. */ -export const zDictationSecretDeleteRequest = z.object({ +export const zDictationSecretDeleteRequestUnstable = z.object({ provider: z.string() }); /** * List available local Whisper models with their download status. */ -export const zDictationModelsListRequest = z.record(z.unknown()); +export const zDictationModelsListRequestUnstable = z.record(z.unknown()); export const zDictationLocalModelStatus = z.object({ id: z.string(), @@ -993,21 +993,21 @@ export const zDictationLocalModelStatus = z.object({ downloadInProgress: z.boolean() }); -export const zDictationModelsListResponse = z.object({ +export const zDictationModelsListResponseUnstable = z.object({ models: z.array(zDictationLocalModelStatus) }); /** * Kick off a background download of a local Whisper model. */ -export const zDictationModelDownloadRequest = z.object({ +export const zDictationModelDownloadRequestUnstable = z.object({ modelId: z.string() }); /** * Poll the progress of an in-flight download. */ -export const zDictationModelDownloadProgressRequest = z.object({ +export const zDictationModelDownloadProgressRequestUnstable = z.object({ modelId: z.string() }); @@ -1022,7 +1022,7 @@ export const zDictationDownloadProgress = z.object({ ]).optional() }); -export const zDictationModelDownloadProgressResponse = z.object({ +export const zDictationModelDownloadProgressResponseUnstable = z.object({ progress: z.union([ zDictationDownloadProgress, z.null() @@ -1032,21 +1032,21 @@ export const zDictationModelDownloadProgressResponse = z.object({ /** * Cancel an in-flight download. */ -export const zDictationModelCancelRequest = z.object({ +export const zDictationModelCancelRequestUnstable = z.object({ modelId: z.string() }); /** * Delete a downloaded local Whisper model from disk. */ -export const zDictationModelDeleteRequest = z.object({ +export const zDictationModelDeleteRequestUnstable = z.object({ modelId: z.string() }); /** * Persist the user's model selection for a given provider. */ -export const zDictationModelSelectRequest = z.object({ +export const zDictationModelSelectRequestUnstable = z.object({ provider: z.string(), modelId: z.string() }); @@ -1056,61 +1056,61 @@ export const zExtRequest = z.object({ method: z.string(), params: z.union([ z.union([ - zAddExtensionRequest, - zRemoveExtensionRequest, - zGetToolsRequest, - zGooseToolCallRequest, - zReadResourceRequest, - zUpdateWorkingDirRequest, + zAddExtensionRequestUnstable, + zRemoveExtensionRequestUnstable, + zGetToolsRequestUnstable, + zGooseToolCallRequestUnstable, + zReadResourceRequestUnstable, + zUpdateWorkingDirRequestUnstable, zDeleteSessionRequest, - zGetExtensionsRequest, - zAddConfigExtensionRequest, - zRemoveConfigExtensionRequest, - zToggleConfigExtensionRequest, - zGetSessionExtensionsRequest, - zListProvidersRequest, - zProviderCatalogListRequest, - zProviderSetupCatalogListRequest, - zProviderCatalogTemplateRequest, - zCustomProviderCreateRequest, - zCustomProviderReadRequest, - zCustomProviderUpdateRequest, - zCustomProviderDeleteRequest, - zRefreshProviderInventoryRequest, - zProviderConfigReadRequest, - zProviderConfigStatusRequest, - zProviderConfigSaveRequest, - zProviderConfigDeleteRequest, - zProviderConfigAuthenticateRequest, - zPreferencesReadRequest, - zPreferencesSaveRequest, - zPreferencesRemoveRequest, - zDefaultsReadRequest, - zDefaultsSaveRequest, - zOnboardingImportScanRequest, - zOnboardingImportApplyRequest, - zExportSessionRequest, - zImportSessionRequest, - zUpdateSessionProjectRequest, - zRenameSessionRequest, - zArchiveSessionRequest, - zUnarchiveSessionRequest, - zCreateSourceRequest, - zListSourcesRequest, - zUpdateSourceRequest, - zDeleteSourceRequest, - zExportSourceRequest, - zImportSourcesRequest, - zDictationTranscribeRequest, - zDictationConfigRequest, - zDictationSecretSaveRequest, - zDictationSecretDeleteRequest, - zDictationModelsListRequest, - zDictationModelDownloadRequest, - zDictationModelDownloadProgressRequest, - zDictationModelCancelRequest, - zDictationModelDeleteRequest, - zDictationModelSelectRequest + zGetExtensionsRequestUnstable, + zAddConfigExtensionRequestUnstable, + zRemoveConfigExtensionRequestUnstable, + zToggleConfigExtensionRequestUnstable, + zGetSessionExtensionsRequestUnstable, + zListProvidersRequestUnstable, + zProviderCatalogListRequestUnstable, + zProviderSetupCatalogListRequestUnstable, + zProviderCatalogTemplateRequestUnstable, + zCustomProviderCreateRequestUnstable, + zCustomProviderReadRequestUnstable, + zCustomProviderUpdateRequestUnstable, + zCustomProviderDeleteRequestUnstable, + zRefreshProviderInventoryRequestUnstable, + zProviderConfigReadRequestUnstable, + zProviderConfigStatusRequestUnstable, + zProviderConfigSaveRequestUnstable, + zProviderConfigDeleteRequestUnstable, + zProviderConfigAuthenticateRequestUnstable, + zPreferencesReadRequestUnstable, + zPreferencesSaveRequestUnstable, + zPreferencesRemoveRequestUnstable, + zDefaultsReadRequestUnstable, + zDefaultsSaveRequestUnstable, + zOnboardingImportScanRequestUnstable, + zOnboardingImportApplyRequestUnstable, + zExportSessionRequestUnstable, + zImportSessionRequestUnstable, + zUpdateSessionProjectRequestUnstable, + zRenameSessionRequestUnstable, + zArchiveSessionRequestUnstable, + zUnarchiveSessionRequestUnstable, + zCreateSourceRequestUnstable, + zListSourcesRequestUnstable, + zUpdateSourceRequestUnstable, + zDeleteSourceRequestUnstable, + zExportSourceRequestUnstable, + zImportSourcesRequestUnstable, + zDictationTranscribeRequestUnstable, + zDictationConfigRequestUnstable, + zDictationSecretSaveRequestUnstable, + zDictationSecretDeleteRequestUnstable, + zDictationModelsListRequestUnstable, + zDictationModelDownloadRequestUnstable, + zDictationModelDownloadProgressRequestUnstable, + zDictationModelCancelRequestUnstable, + zDictationModelDeleteRequestUnstable, + zDictationModelSelectRequestUnstable ]), z.union([ z.record(z.unknown()), @@ -1125,38 +1125,38 @@ export const zExtResponse = z.union([ result: z.union([ z.union([ zEmptyResponse, - zGetToolsResponse, - zGooseToolCallResponse, - zReadResourceResponse, - zGetExtensionsResponse, - zGetSessionExtensionsResponse, - zListProvidersResponse, - zProviderCatalogListResponse, - zProviderSetupCatalogListResponse, - zProviderCatalogTemplateResponse, - zCustomProviderCreateResponse, - zCustomProviderReadResponse, - zCustomProviderUpdateResponse, - zCustomProviderDeleteResponse, - zRefreshProviderInventoryResponse, - zProviderConfigReadResponse, - zProviderConfigStatusResponse, - zProviderConfigChangeResponse, - zPreferencesReadResponse, - zDefaultsReadResponse, - zOnboardingImportScanResponse, - zOnboardingImportApplyResponse, - zExportSessionResponse, - zImportSessionResponse, - zCreateSourceResponse, - zListSourcesResponse, - zUpdateSourceResponse, - zExportSourceResponse, - zImportSourcesResponse, - zDictationTranscribeResponse, - zDictationConfigResponse, - zDictationModelsListResponse, - zDictationModelDownloadProgressResponse + zGetToolsResponseUnstable, + zGooseToolCallResponseUnstable, + zReadResourceResponseUnstable, + zGetExtensionsResponseUnstable, + zGetSessionExtensionsResponseUnstable, + zListProvidersResponseUnstable, + zProviderCatalogListResponseUnstable, + zProviderSetupCatalogListResponseUnstable, + zProviderCatalogTemplateResponseUnstable, + zCustomProviderCreateResponseUnstable, + zCustomProviderReadResponseUnstable, + zCustomProviderUpdateResponseUnstable, + zCustomProviderDeleteResponseUnstable, + zRefreshProviderInventoryResponseUnstable, + zProviderConfigReadResponseUnstable, + zProviderConfigStatusResponseUnstable, + zProviderConfigChangeResponseUnstable, + zPreferencesReadResponseUnstable, + zDefaultsReadResponseUnstable, + zOnboardingImportScanResponseUnstable, + zOnboardingImportApplyResponseUnstable, + zExportSessionResponseUnstable, + zImportSessionResponseUnstable, + zCreateSourceResponseUnstable, + zListSourcesResponseUnstable, + zUpdateSourceResponseUnstable, + zExportSourceResponseUnstable, + zImportSourcesResponseUnstable, + zDictationTranscribeResponseUnstable, + zDictationConfigResponseUnstable, + zDictationModelsListResponseUnstable, + zDictationModelDownloadProgressResponseUnstable ]), z.unknown() ]).optional() From 312fe124763600e25a1b9e82c0873e5db3d1d8fd Mon Sep 17 00:00:00 2001 From: Jack Amadeo Date: Wed, 20 May 2026 11:15:09 -0400 Subject: [PATCH 5/8] more references --- .../tests/acp_custom_provider_methods_test.rs | 45 +++++++++------- .../goose/tests/acp_custom_requests_test.rs | 52 +++++++++++-------- .../acp_secret_cache_invalidation_test.rs | 12 ++--- ui/goose2/src/features/chat/ui/McpAppView.tsx | 2 +- .../chat/ui/__tests__/McpAppView.test.tsx | 13 +++-- .../src/features/projects/api/projects.ts | 12 ++--- ui/goose2/src/shared/api/acp.ts | 2 +- ui/goose2/src/shared/api/acpApi.ts | 13 +++-- ui/goose2/tests/e2e/fixtures/tauri-mock.ts | 30 +++++------ 9 files changed, 100 insertions(+), 81 deletions(-) diff --git a/crates/goose/tests/acp_custom_provider_methods_test.rs b/crates/goose/tests/acp_custom_provider_methods_test.rs index 2462e7cfb643..167c420bfd22 100644 --- a/crates/goose/tests/acp_custom_provider_methods_test.rs +++ b/crates/goose/tests/acp_custom_provider_methods_test.rs @@ -56,7 +56,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let catalog = send_custom( conn.cx(), - "_goose/v1/providers/catalog/list", + "_goose/unstable/providers/catalog/list", serde_json::json!({ "format": "openai" }), ) .await @@ -74,7 +74,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let setup_catalog = send_custom( conn.cx(), - "_goose/v1/providers/setup/catalog/list", + "_goose/unstable/providers/setup/catalog/list", serde_json::json!({}), ) .await @@ -137,7 +137,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let template = send_custom( conn.cx(), - "_goose/v1/providers/catalog/template", + "_goose/unstable/providers/catalog/template", serde_json::json!({ "providerId": "zai" }), ) .await @@ -156,7 +156,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let configured_status = send_custom( conn.cx(), - "_goose/v1/providers/config/status", + "_goose/unstable/providers/config/status", serde_json::json!({ "providerIds": ["xai"] }), ) .await @@ -172,7 +172,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let configured_read = send_custom( conn.cx(), - "_goose/v1/providers/config/read", + "_goose/unstable/providers/config/read", serde_json::json!({ "providerId": "xai" }), ) .await @@ -194,7 +194,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let non_oauth_auth = send_custom( conn.cx(), - "_goose/v1/providers/config/authenticate", + "_goose/unstable/providers/config/authenticate", serde_json::json!({ "providerId": "xai" }), ) .await; @@ -210,7 +210,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let created = send_custom( conn.cx(), - "_goose/v1/providers/custom/create", + "_goose/unstable/providers/custom/create", serde_json::json!({ "engine": "openai_compatible", "displayName": "Stark ACP Provider", @@ -292,7 +292,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let read = send_custom( conn.cx(), - "_goose/v1/providers/custom/read", + "_goose/unstable/providers/custom/read", serde_json::json!({ "providerId": provider_id }), ) .await @@ -321,7 +321,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let inventory = send_custom( conn.cx(), - "_goose/v1/providers/list", + "_goose/unstable/providers/list", serde_json::json!({ "providerIds": [provider_id] }), ) .await @@ -337,7 +337,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let updated = send_custom( conn.cx(), - "_goose/v1/providers/custom/update", + "_goose/unstable/providers/custom/update", serde_json::json!({ "providerId": provider_id, "engine": "openai", @@ -392,7 +392,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let auth_disabled = send_custom( conn.cx(), - "_goose/v1/providers/custom/update", + "_goose/unstable/providers/custom/update", serde_json::json!({ "providerId": provider_id, "engine": "openai_compatible", @@ -432,7 +432,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let auth_reenabled_without_key = send_custom( conn.cx(), - "_goose/v1/providers/custom/update", + "_goose/unstable/providers/custom/update", serde_json::json!({ "providerId": provider_id, "engine": "openai_compatible", @@ -464,7 +464,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let deleted = send_custom( conn.cx(), - "_goose/v1/providers/custom/delete", + "_goose/unstable/providers/custom/delete", serde_json::json!({ "providerId": provider_id }), ) .await @@ -494,7 +494,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let deleted_status = send_custom( conn.cx(), - "_goose/v1/providers/config/status", + "_goose/unstable/providers/config/status", serde_json::json!({ "providerIds": [provider_id] }), ) .await @@ -518,7 +518,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { ] { let read = send_custom( conn.cx(), - "_goose/v1/providers/custom/read", + "_goose/unstable/providers/custom/read", serde_json::json!({ "providerId": invalid_id }), ) .await; @@ -570,7 +570,12 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { payload_obj.insert(key.clone(), value.clone()); } - let result = send_custom(conn.cx(), "_goose/v1/providers/custom/create", payload).await; + let result = send_custom( + conn.cx(), + "_goose/unstable/providers/custom/create", + payload, + ) + .await; assert!(result.is_err(), "{name} should be rejected"); } @@ -580,7 +585,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let shared = send_custom( conn.cx(), - "_goose/v1/providers/custom/create", + "_goose/unstable/providers/custom/create", serde_json::json!({ "engine": "openai_compatible", "displayName": "Shared Secret Test", @@ -613,7 +618,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { send_custom( conn.cx(), - "_goose/v1/providers/custom/update", + "_goose/unstable/providers/custom/update", serde_json::json!({ "providerId": shared_id, "engine": "openai_compatible", @@ -635,7 +640,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { let shared_delete = send_custom( conn.cx(), - "_goose/v1/providers/custom/create", + "_goose/unstable/providers/custom/create", serde_json::json!({ "engine": "openai_compatible", "displayName": "Shared Secret Delete", @@ -668,7 +673,7 @@ fn acp_catalog_and_custom_provider_methods_use_core_provider_store() { send_custom( conn.cx(), - "_goose/v1/providers/custom/delete", + "_goose/unstable/providers/custom/delete", serde_json::json!({ "providerId": shared_delete_id }), ) .await diff --git a/crates/goose/tests/acp_custom_requests_test.rs b/crates/goose/tests/acp_custom_requests_test.rs index b91b229558ac..03e25ebc29c4 100644 --- a/crates/goose/tests/acp_custom_requests_test.rs +++ b/crates/goose/tests/acp_custom_requests_test.rs @@ -79,7 +79,7 @@ fn test_custom_get_tools() { let result = send_custom( conn.cx(), - "_goose/v1/tools/list", + "_goose/unstable/tools/list", serde_json::json!({ "sessionId": session_id }), ) .await; @@ -99,7 +99,7 @@ fn test_custom_get_extensions() { let result = send_custom( conn.cx(), - "_goose/v1/config/extensions/list", + "_goose/unstable/config/extensions/list", serde_json::json!({}), ) .await; @@ -225,7 +225,7 @@ fn test_custom_list_builtin_skill_sources() { let response = send_custom( conn.cx(), - "_goose/v1/sources/list", + "_goose/unstable/sources/list", serde_json::json!({ "type": "builtinSkill" }), ) .await @@ -257,9 +257,13 @@ fn test_custom_provider_inventory_includes_metadata() { let openai = OpenAiFixture::new(vec![], Arc::new(EnforceSessionId::default())).await; let conn = AcpServerConnection::new(TestConnectionConfig::default(), openai).await; - let response = send_custom(conn.cx(), "_goose/v1/providers/list", serde_json::json!({})) - .await - .expect("provider inventory should succeed"); + let response = send_custom( + conn.cx(), + "_goose/unstable/providers/list", + serde_json::json!({}), + ) + .await + .expect("provider inventory should succeed"); let providers = response .get("entries") .and_then(|value| value.as_array()) @@ -298,7 +302,7 @@ fn test_custom_preferences_read_save_remove() { let response = send_custom( conn.cx(), - "_goose/v1/preferences/read", + "_goose/unstable/preferences/read", serde_json::json!({ "keys": [ "autoCompactThreshold", @@ -320,7 +324,7 @@ fn test_custom_preferences_read_save_remove() { send_custom( conn.cx(), - "_goose/v1/preferences/save", + "_goose/unstable/preferences/save", serde_json::json!({ "values": [ { "key": "voiceDictationProvider", "value": "__disabled__" }, @@ -333,7 +337,7 @@ fn test_custom_preferences_read_save_remove() { send_custom( conn.cx(), - "_goose/v1/preferences/remove", + "_goose/unstable/preferences/remove", serde_json::json!({ "keys": ["voiceDictationProvider"], }), @@ -343,7 +347,7 @@ fn test_custom_preferences_read_save_remove() { let response = send_custom( conn.cx(), - "_goose/v1/preferences/read", + "_goose/unstable/preferences/read", serde_json::json!({ "keys": ["voiceDictationProvider", "voiceDictationPreferredMic"], }), @@ -385,13 +389,13 @@ fn test_custom_preferences_save_rejects_invalid_values() { ]; for payload in invalid_payloads { - let result = send_custom(conn.cx(), "_goose/v1/preferences/save", payload).await; + let result = send_custom(conn.cx(), "_goose/unstable/preferences/save", payload).await; assert!(result.is_err(), "expected invalid params error"); } let result = send_custom( conn.cx(), - "_goose/v1/preferences/save", + "_goose/unstable/preferences/save", serde_json::json!({ "values": [ { "key": "voiceDictationPreferredMic", "value": "mic-1" }, @@ -404,7 +408,7 @@ fn test_custom_preferences_save_rejects_invalid_values() { let response = send_custom( conn.cx(), - "_goose/v1/preferences/read", + "_goose/unstable/preferences/read", serde_json::json!({ "keys": ["voiceDictationPreferredMic"], }), @@ -436,9 +440,13 @@ fn test_custom_defaults_read() { }; let conn = AcpServerConnection::new(config, openai).await; - let response = send_custom(conn.cx(), "_goose/v1/defaults/read", serde_json::json!({})) - .await - .expect("defaults read should succeed"); + let response = send_custom( + conn.cx(), + "_goose/unstable/defaults/read", + serde_json::json!({}), + ) + .await + .expect("defaults read should succeed"); assert_eq!( response, serde_json::json!({ @@ -476,7 +484,7 @@ fn test_custom_dictation_secret_save_delete() { send_custom( conn.cx(), - "_goose/v1/dictation/secret/save", + "_goose/unstable/dictation/secret/save", serde_json::json!({ "provider": "groq", "value": "groq-key", @@ -487,7 +495,7 @@ fn test_custom_dictation_secret_save_delete() { let config = send_custom( conn.cx(), - "_goose/v1/dictation/config", + "_goose/unstable/dictation/config", serde_json::json!({}), ) .await @@ -501,7 +509,7 @@ fn test_custom_dictation_secret_save_delete() { let provider_config_result = send_custom( conn.cx(), - "_goose/v1/dictation/secret/save", + "_goose/unstable/dictation/secret/save", serde_json::json!({ "provider": "openai", "value": "openai-key", @@ -515,7 +523,7 @@ fn test_custom_dictation_secret_save_delete() { let unknown_result = send_custom( conn.cx(), - "_goose/v1/dictation/secret/save", + "_goose/unstable/dictation/secret/save", serde_json::json!({ "provider": "unknown", "value": "key", @@ -529,7 +537,7 @@ fn test_custom_dictation_secret_save_delete() { send_custom( conn.cx(), - "_goose/v1/dictation/secret/delete", + "_goose/unstable/dictation/secret/delete", serde_json::json!({ "provider": "groq", }), @@ -539,7 +547,7 @@ fn test_custom_dictation_secret_save_delete() { let config = send_custom( conn.cx(), - "_goose/v1/dictation/config", + "_goose/unstable/dictation/config", serde_json::json!({}), ) .await diff --git a/crates/goose/tests/acp_secret_cache_invalidation_test.rs b/crates/goose/tests/acp_secret_cache_invalidation_test.rs index f15afcd2a423..ef6a34df3905 100644 --- a/crates/goose/tests/acp_secret_cache_invalidation_test.rs +++ b/crates/goose/tests/acp_secret_cache_invalidation_test.rs @@ -113,7 +113,7 @@ fn acp_secret_mutations_and_inventory_refresh_invalidate_global_secret_cache() { write_secrets(&config_dir, "GROQ_API_KEY: fresh-key\n"); send_custom( conn.cx(), - "_goose/v1/dictation/secret/save", + "_goose/unstable/dictation/secret/save", serde_json::json!({ "provider": "groq", "value": "fresh-key", @@ -133,7 +133,7 @@ fn acp_secret_mutations_and_inventory_refresh_invalidate_global_secret_cache() { write_secrets(&config_dir, "{}\n"); send_custom( conn.cx(), - "_goose/v1/dictation/secret/delete", + "_goose/unstable/dictation/secret/delete", serde_json::json!({ "provider": "groq", }), @@ -151,7 +151,7 @@ fn acp_secret_mutations_and_inventory_refresh_invalidate_global_secret_cache() { let save_provider_config = send_custom( conn.cx(), - "_goose/v1/providers/config/save", + "_goose/unstable/providers/config/save", serde_json::json!({ "providerId": "xai", "fields": [ @@ -199,7 +199,7 @@ fn acp_secret_mutations_and_inventory_refresh_invalidate_global_secret_cache() { let read_provider_config = send_custom( conn.cx(), - "_goose/v1/providers/config/read", + "_goose/unstable/providers/config/read", serde_json::json!({ "providerId": "xai", }), @@ -223,7 +223,7 @@ fn acp_secret_mutations_and_inventory_refresh_invalidate_global_secret_cache() { let delete_provider_config = send_custom( conn.cx(), - "_goose/v1/providers/config/delete", + "_goose/unstable/providers/config/delete", serde_json::json!({ "providerId": "xai", }), @@ -255,7 +255,7 @@ fn acp_secret_mutations_and_inventory_refresh_invalidate_global_secret_cache() { let refresh = send_custom( conn.cx(), - "_goose/v1/providers/inventory/refresh", + "_goose/unstable/providers/inventory/refresh", serde_json::json!({ "providerIds": ["anthropic"], }), diff --git a/ui/goose2/src/features/chat/ui/McpAppView.tsx b/ui/goose2/src/features/chat/ui/McpAppView.tsx index c4c7dead01b9..78771fa9863f 100644 --- a/ui/goose2/src/features/chat/ui/McpAppView.tsx +++ b/ui/goose2/src/features/chat/ui/McpAppView.tsx @@ -346,7 +346,7 @@ export function McpAppView({ setActiveToolInput(args ?? {}); const client = await getClient(); - const response = (await client.extMethod("_goose/v1/tools/call", { + const response = (await client.extMethod("_goose/unstable/tools/call", { sessionId: payload.sessionId, name: `${payload.tool.extensionName}__${name}`, arguments: args ?? {}, diff --git a/ui/goose2/src/features/chat/ui/__tests__/McpAppView.test.tsx b/ui/goose2/src/features/chat/ui/__tests__/McpAppView.test.tsx index e90d404423d3..59409a0cbd2b 100644 --- a/ui/goose2/src/features/chat/ui/__tests__/McpAppView.test.tsx +++ b/ui/goose2/src/features/chat/ui/__tests__/McpAppView.test.tsx @@ -185,11 +185,14 @@ describe("McpAppView nested tool calls", () => { fireEvent.click(screen.getByTestId("mock-app-renderer")); await waitFor(() => { - expect(mocks.extMethod).toHaveBeenCalledWith("_goose/v1/tools/call", { - sessionId: "local-session", - name: "mcpappbench_local___get-server-time", - arguments: { timezone: "America/New_York" }, - }); + expect(mocks.extMethod).toHaveBeenCalledWith( + "_goose/unstable/tools/call", + { + sessionId: "local-session", + name: "mcpappbench_local___get-server-time", + arguments: { timezone: "America/New_York" }, + }, + ); }); await waitFor(() => { diff --git a/ui/goose2/src/features/projects/api/projects.ts b/ui/goose2/src/features/projects/api/projects.ts index cb6d24bda39b..d98605f5cf86 100644 --- a/ui/goose2/src/features/projects/api/projects.ts +++ b/ui/goose2/src/features/projects/api/projects.ts @@ -18,7 +18,7 @@ export interface ProjectInfo { archivedAt: string | null; } -// Shape returned by _goose/v1/sources/*. Narrowed to project-type sources here. +// Shape returned by _goose/unstable/sources/*. Narrowed to project-type sources here. interface SourceEntry { type: "project"; name: string; @@ -111,7 +111,7 @@ export interface ProjectIconData { export async function listProjects(): Promise { const client = await getClient(); - const raw = await client.extMethod("_goose/v1/sources/list", { + const raw = await client.extMethod("_goose/unstable/sources/list", { type: "project", }); const sources = (raw.sources ?? []) as SourceEntry[]; @@ -145,7 +145,7 @@ export async function createProject( const client = await getClient(); const existing = await listAllProjects(); const id = uniqueProjectSlug(name, new Set(existing.map((p) => p.id))); - const raw = await client.extMethod("_goose/v1/sources/create", { + const raw = await client.extMethod("_goose/unstable/sources/create", { type: "project", name: id, description, @@ -172,7 +172,7 @@ export async function updateProject( ): Promise { const merged = { ...existing, ...updates }; const client = await getClient(); - const raw = await client.extMethod("_goose/v1/sources/update", { + const raw = await client.extMethod("_goose/unstable/sources/update", { type: "project", path: existing.path, name: existing.id, @@ -201,7 +201,7 @@ export async function deleteProject( typeof idOrProject === "string" ? (await getProject(idOrProject)).path : idOrProject.path; - await client.extMethod("_goose/v1/sources/delete", { + await client.extMethod("_goose/unstable/sources/delete", { type: "project", path, }); @@ -217,7 +217,7 @@ export async function getProject(id: string): Promise { /** List both archived and active projects. */ async function listAllProjects(): Promise { const client = await getClient(); - const raw = await client.extMethod("_goose/v1/sources/list", { + const raw = await client.extMethod("_goose/unstable/sources/list", { type: "project", }); const sources = (raw.sources ?? []) as SourceEntry[]; diff --git a/ui/goose2/src/shared/api/acp.ts b/ui/goose2/src/shared/api/acp.ts index b83a1838c457..95bb52cc3c22 100644 --- a/ui/goose2/src/shared/api/acp.ts +++ b/ui/goose2/src/shared/api/acp.ts @@ -38,7 +38,7 @@ export async function discoverAcpProviders(): Promise { /** * Derive ACP providers from already-fetched inventory entries, - * avoiding a duplicate `_goose/v1/providers/list` RPC. + * avoiding a duplicate `_goose/unstable/providers/list` RPC. */ export function discoverAcpProvidersFromEntries( entries: Parameters[0], diff --git a/ui/goose2/src/shared/api/acpApi.ts b/ui/goose2/src/shared/api/acpApi.ts index c5ae2b4282be..059227f17fa0 100644 --- a/ui/goose2/src/shared/api/acpApi.ts +++ b/ui/goose2/src/shared/api/acpApi.ts @@ -160,7 +160,7 @@ export async function updateWorkingDir( workingDir: string, ): Promise { const client = await getClient(); - await client.extMethod("_goose/v1/session/working-dir/update", { + await client.extMethod("_goose/unstable/session/working-dir/update", { sessionId, workingDir, }); @@ -171,7 +171,7 @@ export async function updateSessionProject( projectId: string | null, ): Promise { const client = await getClient(); - await client.extMethod("_goose/v1/session/project/update", { + await client.extMethod("_goose/unstable/session/project/update", { sessionId, projectId, }); @@ -179,12 +179,12 @@ export async function updateSessionProject( export async function archiveSession(sessionId: string): Promise { const client = await getClient(); - await client.extMethod("_goose/v1/session/archive", { sessionId }); + await client.extMethod("_goose/unstable/session/archive", { sessionId }); } export async function unarchiveSession(sessionId: string): Promise { const client = await getClient(); - await client.extMethod("_goose/v1/session/unarchive", { sessionId }); + await client.extMethod("_goose/unstable/session/unarchive", { sessionId }); } export async function renameSession( @@ -192,7 +192,10 @@ export async function renameSession( title: string, ): Promise { const client = await getClient(); - await client.extMethod("_goose/v1/session/rename", { sessionId, title }); + await client.extMethod("_goose/unstable/session/rename", { + sessionId, + title, + }); } export async function cancelSession(sessionId: string): Promise { diff --git a/ui/goose2/tests/e2e/fixtures/tauri-mock.ts b/ui/goose2/tests/e2e/fixtures/tauri-mock.ts index 529c2d7d4e79..4788133e4d64 100644 --- a/ui/goose2/tests/e2e/fixtures/tauri-mock.ts +++ b/ui/goose2/tests/e2e/fixtures/tauri-mock.ts @@ -4,7 +4,7 @@ * without the real Tauri backend. * * Also installs a `window.WebSocket` stub for the ACP connection so features - * like skills (which use `client.extMethod("_goose/v1/sources/...")`) can run + * like skills (which use `client.extMethod("_goose/unstable/sources/...")`) can run * without a live goose-acp server. */ @@ -282,21 +282,21 @@ export function buildInitScript(options?: { } return jsonRpcResult(message.id, { stopReason: "end_turn" }); } - case "_goose/v1/providers/list": + case "_goose/unstable/providers/list": return jsonRpcResult(message.id, { entries: PROVIDER_INVENTORY }); - case "_goose/v1/providers/setup/catalog/list": + case "_goose/unstable/providers/setup/catalog/list": return jsonRpcResult(message.id, { providers: PROVIDER_SETUP_CATALOG }); - case "_goose/v1/providers/inventory/refresh": + case "_goose/unstable/providers/inventory/refresh": return jsonRpcResult(message.id, { started: [], skipped: [] }); - case "_goose/v1/defaults/read": - case "_goose/v1/defaults/save": + case "_goose/unstable/defaults/read": + case "_goose/unstable/defaults/save": return jsonRpcResult(message.id, { providerId: message.params?.providerId ?? "openai", modelId: message.params?.modelId ?? "gpt-4.1", }); - case "_goose/v1/onboarding/import/scan": + case "_goose/unstable/onboarding/import/scan": return jsonRpcResult(message.id, { candidates: [] }); - case "_goose/v1/onboarding/import/apply": + case "_goose/unstable/onboarding/import/apply": return jsonRpcResult(message.id, { imported: { providers: 0, @@ -316,10 +316,10 @@ export function buildInitScript(options?: { }, warnings: [], }); - case "_goose/v1/session/working-dir/update": + case "_goose/unstable/session/working-dir/update": case "goose/working_dir/update": return jsonRpcResult(message.id, {}); - case "_goose/v1/sources/list": { + case "_goose/unstable/sources/list": { const sourceType = message.params?.type; if (sourceType === "agent") { return jsonRpcResult(message.id, { sources: PERSONAS.map(personaToSourceEntry) }); @@ -329,7 +329,7 @@ export function buildInitScript(options?: { } return jsonRpcResult(message.id, { sources: SKILLS.map(skillToSourceEntry) }); } - case "_goose/v1/sources/create": { + case "_goose/unstable/sources/create": { const sourceType = message.params?.type ?? "skill"; const name = message.params?.name ?? (sourceType === "agent" ? "New Agent" : "new-skill"); return jsonRpcResult(message.id, { @@ -346,7 +346,7 @@ export function buildInitScript(options?: { }, }); } - case "_goose/v1/sources/update": + case "_goose/unstable/sources/update": case "goose/sources/update": { const sourceType = message.params?.type ?? "skill"; const path = @@ -376,10 +376,10 @@ export function buildInitScript(options?: { }, }); } - case "_goose/v1/sources/delete": + case "_goose/unstable/sources/delete": case "goose/sources/delete": return jsonRpcResult(message.id, {}); - case "_goose/v1/sources/export": + case "_goose/unstable/sources/export": case "goose/sources/export": { const path = message.params?.path ?? "/mock/.agents/skills/skill"; const name = String(path).split("/").filter(Boolean).at(-1) ?? "skill"; @@ -388,7 +388,7 @@ export function buildInitScript(options?: { filename: name + ".skill.json", }); } - case "_goose/v1/sources/import": + case "_goose/unstable/sources/import": return jsonRpcResult(message.id, { sources: SKILLS.map(skillToSourceEntry) }); default: return jsonRpcResult(message.id, {}); From 19292064dbb5eff664c75e77d2aba43a1146d873 Mon Sep 17 00:00:00 2001 From: Jack Amadeo Date: Wed, 20 May 2026 11:37:37 -0400 Subject: [PATCH 6/8] Fix the generators --- ui/sdk/generate-schema.ts | 11 +- ui/sdk/src/generated/index.ts | 2 +- ui/sdk/src/generated/types.gen.ts | 186 ++++++++-------- ui/sdk/src/generated/zod.gen.ts | 354 +++++++++++++++--------------- 4 files changed, 281 insertions(+), 272 deletions(-) diff --git a/ui/sdk/generate-schema.ts b/ui/sdk/generate-schema.ts index 11c63974411f..193b4e3e3676 100644 --- a/ui/sdk/generate-schema.ts +++ b/ui/sdk/generate-schema.ts @@ -44,7 +44,16 @@ export default async function main() { output: { path: OUTPUT_DIR, }, - plugins: ["zod", "@hey-api/typescript"], + plugins: [ + { + case: "preserve", + name: "zod", + }, + { + case: "preserve", + name: "@hey-api/typescript", + }, + ], }); await postProcessTypes(); diff --git a/ui/sdk/src/generated/index.ts b/ui/sdk/src/generated/index.ts index df782eee63f3..701b2dd98bc5 100644 --- a/ui/sdk/src/generated/index.ts +++ b/ui/sdk/src/generated/index.ts @@ -1,6 +1,6 @@ // This file is auto-generated by @hey-api/openapi-ts -export type { AddConfigExtensionRequestUnstable, AddExtensionRequestUnstable, ArchiveSessionRequestUnstable, CreateSourceRequestUnstable, CreateSourceResponseUnstable, CustomProviderConfigDto, CustomProviderCreateRequestUnstable, CustomProviderCreateResponseUnstable, CustomProviderDeleteRequestUnstable, CustomProviderDeleteResponseUnstable, CustomProviderReadRequestUnstable, CustomProviderReadResponseUnstable, CustomProviderUpdateRequestUnstable, CustomProviderUpdateResponseUnstable, DefaultsReadRequestUnstable, DefaultsReadResponseUnstable, DefaultsSaveRequestUnstable, DeleteSessionRequest, DeleteSourceRequestUnstable, DictationConfigRequestUnstable, DictationConfigResponseUnstable, DictationDownloadProgress, DictationLocalModelStatus, DictationModelCancelRequestUnstable, DictationModelDeleteRequestUnstable, DictationModelDownloadProgressRequestUnstable, DictationModelDownloadProgressResponseUnstable, DictationModelDownloadRequestUnstable, DictationModelOption, DictationModelSelectRequestUnstable, DictationModelsListRequestUnstable, DictationModelsListResponseUnstable, DictationProviderStatusEntry, DictationSecretDeleteRequestUnstable, DictationSecretSaveRequestUnstable, DictationTranscribeRequestUnstable, DictationTranscribeResponseUnstable, EmptyResponse, ExportSessionRequestUnstable, ExportSessionResponseUnstable, ExportSourceRequestUnstable, ExportSourceResponseUnstable, ExtRequest, ExtResponse, GetExtensionsRequestUnstable, GetExtensionsResponseUnstable, GetSessionExtensionsRequestUnstable, GetSessionExtensionsResponseUnstable, GetToolsRequestUnstable, GetToolsResponseUnstable, GooseToolCallRequestUnstable, GooseToolCallResponseUnstable, ImportSessionRequestUnstable, ImportSessionResponseUnstable, ImportSourcesRequestUnstable, ImportSourcesResponseUnstable, ListProvidersRequestUnstable, ListProvidersResponseUnstable, ListSourcesRequestUnstable, ListSourcesResponseUnstable, OnboardingImportApplyRequestUnstable, OnboardingImportApplyResponseUnstable, OnboardingImportCandidate, OnboardingImportCounts, OnboardingImportScanRequestUnstable, OnboardingImportScanResponseUnstable, OnboardingImportSourceKind, PreferenceKey, PreferencesReadRequestUnstable, PreferencesReadResponseUnstable, PreferencesRemoveRequestUnstable, PreferencesSaveRequestUnstable, PreferenceValue, ProviderCatalogListRequestUnstable, ProviderCatalogListResponseUnstable, ProviderCatalogTemplateRequestUnstable, ProviderCatalogTemplateResponseUnstable, ProviderConfigAuthenticateRequestUnstable, ProviderConfigChangeResponseUnstable, ProviderConfigDeleteRequestUnstable, ProviderConfigFieldUpdate, ProviderConfigFieldValueDto, ProviderConfigKey, ProviderConfigReadRequestUnstable, ProviderConfigReadResponseUnstable, ProviderConfigSaveRequestUnstable, ProviderConfigStatusDto, ProviderConfigStatusRequestUnstable, ProviderConfigStatusResponseUnstable, ProviderInventoryEntryDto, ProviderInventoryModelDto, ProviderSetupCatalogEntryDto, ProviderSetupCatalogListRequestUnstable, ProviderSetupCatalogListResponseUnstable, ProviderSetupCategoryDto, ProviderSetupFieldDto, ProviderSetupGroupDto, ProviderSetupMethodDto, ProviderTemplateCapabilitiesDto, ProviderTemplateCatalogEntryDto, ProviderTemplateDto, ProviderTemplateModelDto, ReadResourceRequestUnstable, ReadResourceResponseUnstable, RefreshProviderInventoryRequestUnstable, RefreshProviderInventoryResponseUnstable, RefreshProviderInventorySkipDto, RefreshProviderInventorySkipReasonDto, RemoveConfigExtensionRequestUnstable, RemoveExtensionRequestUnstable, RenameSessionRequestUnstable, SourceEntry, SourceScope, SourceType, ToggleConfigExtensionRequestUnstable, UnarchiveSessionRequestUnstable, UpdateSessionProjectRequestUnstable, UpdateSourceRequestUnstable, UpdateSourceResponseUnstable, UpdateWorkingDirRequestUnstable } from './types.gen.js'; +export type { AddConfigExtensionRequest_unstable, AddExtensionRequest_unstable, ArchiveSessionRequest_unstable, CreateSourceRequest_unstable, CreateSourceResponse_unstable, CustomProviderConfigDto, CustomProviderCreateRequest_unstable, CustomProviderCreateResponse_unstable, CustomProviderDeleteRequest_unstable, CustomProviderDeleteResponse_unstable, CustomProviderReadRequest_unstable, CustomProviderReadResponse_unstable, CustomProviderUpdateRequest_unstable, CustomProviderUpdateResponse_unstable, DefaultsReadRequest_unstable, DefaultsReadResponse_unstable, DefaultsSaveRequest_unstable, DeleteSessionRequest, DeleteSourceRequest_unstable, DictationConfigRequest_unstable, DictationConfigResponse_unstable, DictationDownloadProgress, DictationLocalModelStatus, DictationModelCancelRequest_unstable, DictationModelDeleteRequest_unstable, DictationModelDownloadProgressRequest_unstable, DictationModelDownloadProgressResponse_unstable, DictationModelDownloadRequest_unstable, DictationModelOption, DictationModelSelectRequest_unstable, DictationModelsListRequest_unstable, DictationModelsListResponse_unstable, DictationProviderStatusEntry, DictationSecretDeleteRequest_unstable, DictationSecretSaveRequest_unstable, DictationTranscribeRequest_unstable, DictationTranscribeResponse_unstable, EmptyResponse, ExportSessionRequest_unstable, ExportSessionResponse_unstable, ExportSourceRequest_unstable, ExportSourceResponse_unstable, ExtRequest, ExtResponse, GetExtensionsRequest_unstable, GetExtensionsResponse_unstable, GetSessionExtensionsRequest_unstable, GetSessionExtensionsResponse_unstable, GetToolsRequest_unstable, GetToolsResponse_unstable, GooseToolCallRequest_unstable, GooseToolCallResponse_unstable, ImportSessionRequest_unstable, ImportSessionResponse_unstable, ImportSourcesRequest_unstable, ImportSourcesResponse_unstable, ListProvidersRequest_unstable, ListProvidersResponse_unstable, ListSourcesRequest_unstable, ListSourcesResponse_unstable, OnboardingImportApplyRequest_unstable, OnboardingImportApplyResponse_unstable, OnboardingImportCandidate, OnboardingImportCounts, OnboardingImportScanRequest_unstable, OnboardingImportScanResponse_unstable, OnboardingImportSourceKind, PreferenceKey, PreferencesReadRequest_unstable, PreferencesReadResponse_unstable, PreferencesRemoveRequest_unstable, PreferencesSaveRequest_unstable, PreferenceValue, ProviderCatalogListRequest_unstable, ProviderCatalogListResponse_unstable, ProviderCatalogTemplateRequest_unstable, ProviderCatalogTemplateResponse_unstable, ProviderConfigAuthenticateRequest_unstable, ProviderConfigChangeResponse_unstable, ProviderConfigDeleteRequest_unstable, ProviderConfigFieldUpdate, ProviderConfigFieldValueDto, ProviderConfigKey, ProviderConfigReadRequest_unstable, ProviderConfigReadResponse_unstable, ProviderConfigSaveRequest_unstable, ProviderConfigStatusDto, ProviderConfigStatusRequest_unstable, ProviderConfigStatusResponse_unstable, ProviderInventoryEntryDto, ProviderInventoryModelDto, ProviderSetupCatalogEntryDto, ProviderSetupCatalogListRequest_unstable, ProviderSetupCatalogListResponse_unstable, ProviderSetupCategoryDto, ProviderSetupFieldDto, ProviderSetupGroupDto, ProviderSetupMethodDto, ProviderTemplateCapabilitiesDto, ProviderTemplateCatalogEntryDto, ProviderTemplateDto, ProviderTemplateModelDto, ReadResourceRequest_unstable, ReadResourceResponse_unstable, RefreshProviderInventoryRequest_unstable, RefreshProviderInventoryResponse_unstable, RefreshProviderInventorySkipDto, RefreshProviderInventorySkipReasonDto, RemoveConfigExtensionRequest_unstable, RemoveExtensionRequest_unstable, RenameSessionRequest_unstable, SourceEntry, SourceScope, SourceType, ToggleConfigExtensionRequest_unstable, UnarchiveSessionRequest_unstable, UpdateSessionProjectRequest_unstable, UpdateSourceRequest_unstable, UpdateSourceResponse_unstable, UpdateWorkingDirRequest_unstable } from './types.gen.js'; export const GOOSE_EXT_METHODS = [ { diff --git a/ui/sdk/src/generated/types.gen.ts b/ui/sdk/src/generated/types.gen.ts index b0487cc12acf..e75ad7919bbb 100644 --- a/ui/sdk/src/generated/types.gen.ts +++ b/ui/sdk/src/generated/types.gen.ts @@ -4,7 +4,7 @@ /** * Add an extension to an active session. */ -export type AddExtensionRequestUnstable = { +export type AddExtensionRequest_unstable = { sessionId: string; /** * Extension configuration (see ExtensionConfig variants: Stdio, StreamableHttp, Builtin, Platform). @@ -22,7 +22,7 @@ export type EmptyResponse = { /** * Remove an extension from an active session. */ -export type RemoveExtensionRequestUnstable = { +export type RemoveExtensionRequest_unstable = { sessionId: string; name: string; }; @@ -30,14 +30,14 @@ export type RemoveExtensionRequestUnstable = { /** * List all tools available in a session. */ -export type GetToolsRequestUnstable = { +export type GetToolsRequest_unstable = { sessionId: string; }; /** * Tools response. */ -export type GetToolsResponseUnstable = { +export type GetToolsResponse_unstable = { /** * Array of tool info objects with `name`, `description`, `parameters`, and optional `permission`. */ @@ -47,7 +47,7 @@ export type GetToolsResponseUnstable = { /** * Call a tool from an extension. */ -export type GooseToolCallRequestUnstable = { +export type GooseToolCallRequest_unstable = { sessionId: string; name: string; arguments?: unknown; @@ -56,7 +56,7 @@ export type GooseToolCallRequestUnstable = { /** * Tool call response. */ -export type GooseToolCallResponseUnstable = { +export type GooseToolCallResponse_unstable = { content?: Array; structuredContent?: unknown; isError: boolean; @@ -66,7 +66,7 @@ export type GooseToolCallResponseUnstable = { /** * Read a resource from an extension. */ -export type ReadResourceRequestUnstable = { +export type ReadResourceRequest_unstable = { sessionId: string; uri: string; extensionName: string; @@ -75,7 +75,7 @@ export type ReadResourceRequestUnstable = { /** * Resource read response. */ -export type ReadResourceResponseUnstable = { +export type ReadResourceResponse_unstable = { /** * The resource result from the extension (MCP ReadResourceResult). */ @@ -85,7 +85,7 @@ export type ReadResourceResponseUnstable = { /** * Update the working directory for a session. */ -export type UpdateWorkingDirRequestUnstable = { +export type UpdateWorkingDirRequest_unstable = { sessionId: string; workingDir: string; }; @@ -100,14 +100,14 @@ export type DeleteSessionRequest = { /** * List configured extensions and any warnings. */ -export type GetExtensionsRequestUnstable = { +export type GetExtensionsRequest_unstable = { [key: string]: unknown; }; /** * List configured extensions and any warnings. */ -export type GetExtensionsResponseUnstable = { +export type GetExtensionsResponse_unstable = { /** * Array of ExtensionEntry objects with `enabled` flag, `configKey`, and flattened config details. */ @@ -118,7 +118,7 @@ export type GetExtensionsResponseUnstable = { /** * Persist a new extension to the user's global goose config. */ -export type AddConfigExtensionRequestUnstable = { +export type AddConfigExtensionRequest_unstable = { name: string; /** * Extension configuration. Must be a JSON object matching one of the @@ -132,30 +132,30 @@ export type AddConfigExtensionRequestUnstable = { /** * Remove a persisted extension from the user's global goose config. */ -export type RemoveConfigExtensionRequestUnstable = { +export type RemoveConfigExtensionRequest_unstable = { configKey: string; }; /** * Toggle the `enabled` flag for a persisted extension in the user's global goose config. */ -export type ToggleConfigExtensionRequestUnstable = { +export type ToggleConfigExtensionRequest_unstable = { configKey: string; enabled: boolean; }; -export type GetSessionExtensionsRequestUnstable = { +export type GetSessionExtensionsRequest_unstable = { sessionId: string; }; -export type GetSessionExtensionsResponseUnstable = { +export type GetSessionExtensionsResponse_unstable = { extensions: Array; }; /** * List providers with setup metadata and the current model inventory snapshot. */ -export type ListProvidersRequestUnstable = { +export type ListProvidersRequest_unstable = { /** * Only return entries for these providers. Empty means all. */ @@ -165,7 +165,7 @@ export type ListProvidersRequestUnstable = { /** * Provider list response. */ -export type ListProvidersResponseUnstable = { +export type ListProvidersResponse_unstable = { entries: Array; }; @@ -288,11 +288,11 @@ export type ProviderInventoryModelDto = { /** * List custom-provider catalog entries. Omit `format` to list all formats. */ -export type ProviderCatalogListRequestUnstable = { +export type ProviderCatalogListRequest_unstable = { format?: string | null; }; -export type ProviderCatalogListResponseUnstable = { +export type ProviderCatalogListResponse_unstable = { providers: Array; }; @@ -309,11 +309,11 @@ export type ProviderTemplateCatalogEntryDto = { /** * List provider setup catalog entries */ -export type ProviderSetupCatalogListRequestUnstable = { +export type ProviderSetupCatalogListRequest_unstable = { [key: string]: unknown; }; -export type ProviderSetupCatalogListResponseUnstable = { +export type ProviderSetupCatalogListResponse_unstable = { providers: Array; }; @@ -351,11 +351,11 @@ export type ProviderSetupGroupDto = 'default' | 'additional'; /** * Return the editable template for one catalog provider. */ -export type ProviderCatalogTemplateRequestUnstable = { +export type ProviderCatalogTemplateRequest_unstable = { providerId: string; }; -export type ProviderCatalogTemplateResponseUnstable = { +export type ProviderCatalogTemplateResponse_unstable = { template: ProviderTemplateDto; }; @@ -388,7 +388,7 @@ export type ProviderTemplateCapabilitiesDto = { /** * Create a custom provider backed by Goose's declarative provider store. */ -export type CustomProviderCreateRequestUnstable = { +export type CustomProviderCreateRequest_unstable = { engine: string; displayName: string; apiUrl: string; @@ -404,10 +404,10 @@ export type CustomProviderCreateRequestUnstable = { preservesThinking?: boolean | null; }; -export type CustomProviderCreateResponseUnstable = { +export type CustomProviderCreateResponse_unstable = { providerId: string; status: ProviderConfigStatusDto; - refresh: RefreshProviderInventoryResponseUnstable; + refresh: RefreshProviderInventoryResponse_unstable; }; export type ProviderConfigStatusDto = { @@ -418,7 +418,7 @@ export type ProviderConfigStatusDto = { /** * Refresh acknowledgement. */ -export type RefreshProviderInventoryResponseUnstable = { +export type RefreshProviderInventoryResponse_unstable = { /** * Which providers will be refreshed. */ @@ -439,11 +439,11 @@ export type RefreshProviderInventorySkipReasonDto = 'unknown_provider' | 'not_co /** * Read a declarative provider config. Custom configs are editable; bundled configs are read-only. */ -export type CustomProviderReadRequestUnstable = { +export type CustomProviderReadRequest_unstable = { providerId: string; }; -export type CustomProviderReadResponseUnstable = { +export type CustomProviderReadResponse_unstable = { provider: CustomProviderConfigDto; editable: boolean; status: ProviderConfigStatusDto; @@ -470,7 +470,7 @@ export type CustomProviderConfigDto = { /** * Update a custom provider backed by Goose's declarative provider store. */ -export type CustomProviderUpdateRequestUnstable = { +export type CustomProviderUpdateRequest_unstable = { providerId: string; engine: string; displayName: string; @@ -487,28 +487,28 @@ export type CustomProviderUpdateRequestUnstable = { preservesThinking?: boolean | null; }; -export type CustomProviderUpdateResponseUnstable = { +export type CustomProviderUpdateResponse_unstable = { providerId: string; status: ProviderConfigStatusDto; - refresh: RefreshProviderInventoryResponseUnstable; + refresh: RefreshProviderInventoryResponse_unstable; }; /** * Delete a custom provider from Goose's declarative provider store. */ -export type CustomProviderDeleteRequestUnstable = { +export type CustomProviderDeleteRequest_unstable = { providerId: string; }; -export type CustomProviderDeleteResponseUnstable = { +export type CustomProviderDeleteResponse_unstable = { providerId: string; - refresh: RefreshProviderInventoryResponseUnstable; + refresh: RefreshProviderInventoryResponse_unstable; }; /** * Trigger a background refresh of provider inventories. */ -export type RefreshProviderInventoryRequestUnstable = { +export type RefreshProviderInventoryRequest_unstable = { /** * Which providers to refresh. Empty means all known providers. */ @@ -518,11 +518,11 @@ export type RefreshProviderInventoryRequestUnstable = { /** * Read saved configuration field values for one provider. */ -export type ProviderConfigReadRequestUnstable = { +export type ProviderConfigReadRequest_unstable = { providerId: string; }; -export type ProviderConfigReadResponseUnstable = { +export type ProviderConfigReadResponse_unstable = { fields: Array; }; @@ -537,18 +537,18 @@ export type ProviderConfigFieldValueDto = { /** * Return provider configured statuses. Empty provider_ids means all providers. */ -export type ProviderConfigStatusRequestUnstable = { +export type ProviderConfigStatusRequest_unstable = { providerIds?: Array; }; -export type ProviderConfigStatusResponseUnstable = { +export type ProviderConfigStatusResponse_unstable = { statuses: Array; }; /** * Save provider configuration fields and start an inventory refresh when supported. */ -export type ProviderConfigSaveRequestUnstable = { +export type ProviderConfigSaveRequest_unstable = { providerId: string; fields: Array; }; @@ -558,35 +558,35 @@ export type ProviderConfigFieldUpdate = { value: string; }; -export type ProviderConfigChangeResponseUnstable = { +export type ProviderConfigChangeResponse_unstable = { status: ProviderConfigStatusDto; - refresh: RefreshProviderInventoryResponseUnstable; + refresh: RefreshProviderInventoryResponse_unstable; }; /** * Delete provider configuration fields and start an inventory refresh when supported. */ -export type ProviderConfigDeleteRequestUnstable = { +export type ProviderConfigDeleteRequest_unstable = { providerId: string; }; /** * Run a provider-owned native authentication flow and start an inventory refresh when supported. */ -export type ProviderConfigAuthenticateRequestUnstable = { +export type ProviderConfigAuthenticateRequest_unstable = { providerId: string; }; /** * Read allowlisted user preferences. Empty `keys` means all supported preferences. */ -export type PreferencesReadRequestUnstable = { +export type PreferencesReadRequest_unstable = { keys?: Array; }; export type PreferenceKey = 'autoCompactThreshold' | 'voiceAutoSubmitPhrases' | 'voiceDictationProvider' | 'voiceDictationPreferredMic'; -export type PreferencesReadResponseUnstable = { +export type PreferencesReadResponse_unstable = { values: Array; }; @@ -598,25 +598,25 @@ export type PreferenceValue = { /** * Save allowlisted user preferences. */ -export type PreferencesSaveRequestUnstable = { +export type PreferencesSaveRequest_unstable = { values?: Array; }; /** * Remove allowlisted user preferences. */ -export type PreferencesRemoveRequestUnstable = { +export type PreferencesRemoveRequest_unstable = { keys?: Array; }; /** * Read Goose default provider and model configuration. */ -export type DefaultsReadRequestUnstable = { +export type DefaultsReadRequest_unstable = { [key: string]: unknown; }; -export type DefaultsReadResponseUnstable = { +export type DefaultsReadResponse_unstable = { providerId?: string | null; modelId?: string | null; }; @@ -624,7 +624,7 @@ export type DefaultsReadResponseUnstable = { /** * Save Goose default provider and model configuration. */ -export type DefaultsSaveRequestUnstable = { +export type DefaultsSaveRequest_unstable = { providerId: string; modelId?: string | null; }; @@ -632,7 +632,7 @@ export type DefaultsSaveRequestUnstable = { /** * Scan for existing Goose and compatible app data that onboarding can import. */ -export type OnboardingImportScanRequestUnstable = { +export type OnboardingImportScanRequest_unstable = { /** * Empty means all supported import sources. */ @@ -644,7 +644,7 @@ export type OnboardingImportScanRequestUnstable = { */ export type OnboardingImportSourceKind = 'goose_config' | 'claude_desktop'; -export type OnboardingImportScanResponseUnstable = { +export type OnboardingImportScanResponse_unstable = { candidates: Array; }; @@ -669,43 +669,43 @@ export type OnboardingImportCounts = { /** * Import selected onboarding candidates. */ -export type OnboardingImportApplyRequestUnstable = { +export type OnboardingImportApplyRequest_unstable = { candidateIds?: Array; enableImportedExtensions?: boolean; }; -export type OnboardingImportApplyResponseUnstable = { +export type OnboardingImportApplyResponse_unstable = { imported: OnboardingImportCounts; skipped: OnboardingImportCounts; warnings?: Array; - providerDefaults?: DefaultsReadResponseUnstable | null; + providerDefaults?: DefaultsReadResponse_unstable | null; }; /** * Export a session as a JSON string. */ -export type ExportSessionRequestUnstable = { +export type ExportSessionRequest_unstable = { sessionId: string; }; /** * Export session response — raw JSON of the goose session with `conversation`. */ -export type ExportSessionResponseUnstable = { +export type ExportSessionResponse_unstable = { data: string; }; /** * Import a session from a JSON string. */ -export type ImportSessionRequestUnstable = { +export type ImportSessionRequest_unstable = { data: string; }; /** * Import session response — metadata about the newly created session. */ -export type ImportSessionResponseUnstable = { +export type ImportSessionResponse_unstable = { sessionId: string; title?: string | null; updatedAt?: string | null; @@ -715,7 +715,7 @@ export type ImportSessionResponseUnstable = { /** * Update the project association for a session. */ -export type UpdateSessionProjectRequestUnstable = { +export type UpdateSessionProjectRequest_unstable = { sessionId: string; projectId?: string | null; }; @@ -723,7 +723,7 @@ export type UpdateSessionProjectRequestUnstable = { /** * Rename a session. */ -export type RenameSessionRequestUnstable = { +export type RenameSessionRequest_unstable = { sessionId: string; title: string; }; @@ -731,21 +731,21 @@ export type RenameSessionRequestUnstable = { /** * Archive a session (soft delete). */ -export type ArchiveSessionRequestUnstable = { +export type ArchiveSessionRequest_unstable = { sessionId: string; }; /** * Unarchive a previously archived session. */ -export type UnarchiveSessionRequestUnstable = { +export type UnarchiveSessionRequest_unstable = { sessionId: string; }; /** * Create a new source in an explicit target scope (global or project-scoped). */ -export type CreateSourceRequestUnstable = { +export type CreateSourceRequest_unstable = { type: SourceType; name: string; description: string; @@ -777,7 +777,7 @@ export type SourceScope = { scope: 'projectId'; }; -export type CreateSourceResponseUnstable = { +export type CreateSourceResponse_unstable = { source: SourceEntry; }; @@ -830,7 +830,7 @@ export type SourceEntry = { * set. If `type` is `builtinSkill`, this lists shipped read-only built-in * skills. */ -export type ListSourcesRequestUnstable = { +export type ListSourcesRequest_unstable = { type?: SourceType | null; projectDir?: string | null; /** @@ -840,14 +840,14 @@ export type ListSourcesRequestUnstable = { includeProjectSources?: boolean; }; -export type ListSourcesResponseUnstable = { +export type ListSourcesResponse_unstable = { sources: Array; }; /** * Update an existing source's name, description, and content by absolute path. */ -export type UpdateSourceRequestUnstable = { +export type UpdateSourceRequest_unstable = { type: SourceType; path: string; name: string; @@ -865,14 +865,14 @@ export type UpdateSourceRequestUnstable = { } | null; }; -export type UpdateSourceResponseUnstable = { +export type UpdateSourceResponse_unstable = { source: SourceEntry; }; /** * Delete a source and its on-disk directory by absolute path. */ -export type DeleteSourceRequestUnstable = { +export type DeleteSourceRequest_unstable = { type: SourceType; path: string; }; @@ -880,12 +880,12 @@ export type DeleteSourceRequestUnstable = { /** * Export a source at an absolute path as a portable JSON payload. */ -export type ExportSourceRequestUnstable = { +export type ExportSourceRequest_unstable = { type: SourceType; path: string; }; -export type ExportSourceResponseUnstable = { +export type ExportSourceResponse_unstable = { json: string; filename: string; }; @@ -895,19 +895,19 @@ export type ExportSourceResponseUnstable = { * The imported source is written into the explicit target scope; on name * collisions a `-imported` suffix is appended. */ -export type ImportSourcesRequestUnstable = { +export type ImportSourcesRequest_unstable = { data: string; target: SourceScope; }; -export type ImportSourcesResponseUnstable = { +export type ImportSourcesResponse_unstable = { sources: Array; }; /** * Transcribe audio via a dictation provider. */ -export type DictationTranscribeRequestUnstable = { +export type DictationTranscribeRequest_unstable = { /** * Base64-encoded audio data */ @@ -925,21 +925,21 @@ export type DictationTranscribeRequestUnstable = { /** * Transcription result. */ -export type DictationTranscribeResponseUnstable = { +export type DictationTranscribeResponse_unstable = { text: string; }; /** * Get the configuration status of all dictation providers. */ -export type DictationConfigRequestUnstable = { +export type DictationConfigRequest_unstable = { [key: string]: unknown; }; /** * Dictation config response — map of provider name to status. */ -export type DictationConfigResponseUnstable = { +export type DictationConfigResponse_unstable = { providers: { [key: string]: DictationProviderStatusEntry; }; @@ -970,7 +970,7 @@ export type DictationModelOption = { /** * Set a dictation provider secret value. */ -export type DictationSecretSaveRequestUnstable = { +export type DictationSecretSaveRequest_unstable = { provider: string; value: string; }; @@ -978,18 +978,18 @@ export type DictationSecretSaveRequestUnstable = { /** * Remove a dictation provider secret value. */ -export type DictationSecretDeleteRequestUnstable = { +export type DictationSecretDeleteRequest_unstable = { provider: string; }; /** * List available local Whisper models with their download status. */ -export type DictationModelsListRequestUnstable = { +export type DictationModelsListRequest_unstable = { [key: string]: unknown; }; -export type DictationModelsListResponseUnstable = { +export type DictationModelsListResponse_unstable = { models: Array; }; @@ -1005,18 +1005,18 @@ export type DictationLocalModelStatus = { /** * Kick off a background download of a local Whisper model. */ -export type DictationModelDownloadRequestUnstable = { +export type DictationModelDownloadRequest_unstable = { modelId: string; }; /** * Poll the progress of an in-flight download. */ -export type DictationModelDownloadProgressRequestUnstable = { +export type DictationModelDownloadProgressRequest_unstable = { modelId: string; }; -export type DictationModelDownloadProgressResponseUnstable = { +export type DictationModelDownloadProgressResponse_unstable = { /** * None when no download is active for this model id. */ @@ -1037,21 +1037,21 @@ export type DictationDownloadProgress = { /** * Cancel an in-flight download. */ -export type DictationModelCancelRequestUnstable = { +export type DictationModelCancelRequest_unstable = { modelId: string; }; /** * Delete a downloaded local Whisper model from disk. */ -export type DictationModelDeleteRequestUnstable = { +export type DictationModelDeleteRequest_unstable = { modelId: string; }; /** * Persist the user's model selection for a given provider. */ -export type DictationModelSelectRequestUnstable = { +export type DictationModelSelectRequest_unstable = { provider: string; modelId: string; }; @@ -1059,14 +1059,14 @@ export type DictationModelSelectRequestUnstable = { export type ExtRequest = { id: string; method: string; - params?: AddExtensionRequestUnstable | RemoveExtensionRequestUnstable | GetToolsRequestUnstable | GooseToolCallRequestUnstable | ReadResourceRequestUnstable | UpdateWorkingDirRequestUnstable | DeleteSessionRequest | GetExtensionsRequestUnstable | AddConfigExtensionRequestUnstable | RemoveConfigExtensionRequestUnstable | ToggleConfigExtensionRequestUnstable | GetSessionExtensionsRequestUnstable | ListProvidersRequestUnstable | ProviderCatalogListRequestUnstable | ProviderSetupCatalogListRequestUnstable | ProviderCatalogTemplateRequestUnstable | CustomProviderCreateRequestUnstable | CustomProviderReadRequestUnstable | CustomProviderUpdateRequestUnstable | CustomProviderDeleteRequestUnstable | RefreshProviderInventoryRequestUnstable | ProviderConfigReadRequestUnstable | ProviderConfigStatusRequestUnstable | ProviderConfigSaveRequestUnstable | ProviderConfigDeleteRequestUnstable | ProviderConfigAuthenticateRequestUnstable | PreferencesReadRequestUnstable | PreferencesSaveRequestUnstable | PreferencesRemoveRequestUnstable | DefaultsReadRequestUnstable | DefaultsSaveRequestUnstable | OnboardingImportScanRequestUnstable | OnboardingImportApplyRequestUnstable | ExportSessionRequestUnstable | ImportSessionRequestUnstable | UpdateSessionProjectRequestUnstable | RenameSessionRequestUnstable | ArchiveSessionRequestUnstable | UnarchiveSessionRequestUnstable | CreateSourceRequestUnstable | ListSourcesRequestUnstable | UpdateSourceRequestUnstable | DeleteSourceRequestUnstable | ExportSourceRequestUnstable | ImportSourcesRequestUnstable | DictationTranscribeRequestUnstable | DictationConfigRequestUnstable | DictationSecretSaveRequestUnstable | DictationSecretDeleteRequestUnstable | DictationModelsListRequestUnstable | DictationModelDownloadRequestUnstable | DictationModelDownloadProgressRequestUnstable | DictationModelCancelRequestUnstable | DictationModelDeleteRequestUnstable | DictationModelSelectRequestUnstable | { + params?: AddExtensionRequest_unstable | RemoveExtensionRequest_unstable | GetToolsRequest_unstable | GooseToolCallRequest_unstable | ReadResourceRequest_unstable | UpdateWorkingDirRequest_unstable | DeleteSessionRequest | GetExtensionsRequest_unstable | AddConfigExtensionRequest_unstable | RemoveConfigExtensionRequest_unstable | ToggleConfigExtensionRequest_unstable | GetSessionExtensionsRequest_unstable | ListProvidersRequest_unstable | ProviderCatalogListRequest_unstable | ProviderSetupCatalogListRequest_unstable | ProviderCatalogTemplateRequest_unstable | CustomProviderCreateRequest_unstable | CustomProviderReadRequest_unstable | CustomProviderUpdateRequest_unstable | CustomProviderDeleteRequest_unstable | RefreshProviderInventoryRequest_unstable | ProviderConfigReadRequest_unstable | ProviderConfigStatusRequest_unstable | ProviderConfigSaveRequest_unstable | ProviderConfigDeleteRequest_unstable | ProviderConfigAuthenticateRequest_unstable | PreferencesReadRequest_unstable | PreferencesSaveRequest_unstable | PreferencesRemoveRequest_unstable | DefaultsReadRequest_unstable | DefaultsSaveRequest_unstable | OnboardingImportScanRequest_unstable | OnboardingImportApplyRequest_unstable | ExportSessionRequest_unstable | ImportSessionRequest_unstable | UpdateSessionProjectRequest_unstable | RenameSessionRequest_unstable | ArchiveSessionRequest_unstable | UnarchiveSessionRequest_unstable | CreateSourceRequest_unstable | ListSourcesRequest_unstable | UpdateSourceRequest_unstable | DeleteSourceRequest_unstable | ExportSourceRequest_unstable | ImportSourcesRequest_unstable | DictationTranscribeRequest_unstable | DictationConfigRequest_unstable | DictationSecretSaveRequest_unstable | DictationSecretDeleteRequest_unstable | DictationModelsListRequest_unstable | DictationModelDownloadRequest_unstable | DictationModelDownloadProgressRequest_unstable | DictationModelCancelRequest_unstable | DictationModelDeleteRequest_unstable | DictationModelSelectRequest_unstable | { [key: string]: unknown; } | null; }; export type ExtResponse = { id: string; - result?: EmptyResponse | GetToolsResponseUnstable | GooseToolCallResponseUnstable | ReadResourceResponseUnstable | GetExtensionsResponseUnstable | GetSessionExtensionsResponseUnstable | ListProvidersResponseUnstable | ProviderCatalogListResponseUnstable | ProviderSetupCatalogListResponseUnstable | ProviderCatalogTemplateResponseUnstable | CustomProviderCreateResponseUnstable | CustomProviderReadResponseUnstable | CustomProviderUpdateResponseUnstable | CustomProviderDeleteResponseUnstable | RefreshProviderInventoryResponseUnstable | ProviderConfigReadResponseUnstable | ProviderConfigStatusResponseUnstable | ProviderConfigChangeResponseUnstable | PreferencesReadResponseUnstable | DefaultsReadResponseUnstable | OnboardingImportScanResponseUnstable | OnboardingImportApplyResponseUnstable | ExportSessionResponseUnstable | ImportSessionResponseUnstable | CreateSourceResponseUnstable | ListSourcesResponseUnstable | UpdateSourceResponseUnstable | ExportSourceResponseUnstable | ImportSourcesResponseUnstable | DictationTranscribeResponseUnstable | DictationConfigResponseUnstable | DictationModelsListResponseUnstable | DictationModelDownloadProgressResponseUnstable | unknown; + result?: EmptyResponse | GetToolsResponse_unstable | GooseToolCallResponse_unstable | ReadResourceResponse_unstable | GetExtensionsResponse_unstable | GetSessionExtensionsResponse_unstable | ListProvidersResponse_unstable | ProviderCatalogListResponse_unstable | ProviderSetupCatalogListResponse_unstable | ProviderCatalogTemplateResponse_unstable | CustomProviderCreateResponse_unstable | CustomProviderReadResponse_unstable | CustomProviderUpdateResponse_unstable | CustomProviderDeleteResponse_unstable | RefreshProviderInventoryResponse_unstable | ProviderConfigReadResponse_unstable | ProviderConfigStatusResponse_unstable | ProviderConfigChangeResponse_unstable | PreferencesReadResponse_unstable | DefaultsReadResponse_unstable | OnboardingImportScanResponse_unstable | OnboardingImportApplyResponse_unstable | ExportSessionResponse_unstable | ImportSessionResponse_unstable | CreateSourceResponse_unstable | ListSourcesResponse_unstable | UpdateSourceResponse_unstable | ExportSourceResponse_unstable | ImportSourcesResponse_unstable | DictationTranscribeResponse_unstable | DictationConfigResponse_unstable | DictationModelsListResponse_unstable | DictationModelDownloadProgressResponse_unstable | unknown; } | { error: { code: number; diff --git a/ui/sdk/src/generated/zod.gen.ts b/ui/sdk/src/generated/zod.gen.ts index 9d754332362d..300e478d7533 100644 --- a/ui/sdk/src/generated/zod.gen.ts +++ b/ui/sdk/src/generated/zod.gen.ts @@ -5,7 +5,7 @@ import { z } from 'zod'; /** * Add an extension to an active session. */ -export const zAddExtensionRequestUnstable = z.object({ +export const zAddExtensionRequest_unstable = z.object({ sessionId: z.string(), config: z.unknown().optional().default(null) }); @@ -18,7 +18,7 @@ export const zEmptyResponse = z.record(z.unknown()); /** * Remove an extension from an active session. */ -export const zRemoveExtensionRequestUnstable = z.object({ +export const zRemoveExtensionRequest_unstable = z.object({ sessionId: z.string(), name: z.string() }); @@ -26,21 +26,21 @@ export const zRemoveExtensionRequestUnstable = z.object({ /** * List all tools available in a session. */ -export const zGetToolsRequestUnstable = z.object({ +export const zGetToolsRequest_unstable = z.object({ sessionId: z.string() }); /** * Tools response. */ -export const zGetToolsResponseUnstable = z.object({ +export const zGetToolsResponse_unstable = z.object({ tools: z.array(z.unknown()) }); /** * Call a tool from an extension. */ -export const zGooseToolCallRequestUnstable = z.object({ +export const zGooseToolCallRequest_unstable = z.object({ sessionId: z.string(), name: z.string(), arguments: z.unknown().optional().default(null) @@ -49,7 +49,7 @@ export const zGooseToolCallRequestUnstable = z.object({ /** * Tool call response. */ -export const zGooseToolCallResponseUnstable = z.object({ +export const zGooseToolCallResponse_unstable = z.object({ content: z.array(z.unknown()).optional().default([]), structuredContent: z.unknown().optional(), isError: z.boolean(), @@ -59,7 +59,7 @@ export const zGooseToolCallResponseUnstable = z.object({ /** * Read a resource from an extension. */ -export const zReadResourceRequestUnstable = z.object({ +export const zReadResourceRequest_unstable = z.object({ sessionId: z.string(), uri: z.string(), extensionName: z.string() @@ -68,14 +68,14 @@ export const zReadResourceRequestUnstable = z.object({ /** * Resource read response. */ -export const zReadResourceResponseUnstable = z.object({ +export const zReadResourceResponse_unstable = z.object({ result: z.unknown().optional().default(null) }); /** * Update the working directory for a session. */ -export const zUpdateWorkingDirRequestUnstable = z.object({ +export const zUpdateWorkingDirRequest_unstable = z.object({ sessionId: z.string(), workingDir: z.string() }); @@ -90,12 +90,12 @@ export const zDeleteSessionRequest = z.object({ /** * List configured extensions and any warnings. */ -export const zGetExtensionsRequestUnstable = z.record(z.unknown()); +export const zGetExtensionsRequest_unstable = z.record(z.unknown()); /** * List configured extensions and any warnings. */ -export const zGetExtensionsResponseUnstable = z.object({ +export const zGetExtensionsResponse_unstable = z.object({ extensions: z.array(z.unknown()), warnings: z.array(z.string()) }); @@ -103,7 +103,7 @@ export const zGetExtensionsResponseUnstable = z.object({ /** * Persist a new extension to the user's global goose config. */ -export const zAddConfigExtensionRequestUnstable = z.object({ +export const zAddConfigExtensionRequest_unstable = z.object({ name: z.string(), extensionConfig: z.unknown().optional().default(null), enabled: z.boolean().optional().default(false) @@ -112,30 +112,30 @@ export const zAddConfigExtensionRequestUnstable = z.object({ /** * Remove a persisted extension from the user's global goose config. */ -export const zRemoveConfigExtensionRequestUnstable = z.object({ +export const zRemoveConfigExtensionRequest_unstable = z.object({ configKey: z.string() }); /** * Toggle the `enabled` flag for a persisted extension in the user's global goose config. */ -export const zToggleConfigExtensionRequestUnstable = z.object({ +export const zToggleConfigExtensionRequest_unstable = z.object({ configKey: z.string(), enabled: z.boolean() }); -export const zGetSessionExtensionsRequestUnstable = z.object({ +export const zGetSessionExtensionsRequest_unstable = z.object({ sessionId: z.string() }); -export const zGetSessionExtensionsResponseUnstable = z.object({ +export const zGetSessionExtensionsResponse_unstable = z.object({ extensions: z.array(z.unknown()) }); /** * List providers with setup metadata and the current model inventory snapshot. */ -export const zListProvidersRequestUnstable = z.object({ +export const zListProvidersRequest_unstable = z.object({ providerIds: z.array(z.string()).optional().default([]) }); @@ -213,14 +213,14 @@ export const zProviderInventoryEntryDto = z.object({ /** * Provider list response. */ -export const zListProvidersResponseUnstable = z.object({ +export const zListProvidersResponse_unstable = z.object({ entries: z.array(zProviderInventoryEntryDto) }); /** * List custom-provider catalog entries. Omit `format` to list all formats. */ -export const zProviderCatalogListRequestUnstable = z.object({ +export const zProviderCatalogListRequest_unstable = z.object({ format: z.union([ z.string(), z.null() @@ -237,14 +237,14 @@ export const zProviderTemplateCatalogEntryDto = z.object({ envVar: z.string() }); -export const zProviderCatalogListResponseUnstable = z.object({ +export const zProviderCatalogListResponse_unstable = z.object({ providers: z.array(zProviderTemplateCatalogEntryDto) }); /** * List provider setup catalog entries */ -export const zProviderSetupCatalogListRequestUnstable = z.record(z.unknown()); +export const zProviderSetupCatalogListRequest_unstable = z.record(z.unknown()); export const zProviderSetupMethodDto = z.enum([ 'none', @@ -302,14 +302,14 @@ export const zProviderSetupCatalogEntryDto = z.object({ supportsAuthStatus: z.boolean() }); -export const zProviderSetupCatalogListResponseUnstable = z.object({ +export const zProviderSetupCatalogListResponse_unstable = z.object({ providers: z.array(zProviderSetupCatalogEntryDto) }); /** * Return the editable template for one catalog provider. */ -export const zProviderCatalogTemplateRequestUnstable = z.object({ +export const zProviderCatalogTemplateRequest_unstable = z.object({ providerId: z.string() }); @@ -339,14 +339,14 @@ export const zProviderTemplateDto = z.object({ docUrl: z.string() }); -export const zProviderCatalogTemplateResponseUnstable = z.object({ +export const zProviderCatalogTemplateResponse_unstable = z.object({ template: zProviderTemplateDto }); /** * Create a custom provider backed by Goose's declarative provider store. */ -export const zCustomProviderCreateRequestUnstable = z.object({ +export const zCustomProviderCreateRequest_unstable = z.object({ engine: z.string(), displayName: z.string(), apiUrl: z.string(), @@ -395,21 +395,21 @@ export const zRefreshProviderInventorySkipDto = z.object({ /** * Refresh acknowledgement. */ -export const zRefreshProviderInventoryResponseUnstable = z.object({ +export const zRefreshProviderInventoryResponse_unstable = z.object({ started: z.array(z.string()), skipped: z.array(zRefreshProviderInventorySkipDto).optional().default([]) }); -export const zCustomProviderCreateResponseUnstable = z.object({ +export const zCustomProviderCreateResponse_unstable = z.object({ providerId: z.string(), status: zProviderConfigStatusDto, - refresh: zRefreshProviderInventoryResponseUnstable + refresh: zRefreshProviderInventoryResponse_unstable }); /** * Read a declarative provider config. Custom configs are editable; bundled configs are read-only. */ -export const zCustomProviderReadRequestUnstable = z.object({ +export const zCustomProviderReadRequest_unstable = z.object({ providerId: z.string() }); @@ -441,7 +441,7 @@ export const zCustomProviderConfigDto = z.object({ preservesThinking: z.boolean() }); -export const zCustomProviderReadResponseUnstable = z.object({ +export const zCustomProviderReadResponse_unstable = z.object({ provider: zCustomProviderConfigDto, editable: z.boolean(), status: zProviderConfigStatusDto @@ -450,7 +450,7 @@ export const zCustomProviderReadResponseUnstable = z.object({ /** * Update a custom provider backed by Goose's declarative provider store. */ -export const zCustomProviderUpdateRequestUnstable = z.object({ +export const zCustomProviderUpdateRequest_unstable = z.object({ providerId: z.string(), engine: z.string(), displayName: z.string(), @@ -480,35 +480,35 @@ export const zCustomProviderUpdateRequestUnstable = z.object({ ]).optional() }); -export const zCustomProviderUpdateResponseUnstable = z.object({ +export const zCustomProviderUpdateResponse_unstable = z.object({ providerId: z.string(), status: zProviderConfigStatusDto, - refresh: zRefreshProviderInventoryResponseUnstable + refresh: zRefreshProviderInventoryResponse_unstable }); /** * Delete a custom provider from Goose's declarative provider store. */ -export const zCustomProviderDeleteRequestUnstable = z.object({ +export const zCustomProviderDeleteRequest_unstable = z.object({ providerId: z.string() }); -export const zCustomProviderDeleteResponseUnstable = z.object({ +export const zCustomProviderDeleteResponse_unstable = z.object({ providerId: z.string(), - refresh: zRefreshProviderInventoryResponseUnstable + refresh: zRefreshProviderInventoryResponse_unstable }); /** * Trigger a background refresh of provider inventories. */ -export const zRefreshProviderInventoryRequestUnstable = z.object({ +export const zRefreshProviderInventoryRequest_unstable = z.object({ providerIds: z.array(z.string()).optional().default([]) }); /** * Read saved configuration field values for one provider. */ -export const zProviderConfigReadRequestUnstable = z.object({ +export const zProviderConfigReadRequest_unstable = z.object({ providerId: z.string() }); @@ -523,18 +523,18 @@ export const zProviderConfigFieldValueDto = z.object({ required: z.boolean() }); -export const zProviderConfigReadResponseUnstable = z.object({ +export const zProviderConfigReadResponse_unstable = z.object({ fields: z.array(zProviderConfigFieldValueDto) }); /** * Return provider configured statuses. Empty provider_ids means all providers. */ -export const zProviderConfigStatusRequestUnstable = z.object({ +export const zProviderConfigStatusRequest_unstable = z.object({ providerIds: z.array(z.string()).optional().default([]) }); -export const zProviderConfigStatusResponseUnstable = z.object({ +export const zProviderConfigStatusResponse_unstable = z.object({ statuses: z.array(zProviderConfigStatusDto) }); @@ -546,27 +546,27 @@ export const zProviderConfigFieldUpdate = z.object({ /** * Save provider configuration fields and start an inventory refresh when supported. */ -export const zProviderConfigSaveRequestUnstable = z.object({ +export const zProviderConfigSaveRequest_unstable = z.object({ providerId: z.string(), fields: z.array(zProviderConfigFieldUpdate) }); -export const zProviderConfigChangeResponseUnstable = z.object({ +export const zProviderConfigChangeResponse_unstable = z.object({ status: zProviderConfigStatusDto, - refresh: zRefreshProviderInventoryResponseUnstable + refresh: zRefreshProviderInventoryResponse_unstable }); /** * Delete provider configuration fields and start an inventory refresh when supported. */ -export const zProviderConfigDeleteRequestUnstable = z.object({ +export const zProviderConfigDeleteRequest_unstable = z.object({ providerId: z.string() }); /** * Run a provider-owned native authentication flow and start an inventory refresh when supported. */ -export const zProviderConfigAuthenticateRequestUnstable = z.object({ +export const zProviderConfigAuthenticateRequest_unstable = z.object({ providerId: z.string() }); @@ -580,7 +580,7 @@ export const zPreferenceKey = z.enum([ /** * Read allowlisted user preferences. Empty `keys` means all supported preferences. */ -export const zPreferencesReadRequestUnstable = z.object({ +export const zPreferencesReadRequest_unstable = z.object({ keys: z.array(zPreferenceKey).optional().default([]) }); @@ -589,30 +589,30 @@ export const zPreferenceValue = z.object({ value: z.unknown().optional().default(null) }); -export const zPreferencesReadResponseUnstable = z.object({ +export const zPreferencesReadResponse_unstable = z.object({ values: z.array(zPreferenceValue) }); /** * Save allowlisted user preferences. */ -export const zPreferencesSaveRequestUnstable = z.object({ +export const zPreferencesSaveRequest_unstable = z.object({ values: z.array(zPreferenceValue).optional().default([]) }); /** * Remove allowlisted user preferences. */ -export const zPreferencesRemoveRequestUnstable = z.object({ +export const zPreferencesRemoveRequest_unstable = z.object({ keys: z.array(zPreferenceKey).optional().default([]) }); /** * Read Goose default provider and model configuration. */ -export const zDefaultsReadRequestUnstable = z.record(z.unknown()); +export const zDefaultsReadRequest_unstable = z.record(z.unknown()); -export const zDefaultsReadResponseUnstable = z.object({ +export const zDefaultsReadResponse_unstable = z.object({ providerId: z.union([ z.string(), z.null() @@ -626,7 +626,7 @@ export const zDefaultsReadResponseUnstable = z.object({ /** * Save Goose default provider and model configuration. */ -export const zDefaultsSaveRequestUnstable = z.object({ +export const zDefaultsSaveRequest_unstable = z.object({ providerId: z.string(), modelId: z.union([ z.string(), @@ -642,7 +642,7 @@ export const zOnboardingImportSourceKind = z.enum(['goose_config', 'claude_deskt /** * Scan for existing Goose and compatible app data that onboarding can import. */ -export const zOnboardingImportScanRequestUnstable = z.object({ +export const zOnboardingImportScanRequest_unstable = z.object({ sources: z.array(zOnboardingImportSourceKind).optional().default([]) }); @@ -664,24 +664,24 @@ export const zOnboardingImportCandidate = z.object({ warnings: z.array(z.string()).optional().default([]) }); -export const zOnboardingImportScanResponseUnstable = z.object({ +export const zOnboardingImportScanResponse_unstable = z.object({ candidates: z.array(zOnboardingImportCandidate) }); /** * Import selected onboarding candidates. */ -export const zOnboardingImportApplyRequestUnstable = z.object({ +export const zOnboardingImportApplyRequest_unstable = z.object({ candidateIds: z.array(z.string()).optional().default([]), enableImportedExtensions: z.boolean().optional().default(false) }); -export const zOnboardingImportApplyResponseUnstable = z.object({ +export const zOnboardingImportApplyResponse_unstable = z.object({ imported: zOnboardingImportCounts, skipped: zOnboardingImportCounts, warnings: z.array(z.string()).optional().default([]), providerDefaults: z.union([ - zDefaultsReadResponseUnstable, + zDefaultsReadResponse_unstable, z.null() ]).optional() }); @@ -689,28 +689,28 @@ export const zOnboardingImportApplyResponseUnstable = z.object({ /** * Export a session as a JSON string. */ -export const zExportSessionRequestUnstable = z.object({ +export const zExportSessionRequest_unstable = z.object({ sessionId: z.string() }); /** * Export session response — raw JSON of the goose session with `conversation`. */ -export const zExportSessionResponseUnstable = z.object({ +export const zExportSessionResponse_unstable = z.object({ data: z.string() }); /** * Import a session from a JSON string. */ -export const zImportSessionRequestUnstable = z.object({ +export const zImportSessionRequest_unstable = z.object({ data: z.string() }); /** * Import session response — metadata about the newly created session. */ -export const zImportSessionResponseUnstable = z.object({ +export const zImportSessionResponse_unstable = z.object({ sessionId: z.string(), title: z.union([ z.string(), @@ -726,7 +726,7 @@ export const zImportSessionResponseUnstable = z.object({ /** * Update the project association for a session. */ -export const zUpdateSessionProjectRequestUnstable = z.object({ +export const zUpdateSessionProjectRequest_unstable = z.object({ sessionId: z.string(), projectId: z.union([ z.string(), @@ -737,7 +737,7 @@ export const zUpdateSessionProjectRequestUnstable = z.object({ /** * Rename a session. */ -export const zRenameSessionRequestUnstable = z.object({ +export const zRenameSessionRequest_unstable = z.object({ sessionId: z.string(), title: z.string() }); @@ -745,14 +745,14 @@ export const zRenameSessionRequestUnstable = z.object({ /** * Archive a session (soft delete). */ -export const zArchiveSessionRequestUnstable = z.object({ +export const zArchiveSessionRequest_unstable = z.object({ sessionId: z.string() }); /** * Unarchive a previously archived session. */ -export const zUnarchiveSessionRequestUnstable = z.object({ +export const zUnarchiveSessionRequest_unstable = z.object({ sessionId: z.string() }); @@ -788,7 +788,7 @@ export const zSourceScope = z.union([ /** * Create a new source in an explicit target scope (global or project-scoped). */ -export const zCreateSourceRequestUnstable = z.object({ +export const zCreateSourceRequest_unstable = z.object({ type: zSourceType, name: z.string(), description: z.string(), @@ -814,7 +814,7 @@ export const zSourceEntry = z.object({ properties: z.record(z.unknown()).optional() }); -export const zCreateSourceResponseUnstable = z.object({ +export const zCreateSourceResponse_unstable = z.object({ source: zSourceEntry }); @@ -826,7 +826,7 @@ export const zCreateSourceResponseUnstable = z.object({ * set. If `type` is `builtinSkill`, this lists shipped read-only built-in * skills. */ -export const zListSourcesRequestUnstable = z.object({ +export const zListSourcesRequest_unstable = z.object({ type: z.union([ zSourceType, z.null() @@ -838,14 +838,14 @@ export const zListSourcesRequestUnstable = z.object({ includeProjectSources: z.boolean().optional().default(false) }); -export const zListSourcesResponseUnstable = z.object({ +export const zListSourcesResponse_unstable = z.object({ sources: z.array(zSourceEntry) }); /** * Update an existing source's name, description, and content by absolute path. */ -export const zUpdateSourceRequestUnstable = z.object({ +export const zUpdateSourceRequest_unstable = z.object({ type: zSourceType, path: z.string(), name: z.string(), @@ -857,14 +857,14 @@ export const zUpdateSourceRequestUnstable = z.object({ ]).optional() }); -export const zUpdateSourceResponseUnstable = z.object({ +export const zUpdateSourceResponse_unstable = z.object({ source: zSourceEntry }); /** * Delete a source and its on-disk directory by absolute path. */ -export const zDeleteSourceRequestUnstable = z.object({ +export const zDeleteSourceRequest_unstable = z.object({ type: zSourceType, path: z.string() }); @@ -872,12 +872,12 @@ export const zDeleteSourceRequestUnstable = z.object({ /** * Export a source at an absolute path as a portable JSON payload. */ -export const zExportSourceRequestUnstable = z.object({ +export const zExportSourceRequest_unstable = z.object({ type: zSourceType, path: z.string() }); -export const zExportSourceResponseUnstable = z.object({ +export const zExportSourceResponse_unstable = z.object({ json: z.string(), filename: z.string() }); @@ -887,19 +887,19 @@ export const zExportSourceResponseUnstable = z.object({ * The imported source is written into the explicit target scope; on name * collisions a `-imported` suffix is appended. */ -export const zImportSourcesRequestUnstable = z.object({ +export const zImportSourcesRequest_unstable = z.object({ data: z.string(), target: zSourceScope }); -export const zImportSourcesResponseUnstable = z.object({ +export const zImportSourcesResponse_unstable = z.object({ sources: z.array(zSourceEntry) }); /** * Transcribe audio via a dictation provider. */ -export const zDictationTranscribeRequestUnstable = z.object({ +export const zDictationTranscribeRequest_unstable = z.object({ audio: z.string(), mimeType: z.string(), provider: z.string() @@ -908,14 +908,14 @@ export const zDictationTranscribeRequestUnstable = z.object({ /** * Transcription result. */ -export const zDictationTranscribeResponseUnstable = z.object({ +export const zDictationTranscribeResponse_unstable = z.object({ text: z.string() }); /** * Get the configuration status of all dictation providers. */ -export const zDictationConfigRequestUnstable = z.record(z.unknown()); +export const zDictationConfigRequest_unstable = z.record(z.unknown()); export const zDictationModelOption = z.object({ id: z.string(), @@ -960,14 +960,14 @@ export const zDictationProviderStatusEntry = z.object({ /** * Dictation config response — map of provider name to status. */ -export const zDictationConfigResponseUnstable = z.object({ +export const zDictationConfigResponse_unstable = z.object({ providers: z.record(zDictationProviderStatusEntry) }); /** * Set a dictation provider secret value. */ -export const zDictationSecretSaveRequestUnstable = z.object({ +export const zDictationSecretSaveRequest_unstable = z.object({ provider: z.string(), value: z.string() }); @@ -975,14 +975,14 @@ export const zDictationSecretSaveRequestUnstable = z.object({ /** * Remove a dictation provider secret value. */ -export const zDictationSecretDeleteRequestUnstable = z.object({ +export const zDictationSecretDeleteRequest_unstable = z.object({ provider: z.string() }); /** * List available local Whisper models with their download status. */ -export const zDictationModelsListRequestUnstable = z.record(z.unknown()); +export const zDictationModelsListRequest_unstable = z.record(z.unknown()); export const zDictationLocalModelStatus = z.object({ id: z.string(), @@ -993,21 +993,21 @@ export const zDictationLocalModelStatus = z.object({ downloadInProgress: z.boolean() }); -export const zDictationModelsListResponseUnstable = z.object({ +export const zDictationModelsListResponse_unstable = z.object({ models: z.array(zDictationLocalModelStatus) }); /** * Kick off a background download of a local Whisper model. */ -export const zDictationModelDownloadRequestUnstable = z.object({ +export const zDictationModelDownloadRequest_unstable = z.object({ modelId: z.string() }); /** * Poll the progress of an in-flight download. */ -export const zDictationModelDownloadProgressRequestUnstable = z.object({ +export const zDictationModelDownloadProgressRequest_unstable = z.object({ modelId: z.string() }); @@ -1022,7 +1022,7 @@ export const zDictationDownloadProgress = z.object({ ]).optional() }); -export const zDictationModelDownloadProgressResponseUnstable = z.object({ +export const zDictationModelDownloadProgressResponse_unstable = z.object({ progress: z.union([ zDictationDownloadProgress, z.null() @@ -1032,21 +1032,21 @@ export const zDictationModelDownloadProgressResponseUnstable = z.object({ /** * Cancel an in-flight download. */ -export const zDictationModelCancelRequestUnstable = z.object({ +export const zDictationModelCancelRequest_unstable = z.object({ modelId: z.string() }); /** * Delete a downloaded local Whisper model from disk. */ -export const zDictationModelDeleteRequestUnstable = z.object({ +export const zDictationModelDeleteRequest_unstable = z.object({ modelId: z.string() }); /** * Persist the user's model selection for a given provider. */ -export const zDictationModelSelectRequestUnstable = z.object({ +export const zDictationModelSelectRequest_unstable = z.object({ provider: z.string(), modelId: z.string() }); @@ -1056,61 +1056,61 @@ export const zExtRequest = z.object({ method: z.string(), params: z.union([ z.union([ - zAddExtensionRequestUnstable, - zRemoveExtensionRequestUnstable, - zGetToolsRequestUnstable, - zGooseToolCallRequestUnstable, - zReadResourceRequestUnstable, - zUpdateWorkingDirRequestUnstable, + zAddExtensionRequest_unstable, + zRemoveExtensionRequest_unstable, + zGetToolsRequest_unstable, + zGooseToolCallRequest_unstable, + zReadResourceRequest_unstable, + zUpdateWorkingDirRequest_unstable, zDeleteSessionRequest, - zGetExtensionsRequestUnstable, - zAddConfigExtensionRequestUnstable, - zRemoveConfigExtensionRequestUnstable, - zToggleConfigExtensionRequestUnstable, - zGetSessionExtensionsRequestUnstable, - zListProvidersRequestUnstable, - zProviderCatalogListRequestUnstable, - zProviderSetupCatalogListRequestUnstable, - zProviderCatalogTemplateRequestUnstable, - zCustomProviderCreateRequestUnstable, - zCustomProviderReadRequestUnstable, - zCustomProviderUpdateRequestUnstable, - zCustomProviderDeleteRequestUnstable, - zRefreshProviderInventoryRequestUnstable, - zProviderConfigReadRequestUnstable, - zProviderConfigStatusRequestUnstable, - zProviderConfigSaveRequestUnstable, - zProviderConfigDeleteRequestUnstable, - zProviderConfigAuthenticateRequestUnstable, - zPreferencesReadRequestUnstable, - zPreferencesSaveRequestUnstable, - zPreferencesRemoveRequestUnstable, - zDefaultsReadRequestUnstable, - zDefaultsSaveRequestUnstable, - zOnboardingImportScanRequestUnstable, - zOnboardingImportApplyRequestUnstable, - zExportSessionRequestUnstable, - zImportSessionRequestUnstable, - zUpdateSessionProjectRequestUnstable, - zRenameSessionRequestUnstable, - zArchiveSessionRequestUnstable, - zUnarchiveSessionRequestUnstable, - zCreateSourceRequestUnstable, - zListSourcesRequestUnstable, - zUpdateSourceRequestUnstable, - zDeleteSourceRequestUnstable, - zExportSourceRequestUnstable, - zImportSourcesRequestUnstable, - zDictationTranscribeRequestUnstable, - zDictationConfigRequestUnstable, - zDictationSecretSaveRequestUnstable, - zDictationSecretDeleteRequestUnstable, - zDictationModelsListRequestUnstable, - zDictationModelDownloadRequestUnstable, - zDictationModelDownloadProgressRequestUnstable, - zDictationModelCancelRequestUnstable, - zDictationModelDeleteRequestUnstable, - zDictationModelSelectRequestUnstable + zGetExtensionsRequest_unstable, + zAddConfigExtensionRequest_unstable, + zRemoveConfigExtensionRequest_unstable, + zToggleConfigExtensionRequest_unstable, + zGetSessionExtensionsRequest_unstable, + zListProvidersRequest_unstable, + zProviderCatalogListRequest_unstable, + zProviderSetupCatalogListRequest_unstable, + zProviderCatalogTemplateRequest_unstable, + zCustomProviderCreateRequest_unstable, + zCustomProviderReadRequest_unstable, + zCustomProviderUpdateRequest_unstable, + zCustomProviderDeleteRequest_unstable, + zRefreshProviderInventoryRequest_unstable, + zProviderConfigReadRequest_unstable, + zProviderConfigStatusRequest_unstable, + zProviderConfigSaveRequest_unstable, + zProviderConfigDeleteRequest_unstable, + zProviderConfigAuthenticateRequest_unstable, + zPreferencesReadRequest_unstable, + zPreferencesSaveRequest_unstable, + zPreferencesRemoveRequest_unstable, + zDefaultsReadRequest_unstable, + zDefaultsSaveRequest_unstable, + zOnboardingImportScanRequest_unstable, + zOnboardingImportApplyRequest_unstable, + zExportSessionRequest_unstable, + zImportSessionRequest_unstable, + zUpdateSessionProjectRequest_unstable, + zRenameSessionRequest_unstable, + zArchiveSessionRequest_unstable, + zUnarchiveSessionRequest_unstable, + zCreateSourceRequest_unstable, + zListSourcesRequest_unstable, + zUpdateSourceRequest_unstable, + zDeleteSourceRequest_unstable, + zExportSourceRequest_unstable, + zImportSourcesRequest_unstable, + zDictationTranscribeRequest_unstable, + zDictationConfigRequest_unstable, + zDictationSecretSaveRequest_unstable, + zDictationSecretDeleteRequest_unstable, + zDictationModelsListRequest_unstable, + zDictationModelDownloadRequest_unstable, + zDictationModelDownloadProgressRequest_unstable, + zDictationModelCancelRequest_unstable, + zDictationModelDeleteRequest_unstable, + zDictationModelSelectRequest_unstable ]), z.union([ z.record(z.unknown()), @@ -1125,38 +1125,38 @@ export const zExtResponse = z.union([ result: z.union([ z.union([ zEmptyResponse, - zGetToolsResponseUnstable, - zGooseToolCallResponseUnstable, - zReadResourceResponseUnstable, - zGetExtensionsResponseUnstable, - zGetSessionExtensionsResponseUnstable, - zListProvidersResponseUnstable, - zProviderCatalogListResponseUnstable, - zProviderSetupCatalogListResponseUnstable, - zProviderCatalogTemplateResponseUnstable, - zCustomProviderCreateResponseUnstable, - zCustomProviderReadResponseUnstable, - zCustomProviderUpdateResponseUnstable, - zCustomProviderDeleteResponseUnstable, - zRefreshProviderInventoryResponseUnstable, - zProviderConfigReadResponseUnstable, - zProviderConfigStatusResponseUnstable, - zProviderConfigChangeResponseUnstable, - zPreferencesReadResponseUnstable, - zDefaultsReadResponseUnstable, - zOnboardingImportScanResponseUnstable, - zOnboardingImportApplyResponseUnstable, - zExportSessionResponseUnstable, - zImportSessionResponseUnstable, - zCreateSourceResponseUnstable, - zListSourcesResponseUnstable, - zUpdateSourceResponseUnstable, - zExportSourceResponseUnstable, - zImportSourcesResponseUnstable, - zDictationTranscribeResponseUnstable, - zDictationConfigResponseUnstable, - zDictationModelsListResponseUnstable, - zDictationModelDownloadProgressResponseUnstable + zGetToolsResponse_unstable, + zGooseToolCallResponse_unstable, + zReadResourceResponse_unstable, + zGetExtensionsResponse_unstable, + zGetSessionExtensionsResponse_unstable, + zListProvidersResponse_unstable, + zProviderCatalogListResponse_unstable, + zProviderSetupCatalogListResponse_unstable, + zProviderCatalogTemplateResponse_unstable, + zCustomProviderCreateResponse_unstable, + zCustomProviderReadResponse_unstable, + zCustomProviderUpdateResponse_unstable, + zCustomProviderDeleteResponse_unstable, + zRefreshProviderInventoryResponse_unstable, + zProviderConfigReadResponse_unstable, + zProviderConfigStatusResponse_unstable, + zProviderConfigChangeResponse_unstable, + zPreferencesReadResponse_unstable, + zDefaultsReadResponse_unstable, + zOnboardingImportScanResponse_unstable, + zOnboardingImportApplyResponse_unstable, + zExportSessionResponse_unstable, + zImportSessionResponse_unstable, + zCreateSourceResponse_unstable, + zListSourcesResponse_unstable, + zUpdateSourceResponse_unstable, + zExportSourceResponse_unstable, + zImportSourcesResponse_unstable, + zDictationTranscribeResponse_unstable, + zDictationConfigResponse_unstable, + zDictationModelsListResponse_unstable, + zDictationModelDownloadProgressResponse_unstable ]), z.unknown() ]).optional() From d00fa2fa71e5923fd36d255adae5de29c235e2b6 Mon Sep 17 00:00:00 2001 From: Jack Amadeo Date: Wed, 20 May 2026 12:19:06 -0400 Subject: [PATCH 7/8] client SDK names --- ui/desktop/src/acp/extensions.ts | 2 +- ui/sdk/generate-schema.ts | 17 ++++- ui/sdk/src/generated/client.gen.ts | 108 ++++++++++++++--------------- 3 files changed, 69 insertions(+), 58 deletions(-) diff --git a/ui/desktop/src/acp/extensions.ts b/ui/desktop/src/acp/extensions.ts index 23f0aa3579c0..4edcff17c52c 100644 --- a/ui/desktop/src/acp/extensions.ts +++ b/ui/desktop/src/acp/extensions.ts @@ -3,7 +3,7 @@ import { getAcpClient } from './acpConnection'; export async function getConfiguredExtensions(): Promise { const client = await getAcpClient(); - const response = await client.goose.GooseConfigExtensionsList({}); + const response = await client.goose.configExtensionsList_unstable({}); return { extensions: response.extensions as ExtensionEntry[], warnings: response.warnings, diff --git a/ui/sdk/generate-schema.ts b/ui/sdk/generate-schema.ts index 193b4e3e3676..1d7c4858dfc6 100644 --- a/ui/sdk/generate-schema.ts +++ b/ui/sdk/generate-schema.ts @@ -127,9 +127,18 @@ interface MethodMeta { } function methodToCamelCase(method: string): string { - return method - .split(/[/_]/) - .filter((part) => part !== "v1") + let methodParts = method.split(/[/_]/).filter((part) => part.length > 0); + + let suffix: string; + if (methodParts[0] == "goose" && methodParts[1] == "unstable") { + methodParts.shift(); + methodParts.shift(); + suffix = "_unstable"; + } else { + suffix = ""; + } + + let prefix = methodParts .map((part) => part.replace(/[^a-zA-Z0-9]+(.)/g, (_, chr: string) => chr.toUpperCase()), ) @@ -137,6 +146,8 @@ function methodToCamelCase(method: string): string { i === 0 ? part : part.charAt(0).toUpperCase() + part.slice(1), ) .join(""); + + return `${prefix}${suffix}`; } async function generateClient(meta: { methods: MethodMeta[] }) { diff --git a/ui/sdk/src/generated/client.gen.ts b/ui/sdk/src/generated/client.gen.ts index 84d2602ac824..2bc08d2fea88 100644 --- a/ui/sdk/src/generated/client.gen.ts +++ b/ui/sdk/src/generated/client.gen.ts @@ -134,13 +134,13 @@ import { export class GooseExtClient { constructor(private conn: ExtMethodProvider) {} - async GooseUnstableSessionExtensionsAdd( + async sessionExtensionsAdd_unstable( params: AddExtensionRequest_unstable, ): Promise { await this.conn.extMethod("_goose/unstable/session/extensions/add", params); } - async GooseUnstableSessionExtensionsRemove( + async sessionExtensionsRemove_unstable( params: RemoveExtensionRequest_unstable, ): Promise { await this.conn.extMethod( @@ -149,14 +149,14 @@ export class GooseExtClient { ); } - async GooseUnstableToolsList( + async toolsList_unstable( params: GetToolsRequest_unstable, ): Promise { const raw = await this.conn.extMethod("_goose/unstable/tools/list", params); return zGetToolsResponse_unstable.parse(raw) as GetToolsResponse_unstable; } - async GooseUnstableToolsCall( + async toolsCall_unstable( params: GooseToolCallRequest_unstable, ): Promise { const raw = await this.conn.extMethod("_goose/unstable/tools/call", params); @@ -165,7 +165,7 @@ export class GooseExtClient { ) as GooseToolCallResponse_unstable; } - async GooseUnstableResourcesRead( + async resourcesRead_unstable( params: ReadResourceRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -177,7 +177,7 @@ export class GooseExtClient { ) as ReadResourceResponse_unstable; } - async GooseUnstableSessionWorkingDirUpdate( + async sessionWorkingDirUpdate_unstable( params: UpdateWorkingDirRequest_unstable, ): Promise { await this.conn.extMethod( @@ -190,7 +190,7 @@ export class GooseExtClient { await this.conn.extMethod("session/delete", params); } - async GooseUnstableConfigExtensionsList( + async configExtensionsList_unstable( params: GetExtensionsRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -202,13 +202,13 @@ export class GooseExtClient { ) as GetExtensionsResponse_unstable; } - async GooseUnstableConfigExtensionsAdd( + async configExtensionsAdd_unstable( params: AddConfigExtensionRequest_unstable, ): Promise { await this.conn.extMethod("_goose/unstable/config/extensions/add", params); } - async GooseUnstableConfigExtensionsRemove( + async configExtensionsRemove_unstable( params: RemoveConfigExtensionRequest_unstable, ): Promise { await this.conn.extMethod( @@ -217,7 +217,7 @@ export class GooseExtClient { ); } - async GooseUnstableConfigExtensionsToggle( + async configExtensionsToggle_unstable( params: ToggleConfigExtensionRequest_unstable, ): Promise { await this.conn.extMethod( @@ -226,7 +226,7 @@ export class GooseExtClient { ); } - async GooseUnstableSessionExtensionsList( + async sessionExtensionsList_unstable( params: GetSessionExtensionsRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -238,7 +238,7 @@ export class GooseExtClient { ) as GetSessionExtensionsResponse_unstable; } - async GooseUnstableProvidersList( + async providersList_unstable( params: ListProvidersRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -250,7 +250,7 @@ export class GooseExtClient { ) as ListProvidersResponse_unstable; } - async GooseUnstableProvidersCatalogList( + async providersCatalogList_unstable( params: ProviderCatalogListRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -262,7 +262,7 @@ export class GooseExtClient { ) as ProviderCatalogListResponse_unstable; } - async GooseUnstableProvidersSetupCatalogList( + async providersSetupCatalogList_unstable( params: ProviderSetupCatalogListRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -274,7 +274,7 @@ export class GooseExtClient { ) as ProviderSetupCatalogListResponse_unstable; } - async GooseUnstableProvidersCatalogTemplate( + async providersCatalogTemplate_unstable( params: ProviderCatalogTemplateRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -286,7 +286,7 @@ export class GooseExtClient { ) as ProviderCatalogTemplateResponse_unstable; } - async GooseUnstableProvidersCustomCreate( + async providersCustomCreate_unstable( params: CustomProviderCreateRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -298,7 +298,7 @@ export class GooseExtClient { ) as CustomProviderCreateResponse_unstable; } - async GooseUnstableProvidersCustomRead( + async providersCustomRead_unstable( params: CustomProviderReadRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -310,7 +310,7 @@ export class GooseExtClient { ) as CustomProviderReadResponse_unstable; } - async GooseUnstableProvidersCustomUpdate( + async providersCustomUpdate_unstable( params: CustomProviderUpdateRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -322,7 +322,7 @@ export class GooseExtClient { ) as CustomProviderUpdateResponse_unstable; } - async GooseUnstableProvidersCustomDelete( + async providersCustomDelete_unstable( params: CustomProviderDeleteRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -334,7 +334,7 @@ export class GooseExtClient { ) as CustomProviderDeleteResponse_unstable; } - async GooseUnstableProvidersInventoryRefresh( + async providersInventoryRefresh_unstable( params: RefreshProviderInventoryRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -346,7 +346,7 @@ export class GooseExtClient { ) as RefreshProviderInventoryResponse_unstable; } - async GooseUnstableProvidersConfigRead( + async providersConfigRead_unstable( params: ProviderConfigReadRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -358,7 +358,7 @@ export class GooseExtClient { ) as ProviderConfigReadResponse_unstable; } - async GooseUnstableProvidersConfigStatus( + async providersConfigStatus_unstable( params: ProviderConfigStatusRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -370,7 +370,7 @@ export class GooseExtClient { ) as ProviderConfigStatusResponse_unstable; } - async GooseUnstableProvidersConfigSave( + async providersConfigSave_unstable( params: ProviderConfigSaveRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -382,7 +382,7 @@ export class GooseExtClient { ) as ProviderConfigChangeResponse_unstable; } - async GooseUnstableProvidersConfigDelete( + async providersConfigDelete_unstable( params: ProviderConfigDeleteRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -394,7 +394,7 @@ export class GooseExtClient { ) as ProviderConfigChangeResponse_unstable; } - async GooseUnstableProvidersConfigAuthenticate( + async providersConfigAuthenticate_unstable( params: ProviderConfigAuthenticateRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -406,7 +406,7 @@ export class GooseExtClient { ) as ProviderConfigChangeResponse_unstable; } - async GooseUnstablePreferencesRead( + async preferencesRead_unstable( params: PreferencesReadRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -418,19 +418,19 @@ export class GooseExtClient { ) as PreferencesReadResponse_unstable; } - async GooseUnstablePreferencesSave( + async preferencesSave_unstable( params: PreferencesSaveRequest_unstable, ): Promise { await this.conn.extMethod("_goose/unstable/preferences/save", params); } - async GooseUnstablePreferencesRemove( + async preferencesRemove_unstable( params: PreferencesRemoveRequest_unstable, ): Promise { await this.conn.extMethod("_goose/unstable/preferences/remove", params); } - async GooseUnstableDefaultsRead( + async defaultsRead_unstable( params: DefaultsReadRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -442,7 +442,7 @@ export class GooseExtClient { ) as DefaultsReadResponse_unstable; } - async GooseUnstableDefaultsSave( + async defaultsSave_unstable( params: DefaultsSaveRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -454,7 +454,7 @@ export class GooseExtClient { ) as DefaultsReadResponse_unstable; } - async GooseUnstableOnboardingImportScan( + async onboardingImportScan_unstable( params: OnboardingImportScanRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -466,7 +466,7 @@ export class GooseExtClient { ) as OnboardingImportScanResponse_unstable; } - async GooseUnstableOnboardingImportApply( + async onboardingImportApply_unstable( params: OnboardingImportApplyRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -478,7 +478,7 @@ export class GooseExtClient { ) as OnboardingImportApplyResponse_unstable; } - async GooseUnstableSessionExport( + async sessionExport_unstable( params: ExportSessionRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -490,7 +490,7 @@ export class GooseExtClient { ) as ExportSessionResponse_unstable; } - async GooseUnstableSessionImport( + async sessionImport_unstable( params: ImportSessionRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -502,31 +502,31 @@ export class GooseExtClient { ) as ImportSessionResponse_unstable; } - async GooseUnstableSessionProjectUpdate( + async sessionProjectUpdate_unstable( params: UpdateSessionProjectRequest_unstable, ): Promise { await this.conn.extMethod("_goose/unstable/session/project/update", params); } - async GooseUnstableSessionRename( + async sessionRename_unstable( params: RenameSessionRequest_unstable, ): Promise { await this.conn.extMethod("_goose/unstable/session/rename", params); } - async GooseUnstableSessionArchive( + async sessionArchive_unstable( params: ArchiveSessionRequest_unstable, ): Promise { await this.conn.extMethod("_goose/unstable/session/archive", params); } - async GooseUnstableSessionUnarchive( + async sessionUnarchive_unstable( params: UnarchiveSessionRequest_unstable, ): Promise { await this.conn.extMethod("_goose/unstable/session/unarchive", params); } - async GooseUnstableSourcesCreate( + async sourcesCreate_unstable( params: CreateSourceRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -538,7 +538,7 @@ export class GooseExtClient { ) as CreateSourceResponse_unstable; } - async GooseUnstableSourcesList( + async sourcesList_unstable( params: ListSourcesRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -550,7 +550,7 @@ export class GooseExtClient { ) as ListSourcesResponse_unstable; } - async GooseUnstableSourcesUpdate( + async sourcesUpdate_unstable( params: UpdateSourceRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -562,13 +562,13 @@ export class GooseExtClient { ) as UpdateSourceResponse_unstable; } - async GooseUnstableSourcesDelete( + async sourcesDelete_unstable( params: DeleteSourceRequest_unstable, ): Promise { await this.conn.extMethod("_goose/unstable/sources/delete", params); } - async GooseUnstableSourcesExport( + async sourcesExport_unstable( params: ExportSourceRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -580,7 +580,7 @@ export class GooseExtClient { ) as ExportSourceResponse_unstable; } - async GooseUnstableSourcesImport( + async sourcesImport_unstable( params: ImportSourcesRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -592,7 +592,7 @@ export class GooseExtClient { ) as ImportSourcesResponse_unstable; } - async GooseUnstableDictationTranscribe( + async dictationTranscribe_unstable( params: DictationTranscribeRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -604,7 +604,7 @@ export class GooseExtClient { ) as DictationTranscribeResponse_unstable; } - async GooseUnstableDictationConfig( + async dictationConfig_unstable( params: DictationConfigRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -616,13 +616,13 @@ export class GooseExtClient { ) as DictationConfigResponse_unstable; } - async GooseUnstableDictationSecretSave( + async dictationSecretSave_unstable( params: DictationSecretSaveRequest_unstable, ): Promise { await this.conn.extMethod("_goose/unstable/dictation/secret/save", params); } - async GooseUnstableDictationSecretDelete( + async dictationSecretDelete_unstable( params: DictationSecretDeleteRequest_unstable, ): Promise { await this.conn.extMethod( @@ -631,7 +631,7 @@ export class GooseExtClient { ); } - async GooseUnstableDictationModelsList( + async dictationModelsList_unstable( params: DictationModelsListRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -643,7 +643,7 @@ export class GooseExtClient { ) as DictationModelsListResponse_unstable; } - async GooseUnstableDictationModelsDownload( + async dictationModelsDownload_unstable( params: DictationModelDownloadRequest_unstable, ): Promise { await this.conn.extMethod( @@ -652,7 +652,7 @@ export class GooseExtClient { ); } - async GooseUnstableDictationModelsDownloadProgress( + async dictationModelsDownloadProgress_unstable( params: DictationModelDownloadProgressRequest_unstable, ): Promise { const raw = await this.conn.extMethod( @@ -664,7 +664,7 @@ export class GooseExtClient { ) as DictationModelDownloadProgressResponse_unstable; } - async GooseUnstableDictationModelsCancel( + async dictationModelsCancel_unstable( params: DictationModelCancelRequest_unstable, ): Promise { await this.conn.extMethod( @@ -673,7 +673,7 @@ export class GooseExtClient { ); } - async GooseUnstableDictationModelsDelete( + async dictationModelsDelete_unstable( params: DictationModelDeleteRequest_unstable, ): Promise { await this.conn.extMethod( @@ -682,7 +682,7 @@ export class GooseExtClient { ); } - async GooseUnstableDictationModelsSelect( + async dictationModelsSelect_unstable( params: DictationModelSelectRequest_unstable, ): Promise { await this.conn.extMethod( From 8b3d264de3f6aca398627b2a1a40fe95fcdfa083 Mon Sep 17 00:00:00 2001 From: Jack Amadeo Date: Fri, 22 May 2026 16:07:54 -0400 Subject: [PATCH 8/8] Update usages --- ui/text/src/configure.tsx | 94 ++++++--- ui/text/src/extensions.tsx | 391 ++++++++++++++++++++++++++++--------- ui/text/src/onboarding.tsx | 182 +++++++++++------ ui/text/src/tui.tsx | 65 +++--- 4 files changed, 515 insertions(+), 217 deletions(-) diff --git a/ui/text/src/configure.tsx b/ui/text/src/configure.tsx index 4d9a8611191f..ef889d81ada4 100644 --- a/ui/text/src/configure.tsx +++ b/ui/text/src/configure.tsx @@ -60,7 +60,9 @@ const ModelSelector = React.memo(function ModelSelector({ useEffect(() => { const availableModels = provider.models.map((model) => model.id); setModels(availableModels); - const defaultIdx = availableModels.findIndex((model) => model === provider.defaultModel); + const defaultIdx = availableModels.findIndex( + (model) => model === provider.defaultModel, + ); setSelectedIdx(defaultIdx >= 0 ? defaultIdx : 0); setLoading(false); }, [provider.models, provider.defaultModel]); @@ -154,10 +156,14 @@ const ModelSelector = React.memo(function ModelSelector({ - ◆ Select model ◆ + + ◆ Select model ◆ + - Loading models for {provider.providerName}… + + Loading models for {provider.providerName}… + @@ -171,7 +177,9 @@ const ModelSelector = React.memo(function ModelSelector({ - ◆ Select model ◆ + + ◆ Select model ◆ + ⚠ No models available @@ -193,18 +201,23 @@ const ModelSelector = React.memo(function ModelSelector({ if (manualEntry) { const inputWidth = Math.min(60, maxWidth - 4); const displayText = searchQuery || "type model name…"; - const truncatedText = displayText.length > inputWidth - 6 - ? displayText.slice(0, inputWidth - 9) + "…" - : displayText; + const truncatedText = + displayText.length > inputWidth - 6 + ? displayText.slice(0, inputWidth - 9) + "…" + : displayText; return ( - ◆ Enter model name ◆ + + ◆ Enter model name ◆ + - Type a model identifier for {provider.providerName} + + Type a model identifier for {provider.providerName} + @@ -214,7 +227,9 @@ const ModelSelector = React.memo(function ModelSelector({ paddingX={2} width={inputWidth} > - {"❯ "} + + {"❯ "} + {truncatedText} @@ -236,7 +251,9 @@ const ModelSelector = React.memo(function ModelSelector({ {/* Header */} - ◆ Select model ◆ + + ◆ Select model ◆ + Choose a model for {provider.providerName} @@ -250,7 +267,9 @@ const ModelSelector = React.memo(function ModelSelector({ paddingX={2} width={searchBoxWidth} > - {"❯ "} + + {"❯ "} + {searchQuery || "search models…"} @@ -262,7 +281,11 @@ const ModelSelector = React.memo(function ModelSelector({ {/* Model List */} {filtered.length === 0 ? ( - + No matching models ) : ( @@ -279,16 +302,20 @@ const ModelSelector = React.memo(function ModelSelector({ const active = idx === selectedIdx; const isDefault = model === provider.defaultModel; const modelWidth = maxWidth - 8; - const truncatedModel = model.length > modelWidth - ? model.slice(0, modelWidth - 1) + "…" - : model; + const truncatedModel = + model.length > modelWidth + ? model.slice(0, modelWidth - 1) + "…" + : model; return ( {active ? "▸ " : " "} - + {truncatedModel} {isDefault && (default)} @@ -329,7 +356,8 @@ export default function ConfigureScreen({ }: ConfigureProps) { const [phase, setPhase] = useState("loading"); const [providers, setProviders] = useState([]); - const [selectedProvider, setSelectedProvider] = useState(null); + const [selectedProvider, setSelectedProvider] = + useState(null); const [errorMsg, setErrorMsg] = useState(""); const [spinIdx, setSpinIdx] = useState(0); const [fetchKey, setFetchKey] = useState(0); @@ -347,7 +375,9 @@ export default function ConfigureScreen({ (async () => { try { - const resp = await client.goose.GooseProvidersList({ providerIds: [] }); + const resp = await client.goose.providersList_unstable({ + providerIds: [], + }); if (cancelled) return; const sorted = [...resp.entries].sort((a, b) => { const aP = a.providerType === "Preferred" ? 0 : 1; @@ -359,7 +389,7 @@ export default function ConfigureScreen({ if (initialIntent === "model") { try { - const cfg = await client.goose.GooseDefaultsRead({}); + const cfg = await client.goose.defaultsRead_unstable({}); if (cancelled) return; const current = sorted.find((p) => p.providerId === cfg.providerId); if (current) { @@ -395,7 +425,7 @@ export default function ConfigureScreen({ ) => { setPhase("saving"); try { - await client.goose.GooseProvidersConfigSave({ + await client.goose.providersConfigSave_unstable({ providerId: provider.providerId, fields: Object.entries(configValues).map(([key, value]) => ({ key, @@ -421,7 +451,9 @@ export default function ConfigureScreen({ [client, sessionId, onComplete], ); - const [pendingConfigValues, setPendingConfigValues] = useState>({}); + const [pendingConfigValues, setPendingConfigValues] = useState< + Record + >({}); const handleProviderSelected = useCallback( (provider: ProviderInventoryEntryDto) => { @@ -463,15 +495,19 @@ export default function ConfigureScreen({ }, []); if (phase === "loading" || phase === "loading_models" || phase === "saving") { - const label = - phase === "loading" ? "Loading providers…" : - phase === "loading_models" ? "Loading models…" : - "Applying changes…"; + const label = + phase === "loading" + ? "Loading providers…" + : phase === "loading_models" + ? "Loading models…" + : "Applying changes…"; return ( - ◆ Configure provider ◆ + + ◆ Configure provider ◆ + {label} @@ -488,7 +524,9 @@ export default function ConfigureScreen({ - ◆ Configure provider ◆ + + ◆ Configure provider ◆ + diff --git a/ui/text/src/extensions.tsx b/ui/text/src/extensions.tsx index 47e098cbc0e2..82877b54cbd8 100644 --- a/ui/text/src/extensions.tsx +++ b/ui/text/src/extensions.tsx @@ -1,10 +1,17 @@ -import React, {useCallback, useEffect, useState} from "react"; -import {Box, Text, useInput, useStdout} from "ink"; -import {TextInput} from "@inkjs/ui"; -import type {GooseClient} from "@aaif/goose-sdk"; -import {CRANBERRY, GOLD, RULE_COLOR, TEAL, TEXT_DIM, TEXT_PRIMARY} from "./colors.js"; -import {Spinner, SPINNER_FRAMES} from "./components/Spinner.js"; -import {ErrorScreen} from "./components/ErrorScreen.js"; +import React, { useCallback, useEffect, useState } from "react"; +import { Box, Text, useInput, useStdout } from "ink"; +import { TextInput } from "@inkjs/ui"; +import type { GooseClient } from "@aaif/goose-sdk"; +import { + CRANBERRY, + GOLD, + RULE_COLOR, + TEAL, + TEXT_DIM, + TEXT_PRIMARY, +} from "./colors.js"; +import { Spinner, SPINNER_FRAMES } from "./components/Spinner.js"; +import { ErrorScreen } from "./components/ErrorScreen.js"; type ExtEntry = { enabled: boolean; @@ -15,29 +22,65 @@ type ExtEntry = { }; function isExtEntry(v: unknown): v is ExtEntry { - return !!v && typeof v === "object" && "enabled" in v && "type" in v && "name" in v - && typeof (v as ExtEntry).enabled === "boolean" - && typeof (v as ExtEntry).type === "string" - && typeof (v as ExtEntry).name === "string"; + return ( + !!v && + typeof v === "object" && + "enabled" in v && + "type" in v && + "name" in v && + typeof (v as ExtEntry).enabled === "boolean" && + typeof (v as ExtEntry).type === "string" && + typeof (v as ExtEntry).name === "string" + ); } type AddType = "stdio" | "streamable_http"; -type Phase = "loading" | "list" | "add_type" | "add_value" | "add_name" | "add_desc" | "saving" | "error"; +type Phase = + | "loading" + | "list" + | "add_type" + | "add_value" + | "add_name" + | "add_desc" + | "saving" + | "error"; function deriveNameFromValue(addType: AddType, value: string): string { if (addType === "stdio") { const cmd = value.trim().split(/\s+/)[0] ?? ""; return cmd.split("/").pop() ?? cmd; } - try { return new URL(value.trim()).hostname; } catch { return value.trim(); } + try { + return new URL(value.trim()).hostname; + } catch { + return value.trim(); + } } -function buildConfig(addType: AddType, value: string, name: string, description: string): ExtEntry { +function buildConfig( + addType: AddType, + value: string, + name: string, + description: string, +): ExtEntry { if (addType === "stdio") { const parts = value.trim().split(/\s+/); - return {type: "stdio", enabled: true, name, description, cmd: parts[0] ?? "", args: parts.slice(1)}; + return { + type: "stdio", + enabled: true, + name, + description, + cmd: parts[0] ?? "", + args: parts.slice(1), + }; } - return {type: "streamable_http", enabled: true, name, description, uri: value.trim()}; + return { + type: "streamable_http", + enabled: true, + name, + description, + uri: value.trim(), + }; } export default function ExtensionsManager({ @@ -51,7 +94,7 @@ export default function ExtensionsManager({ height: number; onClose: () => void; }) { - const {stdout} = useStdout(); + const { stdout } = useStdout(); const columns = stdout?.columns ?? 80; const [phase, setPhase] = useState("loading"); @@ -68,7 +111,10 @@ export default function ExtensionsManager({ const [inputKey, setInputKey] = useState(0); useEffect(() => { - const t = setInterval(() => setSpinIdx(i => (i + 1) % SPINNER_FRAMES.length), 300); + const t = setInterval( + () => setSpinIdx((i) => (i + 1) % SPINNER_FRAMES.length), + 300, + ); return () => clearInterval(t); }, []); @@ -76,16 +122,23 @@ export default function ExtensionsManager({ setPhase("loading"); try { const [configResp, sessionResp] = await Promise.all([ - client.goose.GooseConfigExtensionsList({}), - client.goose.GooseSessionExtensionsList({sessionId}), + client.goose.configExtensionsList_unstable({}), + client.goose.sessionExtensionsList_unstable({ sessionId }), ]); - const allExtensions = (configResp.extensions as unknown[]).filter(isExtEntry); + const allExtensions = (configResp.extensions as unknown[]).filter( + isExtEntry, + ); const activeNames = new Set( - (sessionResp.extensions as Array<{name?: string}>).map(e => e.name), + (sessionResp.extensions as Array<{ name?: string }>).map((e) => e.name), ); - setEntries(allExtensions.map(ext => ({...ext, enabled: activeNames.has(ext.name)}))); + setEntries( + allExtensions.map((ext) => ({ + ...ext, + enabled: activeNames.has(ext.name), + })), + ); setWarnings(configResp.warnings ?? []); setPhase("list"); } catch (e: unknown) { @@ -94,60 +147,115 @@ export default function ExtensionsManager({ } }, [client, sessionId]); - useEffect(() => { reload(); }, [reload]); - - const withSaving = useCallback(async (fn: () => Promise) => { - setPhase("saving"); - try { - await fn(); - await reload(); - } catch (e: unknown) { - setErrorMsg(e instanceof Error ? e.message : String(e)); - setPhase("error"); - } + useEffect(() => { + reload(); }, [reload]); + const withSaving = useCallback( + async (fn: () => Promise) => { + setPhase("saving"); + try { + await fn(); + await reload(); + } catch (e: unknown) { + setErrorMsg(e instanceof Error ? e.message : String(e)); + setPhase("error"); + } + }, + [reload], + ); + const toggleSelected = useCallback(() => { const sel = entries[selectedIdx]; if (!sel) return; withSaving(async () => { if (sel.enabled) { - await client.goose.GooseSessionExtensionsRemove({sessionId, name: sel.name}); + await client.goose.sessionExtensionsRemove_unstable({ + sessionId, + name: sel.name, + }); } else { - await client.goose.GooseSessionExtensionsAdd({sessionId, config: sel as any}); + await client.goose.sessionExtensionsAdd_unstable({ + sessionId, + config: sel as any, + }); } }); }, [entries, selectedIdx, client, sessionId, withSaving]); - const saveNewExtension = useCallback((description: string) => { - const config = buildConfig(addType, addValue, addName, description); - withSaving(async () => { - await client.goose.GooseConfigExtensionsAdd({ - name: config.name, - extensionConfig: config as any, - enabled: true, + const saveNewExtension = useCallback( + (description: string) => { + const config = buildConfig(addType, addValue, addName, description); + withSaving(async () => { + await client.goose.configExtensionsAdd_unstable({ + name: config.name, + extensionConfig: config as any, + enabled: true, + }); + await client.goose.sessionExtensionsAdd_unstable({ + sessionId, + config: config as any, + }); }); - await client.goose.GooseSessionExtensionsAdd({sessionId, config: config as any}); - }); - }, [addType, addValue, addName, client, sessionId, withSaving]); + }, + [addType, addValue, addName, client, sessionId, withSaving], + ); useInput((ch, key) => { if (phase === "list") { - if (key.escape) { onClose(); return; } - if (key.upArrow) { setSelectedIdx(i => Math.max(i - 1, 0)); return; } - if (key.downArrow) { setSelectedIdx(i => Math.min(i + 1, entries.length - 1)); return; } - if (ch === " " || key.return) { toggleSelected(); return; } - if (ch === "a") { setAddType("stdio"); setPhase("add_type"); return; } + if (key.escape) { + onClose(); + return; + } + if (key.upArrow) { + setSelectedIdx((i) => Math.max(i - 1, 0)); + return; + } + if (key.downArrow) { + setSelectedIdx((i) => Math.min(i + 1, entries.length - 1)); + return; + } + if (ch === " " || key.return) { + toggleSelected(); + return; + } + if (ch === "a") { + setAddType("stdio"); + setPhase("add_type"); + return; + } } if (phase === "add_type") { - if (key.escape) { setPhase("list"); return; } - if (key.upArrow || key.downArrow) { setAddType(t => t === "stdio" ? "streamable_http" : "stdio"); return; } - if (key.return) { setAddValue(""); setInputKey(k => k + 1); setPhase("add_value"); return; } + if (key.escape) { + setPhase("list"); + return; + } + if (key.upArrow || key.downArrow) { + setAddType((t) => (t === "stdio" ? "streamable_http" : "stdio")); + return; + } + if (key.return) { + setAddValue(""); + setInputKey((k) => k + 1); + setPhase("add_value"); + return; + } } if (key.escape) { - if (phase === "add_value") { setPhase("add_type"); return; } - if (phase === "add_name") { setInputKey(k => k + 1); setPhase("add_value"); return; } - if (phase === "add_desc") { setInputKey(k => k + 1); setPhase("add_name"); return; } + if (phase === "add_value") { + setPhase("add_type"); + return; + } + if (phase === "add_name") { + setInputKey((k) => k + 1); + setPhase("add_value"); + return; + } + if (phase === "add_desc") { + setInputKey((k) => k + 1); + setPhase("add_name"); + return; + } } }); @@ -156,10 +264,14 @@ export default function ExtensionsManager({ - ◆ Manage extensions ◆ + + ◆ Manage extensions ◆ + - {phase === "loading" ? "Loading extensions…" : "Saving…"} + + {phase === "loading" ? "Loading extensions…" : "Saving…"} + @@ -173,7 +285,9 @@ export default function ExtensionsManager({ - ◆ Manage extensions ◆ + + ◆ Manage extensions ◆ + reload()} /> @@ -184,28 +298,38 @@ export default function ExtensionsManager({ const inputW = Math.min(maxW - 10, 70); if (phase === "add_type") { - const types: {value: AddType; label: string; hint: string}[] = [ - {value: "stdio", label: "Command (stdio)", hint: "run a local command"}, - {value: "streamable_http", label: "Endpoint (HTTP)", hint: "connect to a remote server"}, + const types: { value: AddType; label: string; hint: string }[] = [ + { value: "stdio", label: "Command (stdio)", hint: "run a local command" }, + { + value: "streamable_http", + label: "Endpoint (HTTP)", + hint: "connect to a remote server", + }, ]; return ( - ◆ Add extension ◆ + + ◆ Add extension ◆ + Choose a connection type - {types.map(t => { + {types.map((t) => { const active = addType === t.value; return ( - {active ? "▸ " : " "} - {t.label} - {t.hint} + + {active ? "▸ " : " "} + + + {t.label} + + {t.hint} ); })} @@ -227,14 +351,27 @@ export default function ExtensionsManager({ - ◆ {isStdio ? "Enter command" : "Enter endpoint URL"} ◆ + + ◆ {isStdio ? "Enter command" : "Enter endpoint URL"} ◆ + - {isStdio ? "The command to launch the extension" : "URL of the remote MCP server"} + + {isStdio + ? "The command to launch the extension" + : "URL of the remote MCP server"} + - - {"❯ "} + + + {"❯ "} + k + 1); + setInputKey((k) => k + 1); setPhase("add_name"); }} /> @@ -261,14 +398,23 @@ export default function ExtensionsManager({ - ◆ Name this extension ◆ + + ◆ Name this extension ◆ + A short name to identify this extension - - {"❯ "} + + + {"❯ "} + k + 1); + setInputKey((k) => k + 1); setPhase("add_desc"); }} /> @@ -296,14 +442,23 @@ export default function ExtensionsManager({ - ◆ Description ◆ + + ◆ Description ◆ + What does this extension do? (optional) - - {"❯ "} + + + {"❯ "} + - enter save (leave empty to skip) · esc back + + enter save (leave empty to skip) · esc back + ); @@ -322,12 +479,15 @@ export default function ExtensionsManager({ const layoutW = maxW; const GUTTER = 2; const STATUS_W = 10; - const nameW = Math.max(16, Math.floor(layoutW * 0.30)); + const nameW = Math.max(16, Math.floor(layoutW * 0.3)); const descW = Math.max(8, layoutW - 2 - STATUS_W - nameW - 2 * GUTTER); const rows = Math.max(height - 9, 4); const maxStart = Math.max(0, entries.length - rows); - const start = Math.min(maxStart, Math.max(0, selectedIdx - Math.floor(rows / 2))); + const start = Math.min( + maxStart, + Math.max(0, selectedIdx - Math.floor(rows / 2)), + ); const end = Math.min(entries.length, start + rows); const windowed = entries.slice(start, end); @@ -336,17 +496,27 @@ export default function ExtensionsManager({ {/* Header */} - ◆ Manage extensions ◆ + + ◆ Manage extensions ◆ + - Toggle, add, or remove extensions for this session + + Toggle, add, or remove extensions for this session + {/* Extension List */} {entries.length === 0 ? ( - - No extensions configured — press a to add one + + + No extensions configured — press a to add one + ) : ( <> @@ -362,12 +532,37 @@ export default function ExtensionsManager({ const active = globalIdx === selectedIdx; return ( - {active ? "▸ " : " "} - {ext.name} - {" ".repeat(GUTTER)} - {ext.description || ""} - {" ".repeat(GUTTER)} - {ext.enabled ? "enabled" : "disabled"} + + {active ? "▸ " : " "} + + + + {ext.name} + + + + {" ".repeat(GUTTER)} + + + + {ext.description || ""} + + + + {" ".repeat(GUTTER)} + + + + {ext.enabled ? "enabled" : "disabled"} + + ); })} @@ -375,7 +570,9 @@ export default function ExtensionsManager({ {end < entries.length && ( - ▼ {entries.length - end} more below + + ▼ {entries.length - end} more below + )} @@ -387,7 +584,11 @@ export default function ExtensionsManager({ Warnings {warnings.map((w, i) => ( - • {w} + + + • {w} + + ))} diff --git a/ui/text/src/onboarding.tsx b/ui/text/src/onboarding.tsx index 8df1ba84d6e7..485d3aface67 100644 --- a/ui/text/src/onboarding.tsx +++ b/ui/text/src/onboarding.tsx @@ -1,6 +1,6 @@ import React, { useState, useEffect, useCallback } from "react"; import { Box, Text, useInput, useStdout } from "ink"; -import { TextInput, PasswordInput } from '@inkjs/ui'; +import { TextInput, PasswordInput } from "@inkjs/ui"; import type { GooseClient, ProviderInventoryEntryDto } from "@aaif/goose-sdk"; import { CRANBERRY, @@ -38,7 +38,14 @@ export interface ProviderSelectorProps { onBack?: () => void; } -export const ProviderSelector = React.memo(function ProviderSelector({ providers, height, onSelect, title, subtitle, onBack }: ProviderSelectorProps) { +export const ProviderSelector = React.memo(function ProviderSelector({ + providers, + height, + onSelect, + title, + subtitle, + onBack, +}: ProviderSelectorProps) { const [selectedIdx, setSelectedIdx] = useState(0); const [searchQuery, setSearchQuery] = useState(""); const { stdout } = useStdout(); @@ -55,27 +62,38 @@ export const ProviderSelector = React.memo(function ProviderSelector({ providers })(); // Calculate grid dimensions based on terminal size - const cardWidth = 36; // Width of each provider card - const cardHeight = 8; // Height of each provider card - const minSpacing = 2; // Minimum spacing between cards - + const cardWidth = 36; // Width of each provider card + const cardHeight = 8; // Height of each provider card + const minSpacing = 2; // Minimum spacing between cards + const availableWidth = columns - 4; // Leave margins // Header: marginTop(1) + title+mb(2) + subtitle+mb(3) + searchbar+mb(5) = 11 // Footer: mt(2) + text(1) = 3, plus potential scroll indicators(2) const availableHeight = height - 16; - - const cardsPerRow = Math.max(1, Math.floor(availableWidth / (cardWidth + minSpacing))); + + const cardsPerRow = Math.max( + 1, + Math.floor(availableWidth / (cardWidth + minSpacing)), + ); // Cap horizontal gap so it doesn't grow unbounded on wide terminals - const columnSpacing = Math.min(minSpacing, Math.floor((availableWidth - (cardsPerRow * cardWidth)) / Math.max(1, cardsPerRow - 1))); + const columnSpacing = Math.min( + minSpacing, + Math.floor( + (availableWidth - cardsPerRow * cardWidth) / Math.max(1, cardsPerRow - 1), + ), + ); // Terminal chars are ~2× taller than wide, so 1 row ≈ 2 columns visually const rowSpacing = 1; - const rowsVisible = Math.max(1, Math.floor((availableHeight + rowSpacing) / (cardHeight + rowSpacing))); - + const rowsVisible = Math.max( + 1, + Math.floor((availableHeight + rowSpacing) / (cardHeight + rowSpacing)), + ); + const totalRows = Math.ceil(filtered.length / cardsPerRow); const selectedRow = Math.floor(selectedIdx / cardsPerRow); // Calculate scroll offset for rows const [scrollRow, setScrollRow] = useState(0); - + useEffect(() => { if (selectedRow < scrollRow) { setScrollRow(selectedRow); @@ -159,7 +177,7 @@ export const ProviderSelector = React.memo(function ProviderSelector({ providers const cardBorder = isSelected ? "double" : "single"; const cardBorderColor = isSelected ? GOLD : RULE_COLOR; const textColor = isSelected ? TEXT_PRIMARY : TEXT_SECONDARY; - + // Calculate actual content width: cardWidth - borders (2) - paddingX (2) const contentWidth = cardWidth - 4; // Width for title (leave space for icons: 2-3 chars) @@ -167,7 +185,7 @@ export const ProviderSelector = React.memo(function ProviderSelector({ providers // Available lines for description: cardHeight - borders (2) - title (1) - margin (1) - name (1) - margin (1) const descriptionMaxLines = Math.max(1, cardHeight - 6); const descriptionMaxChars = descriptionMaxLines * contentWidth; - + return ( )} - {provider.configured && ( - - )} + {provider.configured && } - + @@ -216,22 +232,33 @@ export const ProviderSelector = React.memo(function ProviderSelector({ providers }; const visibleRows = []; - for (let row = scrollRow; row < Math.min(scrollRow + rowsVisible, totalRows); row++) { + for ( + let row = scrollRow; + row < Math.min(scrollRow + rowsVisible, totalRows); + row++ + ) { const rowProviders = []; for (let col = 0; col < cardsPerRow; col++) { const index = row * cardsPerRow + col; if (index < filtered.length) { const isSelected = index === selectedIdx; - rowProviders.push(renderProviderCard(filtered[index], index, isSelected)); + rowProviders.push( + renderProviderCard(filtered[index], index, isSelected), + ); } } - + if (rowProviders.length > 0) { - const isLastVisibleRow = row === Math.min(scrollRow + rowsVisible, totalRows) - 1; + const isLastVisibleRow = + row === Math.min(scrollRow + rowsVisible, totalRows) - 1; visibleRows.push( - + {rowProviders} - + , ); } } @@ -250,7 +277,7 @@ export const ProviderSelector = React.memo(function ProviderSelector({ providers {subtitle ?? "Connect an AI model provider to get started"} - + {/* Search Bar */} {scrollRow > 0 && ( - ▲ {scrollRow * cardsPerRow} more above + + ▲ {scrollRow * cardsPerRow} more above + )} - + - - {visibleRows} - + {visibleRows} - + {scrollRow + rowsVisible < totalRows && ( - ▼ {filtered.length - (scrollRow + rowsVisible) * cardsPerRow} more below + ▼ {filtered.length - (scrollRow + rowsVisible) * cardsPerRow}{" "} + more below )} @@ -302,7 +330,8 @@ export const ProviderSelector = React.memo(function ProviderSelector({ providers {/* Footer */} - ↑↓←→ navigate · enter select · type to search{onBack ? " · esc back" : " · esc clear"} + ↑↓←→ navigate · enter select · type to search + {onBack ? " · esc back" : " · esc clear"} @@ -316,7 +345,12 @@ export interface ProviderConfiguratorProps { onBack: () => void; } -export const ProviderConfigurator = React.memo(function ProviderConfigurator({ provider, height, onComplete, onBack }: ProviderConfiguratorProps) { +export const ProviderConfigurator = React.memo(function ProviderConfigurator({ + provider, + height, + onComplete, + onBack, +}: ProviderConfiguratorProps) { const [keyValues, setKeyValues] = useState>({}); const [activeKeyIdx, setActiveKeyIdx] = useState(0); const [showMasked, setShowMasked] = useState>({}); @@ -354,7 +388,7 @@ export const ProviderConfigurator = React.memo(function ProviderConfigurator({ p if (activeKeyIdx < keys.length - 1) { setActiveKeyIdx(activeKeyIdx + 1); setShowMasked({}); - setInputKey(prev => prev + 1); // Force new input component + setInputKey((prev) => prev + 1); // Force new input component } else { onComplete(newValues); } @@ -376,12 +410,20 @@ export const ProviderConfigurator = React.memo(function ProviderConfigurator({ p const headerHeight = 1 + (provider.description ? 2 : 0) + 1; // title + description + spacer const keysHeight = keys.length; // one line per key const inputHeight = currentKey ? 3 : 0; // input + help text + spacing - const setupStepsHeight = provider.setupSteps?.length ? provider.setupSteps.length + 1 : 0; - const contentHeight = headerHeight + keysHeight + inputHeight + setupStepsHeight; + const setupStepsHeight = provider.setupSteps?.length + ? provider.setupSteps.length + 1 + : 0; + const contentHeight = + headerHeight + keysHeight + inputHeight + setupStepsHeight; const topPad = Math.max(0, Math.floor((height - contentHeight) / 2)); return ( - + {topPad > 0 && } {/* Header */} @@ -393,7 +435,9 @@ export const ProviderConfigurator = React.memo(function ProviderConfigurator({ p {provider.description && ( - {provider.description} + + {provider.description} + )} @@ -411,9 +455,7 @@ export const ProviderConfigurator = React.memo(function ProviderConfigurator({ p > {k.name} - {i < activeKeyIdx && ( - •••••• - )} + {i < activeKeyIdx && ••••••} ))} @@ -458,19 +500,18 @@ export const ProviderConfigurator = React.memo(function ProviderConfigurator({ p )} {/* Setup Steps */} - {provider.setupSteps && - provider.setupSteps.length > 0 && ( - - Setup steps: - {provider.setupSteps.map((step, i) => ( - - - {i + 1}. {step} - - - ))} - - )} + {provider.setupSteps && provider.setupSteps.length > 0 && ( + + Setup steps: + {provider.setupSteps.map((step, i) => ( + + + {i + 1}. {step} + + + ))} + + )} ); @@ -481,7 +522,10 @@ interface SuccessScreenProps { height: number; } -const SuccessScreen = React.memo(function SuccessScreen({ provider, height }: SuccessScreenProps) { +const SuccessScreen = React.memo(function SuccessScreen({ + provider, + height, +}: SuccessScreenProps) { const { stdout } = useStdout(); const columns = stdout?.columns ?? 80; @@ -539,7 +583,9 @@ export default function Onboarding({ useEffect(() => { (async () => { try { - const resp = await client.goose.GooseProvidersList({ providerIds: [] }); + const resp = await client.goose.providersList_unstable({ + providerIds: [], + }); const sorted = [...resp.entries].sort((a, b) => { const aP = a.providerType === "Preferred" ? 0 : 1; const bP = b.providerType === "Preferred" ? 0 : 1; @@ -556,10 +602,13 @@ export default function Onboarding({ }, [client, fetchKey]); const saveProvider = useCallback( - async (provider: ProviderInventoryEntryDto, values: Record) => { + async ( + provider: ProviderInventoryEntryDto, + values: Record, + ) => { setPhase("saving"); try { - await client.goose.GooseProvidersConfigSave({ + await client.goose.providersConfigSave_unstable({ providerId: provider.providerId, fields: Object.entries(values).map(([key, value]) => ({ key, @@ -600,7 +649,7 @@ export default function Onboarding({ if (phase === "loading") { const contentHeight = 3; // spinner + text + spacing const topPad = Math.max(0, Math.floor((height - contentHeight) / 2)); - + return ( + ); @@ -631,7 +685,7 @@ export default function Onboarding({ if (phase === "saving") { const contentHeight = 3; // spinner + text + spacing const topPad = Math.max(0, Math.floor((height - contentHeight) / 2)); - + return ( - ); + return ; } if (phase === "configure" && selectedProvider) { diff --git a/ui/text/src/tui.tsx b/ui/text/src/tui.tsx index d88a15ac3256..5be8a2dfbb9b 100644 --- a/ui/text/src/tui.tsx +++ b/ui/text/src/tui.tsx @@ -1,5 +1,11 @@ #!/usr/bin/env node -import React, { useState, useEffect, useCallback, useMemo, useRef } from "react"; +import React, { + useState, + useEffect, + useCallback, + useMemo, + useRef, +} from "react"; import { Box, Text, render, useApp, useInput, useStdout } from "ink"; import { MultilineInput } from "ink-multiline-input"; import meow from "meow"; @@ -172,7 +178,9 @@ const InputBar = React.memo(function InputBar({ {scrollHint && ( - ↑↓ scroll · ⌥↑↓ fast · shift+↑↓ history + + ↑↓ scroll · ⌥↑↓ fast · shift+↑↓ history + )} ) : ( @@ -200,7 +208,9 @@ const InputBar = React.memo(function InputBar({ }} /> {scrollHint && ( - ↑↓ scroll · ⌥↑↓ fast · shift+↑↓ history + + ↑↓ scroll · ⌥↑↓ fast · shift+↑↓ history + )} )} @@ -792,7 +802,7 @@ function App({ setStatus("checking provider…"); let hasProvider = false; try { - const resp = await client.goose.GooseDefaultsRead({}); + const resp = await client.goose.defaultsRead_unstable({}); hasProvider = resp.providerId != null && resp.providerId !== "" && @@ -831,31 +841,28 @@ function App({ exit, ]); - const addLocalTurn = useCallback( - (userText: string, message?: string) => { - setTurns((prev) => [ - ...prev, - { - userText, - responseItems: message - ? [ - { - itemType: "content_chunk", - content: { type: "text", text: message }, - }, - ] - : [], - toolCallsById: new Map(), - }, - ]); - setViewTurnIdx(-1); - setSelectedToolCallIdx(null); - setToolCallExpanded(false); - setToolCallExpandedScroll(0); - setScrollOffset(0); - }, - [], - ); + const addLocalTurn = useCallback((userText: string, message?: string) => { + setTurns((prev) => [ + ...prev, + { + userText, + responseItems: message + ? [ + { + itemType: "content_chunk", + content: { type: "text", text: message }, + }, + ] + : [], + toolCallsById: new Map(), + }, + ]); + setViewTurnIdx(-1); + setSelectedToolCallIdx(null); + setToolCallExpanded(false); + setToolCallExpandedScroll(0); + setScrollOffset(0); + }, []); const runSlashCommand = useCallback( (raw: string): boolean => {