feat: acp methods for config extensions (#9581)

This commit is contained in:
Lifei Zhou
2026-06-05 18:08:19 +10:00
committed by GitHub
parent 65b72b2988
commit 2f99664222
15 changed files with 2046 additions and 157 deletions
+68 -2
View File
@@ -1,11 +1,77 @@
import type { ExtensionResponse, ExtensionEntry } from '../api';
import type { GooseExtensionEntry, McpServer } from '@aaif/goose-sdk';
import { getAcpClient } from './acpConnection';
function headersToRecord(headers: { name: string; value: string }[] = []) {
return Object.fromEntries(headers.map(({ name, value }) => [name, value]));
}
function mcpServerToExtension(
server: McpServer,
entry: GooseExtensionEntry
): ExtensionEntry | null {
const extension = entry.extension;
if (extension.type !== 'mcp') {
return null;
}
if ('command' in server) {
return {
type: 'stdio',
enabled: entry.enabled,
name: server.name,
description: extension.description ?? '',
cmd: server.command,
args: server.args,
env_keys: extension.envKeys ?? [],
timeout: extension.timeout,
bundled: extension.bundled,
};
}
if ('url' in server) {
return {
type: 'streamable_http',
enabled: entry.enabled,
name: server.name,
description: extension.description ?? '',
uri: server.url,
headers: headersToRecord(server.headers),
env_keys: extension.envKeys ?? [],
timeout: extension.timeout,
socket: extension.socket,
bundled: extension.bundled,
};
}
return null;
}
function gooseExtensionEntryToExtensionEntry(entry: GooseExtensionEntry): ExtensionEntry | null {
const extension = entry.extension;
switch (extension.type) {
case 'builtin':
case 'platform':
return {
...extension,
description: extension.description ?? '',
enabled: entry.enabled,
};
case 'mcp':
return mcpServerToExtension(extension.server, entry);
}
return null;
}
export async function getConfiguredExtensions(): Promise<ExtensionResponse> {
const client = await getAcpClient();
const response = await client.goose.configExtensionsList_unstable({});
return {
extensions: response.extensions as ExtensionEntry[],
warnings: response.warnings,
extensions: response.extensions
.map(gooseExtensionEntryToExtensionEntry)
.filter((entry): entry is ExtensionEntry => entry !== null),
warnings: response.warnings ?? [],
};
}
+26 -11
View File
@@ -46,8 +46,10 @@ import type {
ExportSessionResponse_unstable,
ExportSourceRequest_unstable,
ExportSourceResponse_unstable,
GetExtensionsRequest_unstable,
GetExtensionsResponse_unstable,
GetAvailableExtensionsRequest_unstable,
GetAvailableExtensionsResponse_unstable,
GetConfigExtensionsRequest_unstable,
GetConfigExtensionsResponse_unstable,
GetSessionExtensionsRequest_unstable,
GetSessionExtensionsResponse_unstable,
GetToolsRequest_unstable,
@@ -94,8 +96,8 @@ import type {
RemoveConfigExtensionRequest_unstable,
RemoveExtensionRequest_unstable,
RenameSessionRequest_unstable,
SetConfigExtensionEnabledRequest_unstable,
SetSessionSystemPromptRequest_unstable,
ToggleConfigExtensionRequest_unstable,
UnarchiveSessionRequest_unstable,
UpdateSessionProjectRequest_unstable,
UpdateSourceRequest_unstable,
@@ -115,7 +117,8 @@ import {
zDictationTranscribeResponse_unstable,
zExportSessionResponse_unstable,
zExportSourceResponse_unstable,
zGetExtensionsResponse_unstable,
zGetAvailableExtensionsResponse_unstable,
zGetConfigExtensionsResponse_unstable,
zGetSessionExtensionsResponse_unstable,
zGetToolsResponse_unstable,
zGooseSessionNotification_unstable,
@@ -208,15 +211,27 @@ export class GooseExtClient {
}
async configExtensionsList_unstable(
params: GetExtensionsRequest_unstable,
): Promise<GetExtensionsResponse_unstable> {
params: GetConfigExtensionsRequest_unstable,
): Promise<GetConfigExtensionsResponse_unstable> {
const raw = await this.conn.extMethod(
"_goose/unstable/config/extensions/list",
params,
);
return zGetExtensionsResponse_unstable.parse(
return zGetConfigExtensionsResponse_unstable.parse(
raw,
) as GetExtensionsResponse_unstable;
) as GetConfigExtensionsResponse_unstable;
}
async extensionsAvailable_unstable(
params: GetAvailableExtensionsRequest_unstable,
): Promise<GetAvailableExtensionsResponse_unstable> {
const raw = await this.conn.extMethod(
"_goose/unstable/extensions/available",
params,
);
return zGetAvailableExtensionsResponse_unstable.parse(
raw,
) as GetAvailableExtensionsResponse_unstable;
}
async configExtensionsAdd_unstable(
@@ -234,11 +249,11 @@ export class GooseExtClient {
);
}
async configExtensionsToggle_unstable(
params: ToggleConfigExtensionRequest_unstable,
async configExtensionsSetEnabled_unstable(
params: SetConfigExtensionEnabledRequest_unstable,
): Promise<void> {
await this.conn.extMethod(
"_goose/unstable/config/extensions/toggle",
"_goose/unstable/config/extensions/set-enabled",
params,
);
}
+10 -5
View File
@@ -1,6 +1,6 @@
// This file is auto-generated by @hey-api/openapi-ts
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, ElicitationRespondRequest_unstable, EmptyResponse, ExportSessionRequest_unstable, ExportSessionResponse_unstable, ExportSourceRequest_unstable, ExportSourceResponse_unstable, ExtNotification, ExtRequest, ExtResponse, GetExtensionsRequest_unstable, GetExtensionsResponse_unstable, GetSessionExtensionsRequest_unstable, GetSessionExtensionsResponse_unstable, GetToolsRequest_unstable, GetToolsResponse_unstable, GooseSessionNotification_unstable, GooseSessionUpdate, GooseToolCallRequest_unstable, GooseToolCallResponse_unstable, ImportSessionRequest_unstable, ImportSessionResponse_unstable, ImportSourcesRequest_unstable, ImportSourcesResponse_unstable, Interaction, InteractionState, InteractionUpdate, 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, ProviderSupportedModelsListRequest_unstable, ProviderSupportedModelsListResponse_unstable, ProviderTemplateCapabilitiesDto, ProviderTemplateCatalogEntryDto, ProviderTemplateDto, ProviderTemplateModelDto, ReadResourceRequest_unstable, ReadResourceResponse_unstable, RefreshProviderInventoryRequest_unstable, RefreshProviderInventoryResponse_unstable, RefreshProviderInventorySkipDto, RefreshProviderInventorySkipReasonDto, RemoveConfigExtensionRequest_unstable, RemoveExtensionRequest_unstable, RenameSessionRequest_unstable, SessionSystemPromptMode, SessionUsageUpdate, SetSessionSystemPromptRequest_unstable, SourceEntry, SourceScope, SourceType, StatusMessage, StatusMessageUpdate, ToggleConfigExtensionRequest_unstable, UnarchiveSessionRequest_unstable, UpdateSessionProjectRequest_unstable, UpdateSourceRequest_unstable, UpdateSourceResponse_unstable, UpdateWorkingDirRequest_unstable } 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, ElicitationRespondRequest_unstable, EmptyResponse, EnvVariable, ExportSessionRequest_unstable, ExportSessionResponse_unstable, ExportSourceRequest_unstable, ExportSourceResponse_unstable, ExtNotification, ExtRequest, ExtResponse, GetAvailableExtensionsRequest_unstable, GetAvailableExtensionsResponse_unstable, GetConfigExtensionsRequest_unstable, GetConfigExtensionsResponse_unstable, GetSessionExtensionsRequest_unstable, GetSessionExtensionsResponse_unstable, GetToolsRequest_unstable, GetToolsResponse_unstable, GooseExtension, GooseExtensionEntry, GooseSessionNotification_unstable, GooseSessionUpdate, GooseToolCallRequest_unstable, GooseToolCallResponse_unstable, HttpHeader, ImportSessionRequest_unstable, ImportSessionResponse_unstable, ImportSourcesRequest_unstable, ImportSourcesResponse_unstable, Interaction, InteractionState, InteractionUpdate, ListProvidersRequest_unstable, ListProvidersResponse_unstable, ListSourcesRequest_unstable, ListSourcesResponse_unstable, McpServer, McpServerHttp, McpServerSse, McpServerStdio, 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, ProviderSupportedModelsListRequest_unstable, ProviderSupportedModelsListResponse_unstable, ProviderTemplateCapabilitiesDto, ProviderTemplateCatalogEntryDto, ProviderTemplateDto, ProviderTemplateModelDto, ReadResourceRequest_unstable, ReadResourceResponse_unstable, RefreshProviderInventoryRequest_unstable, RefreshProviderInventoryResponse_unstable, RefreshProviderInventorySkipDto, RefreshProviderInventorySkipReasonDto, RemoveConfigExtensionRequest_unstable, RemoveExtensionRequest_unstable, RenameSessionRequest_unstable, SessionSystemPromptMode, SessionUsageUpdate, SetConfigExtensionEnabledRequest_unstable, SetSessionSystemPromptRequest_unstable, SourceEntry, SourceScope, SourceType, StatusMessage, StatusMessageUpdate, UnarchiveSessionRequest_unstable, UpdateSessionProjectRequest_unstable, UpdateSourceRequest_unstable, UpdateSourceResponse_unstable, UpdateWorkingDirRequest_unstable } from './types.gen.js';
export const GOOSE_EXT_METHODS = [
{
@@ -45,8 +45,13 @@ export const GOOSE_EXT_METHODS = [
},
{
method: "_goose/unstable/config/extensions/list",
requestType: "GetExtensionsRequest_unstable",
responseType: "GetExtensionsResponse_unstable",
requestType: "GetConfigExtensionsRequest_unstable",
responseType: "GetConfigExtensionsResponse_unstable",
},
{
method: "_goose/unstable/extensions/available",
requestType: "GetAvailableExtensionsRequest_unstable",
responseType: "GetAvailableExtensionsResponse_unstable",
},
{
method: "_goose/unstable/config/extensions/add",
@@ -59,8 +64,8 @@ export const GOOSE_EXT_METHODS = [
responseType: "EmptyResponse",
},
{
method: "_goose/unstable/config/extensions/toggle",
requestType: "ToggleConfigExtensionRequest_unstable",
method: "_goose/unstable/config/extensions/set-enabled",
requestType: "SetConfigExtensionEnabledRequest_unstable",
responseType: "EmptyResponse",
},
{
+195 -16
View File
@@ -119,32 +119,211 @@ export type DeleteSessionRequest = {
/**
* List configured extensions and any warnings.
*/
export type GetExtensionsRequest_unstable = {
export type GetConfigExtensionsRequest_unstable = {
[key: string]: unknown;
};
/**
* List configured extensions and any warnings.
*/
export type GetExtensionsResponse_unstable = {
export type GetConfigExtensionsResponse_unstable = {
extensions: Array<GooseExtensionEntry>;
warnings?: Array<string>;
};
export type GooseExtensionEntry = {
extension: GooseExtension;
enabled: boolean;
configKey?: string | null;
};
export type GooseExtension = {
name: string;
description?: string | null;
display_name?: string | null;
timeout?: number | null;
bundled?: boolean | null;
type: 'builtin';
} | {
name: string;
description?: string | null;
display_name?: string | null;
bundled?: boolean | null;
type: 'platform';
} | {
server: McpServer;
envKeys?: Array<string>;
description?: string | null;
timeout?: number | null;
socket?: string | null;
bundled?: boolean | null;
type: 'mcp';
};
/**
* Configuration for connecting to an MCP (Model Context Protocol) server.
*
* MCP servers provide tools and context that the agent can use when
* processing prompts.
*
* See protocol docs: [MCP Servers](https://agentclientprotocol.com/protocol/session-setup#mcp-servers)
*/
export type McpServer = McpServerHttp | McpServerSse | McpServerStdio;
/**
* An HTTP header to set when making requests to the MCP server.
*/
export type HttpHeader = {
/**
* Array of ExtensionEntry objects with `enabled` flag, `configKey`, and flattened config details.
* The name of the HTTP header.
*/
extensions: Array<unknown>;
warnings: Array<string>;
name: string;
/**
* The value to set for the HTTP header.
*/
value: string;
/**
* The _meta property is reserved by ACP to allow clients and agents to attach additional
* metadata to their interactions. Implementations MUST NOT make assumptions about values at
* these keys.
*
* See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
*/
_meta?: {
[key: string]: unknown;
} | null;
};
/**
* HTTP transport configuration for MCP.
*/
export type McpServerHttp = {
/**
* Human-readable name identifying this MCP server.
*/
name: string;
/**
* URL to the MCP server.
*/
url: string;
/**
* HTTP headers to set when making requests to the MCP server.
*/
headers: Array<HttpHeader>;
/**
* The _meta property is reserved by ACP to allow clients and agents to attach additional
* metadata to their interactions. Implementations MUST NOT make assumptions about values at
* these keys.
*
* See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
*/
_meta?: {
[key: string]: unknown;
} | null;
type: 'http';
};
/**
* SSE transport configuration for MCP.
*/
export type McpServerSse = {
/**
* Human-readable name identifying this MCP server.
*/
name: string;
/**
* URL to the MCP server.
*/
url: string;
/**
* HTTP headers to set when making requests to the MCP server.
*/
headers: Array<HttpHeader>;
/**
* The _meta property is reserved by ACP to allow clients and agents to attach additional
* metadata to their interactions. Implementations MUST NOT make assumptions about values at
* these keys.
*
* See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
*/
_meta?: {
[key: string]: unknown;
} | null;
type: 'sse';
};
/**
* Stdio transport configuration for MCP.
*/
export type McpServerStdio = {
/**
* Human-readable name identifying this MCP server.
*/
name: string;
/**
* Path to the MCP server executable.
*/
command: string;
/**
* Command-line arguments to pass to the MCP server.
*/
args: Array<string>;
/**
* Environment variables to set when launching the MCP server.
*/
env: Array<EnvVariable>;
/**
* The _meta property is reserved by ACP to allow clients and agents to attach additional
* metadata to their interactions. Implementations MUST NOT make assumptions about values at
* these keys.
*
* See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
*/
_meta?: {
[key: string]: unknown;
} | null;
};
/**
* An environment variable to set when launching an MCP server.
*/
export type EnvVariable = {
/**
* The name of the environment variable.
*/
name: string;
/**
* The value to set for the environment variable.
*/
value: string;
/**
* The _meta property is reserved by ACP to allow clients and agents to attach additional
* metadata to their interactions. Implementations MUST NOT make assumptions about values at
* these keys.
*
* See protocol docs: [Extensibility](https://agentclientprotocol.com/protocol/extensibility)
*/
_meta?: {
[key: string]: unknown;
} | null;
};
/**
* List Goose-owned extension definitions available to configure or enable.
*/
export type GetAvailableExtensionsRequest_unstable = {
[key: string]: unknown;
};
export type GetAvailableExtensionsResponse_unstable = {
extensions: Array<GooseExtension>;
};
/**
* Persist a new extension to the user's global goose config.
*/
export type AddConfigExtensionRequest_unstable = {
name: string;
/**
* Extension configuration. Must be a JSON object matching one of the
* `ExtensionConfig` variants (e.g. `stdio`, `streamable_http`, `builtin`).
* `name` and `enabled` are injected server-side.
*/
extensionConfig?: unknown;
extension: GooseExtension;
enabled?: boolean;
};
@@ -156,9 +335,9 @@ export type RemoveConfigExtensionRequest_unstable = {
};
/**
* Toggle the `enabled` flag for a persisted extension in the user's global goose config.
* Set the `enabled` flag for a persisted extension in the user's global goose config.
*/
export type ToggleConfigExtensionRequest_unstable = {
export type SetConfigExtensionEnabledRequest_unstable = {
configKey: string;
enabled: boolean;
};
@@ -1166,14 +1345,14 @@ export type InteractionUpdate = {
export type ExtRequest = {
id: string;
method: string;
params?: AddExtensionRequest_unstable | RemoveExtensionRequest_unstable | GetToolsRequest_unstable | GooseToolCallRequest_unstable | ReadResourceRequest_unstable | UpdateWorkingDirRequest_unstable | SetSessionSystemPromptRequest_unstable | DeleteSessionRequest | GetExtensionsRequest_unstable | AddConfigExtensionRequest_unstable | RemoveConfigExtensionRequest_unstable | ToggleConfigExtensionRequest_unstable | GetSessionExtensionsRequest_unstable | ListProvidersRequest_unstable | ProviderSupportedModelsListRequest_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 | ElicitationRespondRequest_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 | {
params?: AddExtensionRequest_unstable | RemoveExtensionRequest_unstable | GetToolsRequest_unstable | GooseToolCallRequest_unstable | ReadResourceRequest_unstable | UpdateWorkingDirRequest_unstable | SetSessionSystemPromptRequest_unstable | DeleteSessionRequest | GetConfigExtensionsRequest_unstable | GetAvailableExtensionsRequest_unstable | AddConfigExtensionRequest_unstable | RemoveConfigExtensionRequest_unstable | SetConfigExtensionEnabledRequest_unstable | GetSessionExtensionsRequest_unstable | ListProvidersRequest_unstable | ProviderSupportedModelsListRequest_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 | ElicitationRespondRequest_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 | GetToolsResponse_unstable | GooseToolCallResponse_unstable | ReadResourceResponse_unstable | GetExtensionsResponse_unstable | GetSessionExtensionsResponse_unstable | ListProvidersResponse_unstable | ProviderSupportedModelsListResponse_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;
result?: EmptyResponse | GetToolsResponse_unstable | GooseToolCallResponse_unstable | ReadResourceResponse_unstable | GetConfigExtensionsResponse_unstable | GetAvailableExtensionsResponse_unstable | GetSessionExtensionsResponse_unstable | ListProvidersResponse_unstable | ProviderSupportedModelsListResponse_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;
+170 -11
View File
@@ -115,22 +115,179 @@ export const zDeleteSessionRequest = z.object({
/**
* List configured extensions and any warnings.
*/
export const zGetExtensionsRequest_unstable = z.record(z.unknown());
export const zGetConfigExtensionsRequest_unstable = z.record(z.unknown());
/**
* An HTTP header to set when making requests to the MCP server.
*/
export const zHttpHeader = z.object({
name: z.string(),
value: z.string(),
_meta: z.union([
z.record(z.unknown()),
z.null()
]).optional()
});
/**
* HTTP transport configuration for MCP.
*/
export const zMcpServerHttp = z.object({
name: z.string(),
url: z.string(),
headers: z.array(zHttpHeader),
_meta: z.union([
z.record(z.unknown()),
z.null()
]).optional(),
type: z.literal('http')
});
/**
* SSE transport configuration for MCP.
*/
export const zMcpServerSse = z.object({
name: z.string(),
url: z.string(),
headers: z.array(zHttpHeader),
_meta: z.union([
z.record(z.unknown()),
z.null()
]).optional(),
type: z.literal('sse')
});
/**
* An environment variable to set when launching an MCP server.
*/
export const zEnvVariable = z.object({
name: z.string(),
value: z.string(),
_meta: z.union([
z.record(z.unknown()),
z.null()
]).optional()
});
/**
* Stdio transport configuration for MCP.
*/
export const zMcpServerStdio = z.object({
name: z.string(),
command: z.string(),
args: z.array(z.string()),
env: z.array(zEnvVariable),
_meta: z.union([
z.record(z.unknown()),
z.null()
]).optional()
});
/**
* Configuration for connecting to an MCP (Model Context Protocol) server.
*
* MCP servers provide tools and context that the agent can use when
* processing prompts.
*
* See protocol docs: [MCP Servers](https://agentclientprotocol.com/protocol/session-setup#mcp-servers)
*/
export const zMcpServer = z.union([
zMcpServerHttp,
zMcpServerSse,
zMcpServerStdio
]);
export const zGooseExtension = z.union([
z.object({
name: z.string(),
description: z.union([
z.string(),
z.null()
]).optional(),
display_name: z.union([
z.string(),
z.null()
]).optional(),
timeout: z.union([
z.number().int().gte(0),
z.null()
]).optional(),
bundled: z.union([
z.boolean(),
z.null()
]).optional(),
type: z.literal('builtin')
}),
z.object({
name: z.string(),
description: z.union([
z.string(),
z.null()
]).optional(),
display_name: z.union([
z.string(),
z.null()
]).optional(),
bundled: z.union([
z.boolean(),
z.null()
]).optional(),
type: z.literal('platform')
}),
z.object({
server: zMcpServer,
envKeys: z.array(z.string()).optional(),
description: z.union([
z.string(),
z.null()
]).optional(),
timeout: z.union([
z.number().int().gte(0),
z.null()
]).optional(),
socket: z.union([
z.string(),
z.null()
]).optional(),
bundled: z.union([
z.boolean(),
z.null()
]).optional(),
type: z.literal('mcp')
})
]);
export const zGooseExtensionEntry = z.object({
extension: zGooseExtension,
enabled: z.boolean(),
configKey: z.union([
z.string(),
z.null()
]).optional()
});
/**
* List configured extensions and any warnings.
*/
export const zGetExtensionsResponse_unstable = z.object({
extensions: z.array(z.unknown()),
warnings: z.array(z.string())
export const zGetConfigExtensionsResponse_unstable = z.object({
extensions: z.array(zGooseExtensionEntry),
warnings: z.array(z.string()).optional().default([])
});
/**
* List Goose-owned extension definitions available to configure or enable.
*/
export const zGetAvailableExtensionsRequest_unstable = z.record(z.unknown());
export const zGetAvailableExtensionsResponse_unstable = z.object({
extensions: z.array(zGooseExtension)
});
/**
* Persist a new extension to the user's global goose config.
*/
export const zAddConfigExtensionRequest_unstable = z.object({
name: z.string(),
extensionConfig: z.unknown().optional().default(null),
extension: zGooseExtension,
enabled: z.boolean().optional().default(false)
});
@@ -142,9 +299,9 @@ export const zRemoveConfigExtensionRequest_unstable = z.object({
});
/**
* Toggle the `enabled` flag for a persisted extension in the user's global goose config.
* Set the `enabled` flag for a persisted extension in the user's global goose config.
*/
export const zToggleConfigExtensionRequest_unstable = z.object({
export const zSetConfigExtensionEnabledRequest_unstable = z.object({
configKey: z.string(),
enabled: z.boolean()
});
@@ -1190,10 +1347,11 @@ export const zExtRequest = z.object({
zUpdateWorkingDirRequest_unstable,
zSetSessionSystemPromptRequest_unstable,
zDeleteSessionRequest,
zGetExtensionsRequest_unstable,
zGetConfigExtensionsRequest_unstable,
zGetAvailableExtensionsRequest_unstable,
zAddConfigExtensionRequest_unstable,
zRemoveConfigExtensionRequest_unstable,
zToggleConfigExtensionRequest_unstable,
zSetConfigExtensionEnabledRequest_unstable,
zGetSessionExtensionsRequest_unstable,
zListProvidersRequest_unstable,
zProviderSupportedModelsListRequest_unstable,
@@ -1257,7 +1415,8 @@ export const zExtResponse = z.union([
zGetToolsResponse_unstable,
zGooseToolCallResponse_unstable,
zReadResourceResponse_unstable,
zGetExtensionsResponse_unstable,
zGetConfigExtensionsResponse_unstable,
zGetAvailableExtensionsResponse_unstable,
zGetSessionExtensionsResponse_unstable,
zListProvidersResponse_unstable,
zProviderSupportedModelsListResponse_unstable,