feat: acp methods for config extensions (#9581)
This commit is contained in:
@@ -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 ?? [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -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",
|
||||
},
|
||||
{
|
||||
|
||||
@@ -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
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user