feat: goose2 add support for custom providers in ui & acp (#8924)
This commit is contained in:
@@ -15,6 +15,14 @@ import type {
|
||||
CheckSecretResponse,
|
||||
CreateSourceRequest,
|
||||
CreateSourceResponse,
|
||||
CustomProviderCreateRequest,
|
||||
CustomProviderCreateResponse,
|
||||
CustomProviderDeleteRequest,
|
||||
CustomProviderDeleteResponse,
|
||||
CustomProviderReadRequest,
|
||||
CustomProviderReadResponse,
|
||||
CustomProviderUpdateRequest,
|
||||
CustomProviderUpdateResponse,
|
||||
DeleteSessionRequest,
|
||||
DeleteSourceRequest,
|
||||
DictationConfigRequest,
|
||||
@@ -47,6 +55,10 @@ import type {
|
||||
ListProvidersResponse,
|
||||
ListSourcesRequest,
|
||||
ListSourcesResponse,
|
||||
ProviderCatalogListRequest,
|
||||
ProviderCatalogListResponse,
|
||||
ProviderCatalogTemplateRequest,
|
||||
ProviderCatalogTemplateResponse,
|
||||
ProviderConfigChangeResponse,
|
||||
ProviderConfigDeleteRequest,
|
||||
ProviderConfigReadRequest,
|
||||
@@ -77,6 +89,10 @@ import type {
|
||||
import {
|
||||
zCheckSecretResponse,
|
||||
zCreateSourceResponse,
|
||||
zCustomProviderCreateResponse,
|
||||
zCustomProviderDeleteResponse,
|
||||
zCustomProviderReadResponse,
|
||||
zCustomProviderUpdateResponse,
|
||||
zDictationConfigResponse,
|
||||
zDictationModelDownloadProgressResponse,
|
||||
zDictationModelsListResponse,
|
||||
@@ -90,6 +106,8 @@ import {
|
||||
zImportSourcesResponse,
|
||||
zListProvidersResponse,
|
||||
zListSourcesResponse,
|
||||
zProviderCatalogListResponse,
|
||||
zProviderCatalogTemplateResponse,
|
||||
zProviderConfigChangeResponse,
|
||||
zProviderConfigReadResponse,
|
||||
zProviderConfigStatusResponse,
|
||||
@@ -171,6 +189,76 @@ export class GooseExtClient {
|
||||
return zListProvidersResponse.parse(raw) as ListProvidersResponse;
|
||||
}
|
||||
|
||||
async GooseProvidersCatalogList(
|
||||
params: ProviderCatalogListRequest,
|
||||
): Promise<ProviderCatalogListResponse> {
|
||||
const raw = await this.conn.extMethod(
|
||||
"_goose/providers/catalog/list",
|
||||
params,
|
||||
);
|
||||
return zProviderCatalogListResponse.parse(
|
||||
raw,
|
||||
) as ProviderCatalogListResponse;
|
||||
}
|
||||
|
||||
async GooseProvidersCatalogTemplate(
|
||||
params: ProviderCatalogTemplateRequest,
|
||||
): Promise<ProviderCatalogTemplateResponse> {
|
||||
const raw = await this.conn.extMethod(
|
||||
"_goose/providers/catalog/template",
|
||||
params,
|
||||
);
|
||||
return zProviderCatalogTemplateResponse.parse(
|
||||
raw,
|
||||
) as ProviderCatalogTemplateResponse;
|
||||
}
|
||||
|
||||
async GooseProvidersCustomCreate(
|
||||
params: CustomProviderCreateRequest,
|
||||
): Promise<CustomProviderCreateResponse> {
|
||||
const raw = await this.conn.extMethod(
|
||||
"_goose/providers/custom/create",
|
||||
params,
|
||||
);
|
||||
return zCustomProviderCreateResponse.parse(
|
||||
raw,
|
||||
) as CustomProviderCreateResponse;
|
||||
}
|
||||
|
||||
async GooseProvidersCustomRead(
|
||||
params: CustomProviderReadRequest,
|
||||
): Promise<CustomProviderReadResponse> {
|
||||
const raw = await this.conn.extMethod(
|
||||
"_goose/providers/custom/read",
|
||||
params,
|
||||
);
|
||||
return zCustomProviderReadResponse.parse(raw) as CustomProviderReadResponse;
|
||||
}
|
||||
|
||||
async GooseProvidersCustomUpdate(
|
||||
params: CustomProviderUpdateRequest,
|
||||
): Promise<CustomProviderUpdateResponse> {
|
||||
const raw = await this.conn.extMethod(
|
||||
"_goose/providers/custom/update",
|
||||
params,
|
||||
);
|
||||
return zCustomProviderUpdateResponse.parse(
|
||||
raw,
|
||||
) as CustomProviderUpdateResponse;
|
||||
}
|
||||
|
||||
async GooseProvidersCustomDelete(
|
||||
params: CustomProviderDeleteRequest,
|
||||
): Promise<CustomProviderDeleteResponse> {
|
||||
const raw = await this.conn.extMethod(
|
||||
"_goose/providers/custom/delete",
|
||||
params,
|
||||
);
|
||||
return zCustomProviderDeleteResponse.parse(
|
||||
raw,
|
||||
) as CustomProviderDeleteResponse;
|
||||
}
|
||||
|
||||
async GooseProvidersInventoryRefresh(
|
||||
params: RefreshProviderInventoryRequest,
|
||||
): Promise<RefreshProviderInventoryResponse> {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// This file is auto-generated by @hey-api/openapi-ts
|
||||
|
||||
export type { AddConfigExtensionRequest, AddExtensionRequest, ArchiveSessionRequest, CheckSecretRequest, CheckSecretResponse, CreateSourceRequest, CreateSourceResponse, DeleteSessionRequest, DeleteSourceRequest, DictationConfigRequest, DictationConfigResponse, DictationDownloadProgress, DictationLocalModelStatus, DictationModelCancelRequest, DictationModelDeleteRequest, DictationModelDownloadProgressRequest, DictationModelDownloadProgressResponse, DictationModelDownloadRequest, DictationModelOption, DictationModelSelectRequest, DictationModelsListRequest, DictationModelsListResponse, DictationProviderStatusEntry, DictationTranscribeRequest, DictationTranscribeResponse, EmptyResponse, ExportSessionRequest, ExportSessionResponse, ExportSourceRequest, ExportSourceResponse, ExtRequest, ExtResponse, GetExtensionsRequest, GetExtensionsResponse, GetSessionExtensionsRequest, GetSessionExtensionsResponse, GetToolsRequest, GetToolsResponse, ImportSessionRequest, ImportSessionResponse, ImportSourcesRequest, ImportSourcesResponse, ListProvidersRequest, ListProvidersResponse, ListSourcesRequest, ListSourcesResponse, ProviderConfigChangeResponse, ProviderConfigDeleteRequest, ProviderConfigFieldUpdate, ProviderConfigFieldValueDto, ProviderConfigKey, ProviderConfigReadRequest, ProviderConfigReadResponse, ProviderConfigSaveRequest, ProviderConfigStatusDto, ProviderConfigStatusRequest, ProviderConfigStatusResponse, ProviderInventoryEntryDto, ProviderInventoryModelDto, ReadConfigRequest, ReadConfigResponse, ReadResourceRequest, ReadResourceResponse, RefreshProviderInventoryRequest, RefreshProviderInventoryResponse, RefreshProviderInventorySkipDto, RefreshProviderInventorySkipReasonDto, RemoveConfigExtensionRequest, RemoveConfigRequest, RemoveExtensionRequest, RemoveSecretRequest, RenameSessionRequest, SourceEntry, SourceType, ToggleConfigExtensionRequest, UnarchiveSessionRequest, UpdateSessionProjectRequest, UpdateSourceRequest, UpdateSourceResponse, UpdateWorkingDirRequest, UpsertConfigRequest, UpsertSecretRequest } from './types.gen.js';
|
||||
export type { AddConfigExtensionRequest, AddExtensionRequest, ArchiveSessionRequest, CheckSecretRequest, CheckSecretResponse, CreateSourceRequest, CreateSourceResponse, CustomProviderConfigDto, CustomProviderCreateRequest, CustomProviderCreateResponse, CustomProviderDeleteRequest, CustomProviderDeleteResponse, CustomProviderReadRequest, CustomProviderReadResponse, CustomProviderUpdateRequest, CustomProviderUpdateResponse, DeleteSessionRequest, DeleteSourceRequest, DictationConfigRequest, DictationConfigResponse, DictationDownloadProgress, DictationLocalModelStatus, DictationModelCancelRequest, DictationModelDeleteRequest, DictationModelDownloadProgressRequest, DictationModelDownloadProgressResponse, DictationModelDownloadRequest, DictationModelOption, DictationModelSelectRequest, DictationModelsListRequest, DictationModelsListResponse, DictationProviderStatusEntry, DictationTranscribeRequest, DictationTranscribeResponse, EmptyResponse, ExportSessionRequest, ExportSessionResponse, ExportSourceRequest, ExportSourceResponse, ExtRequest, ExtResponse, GetExtensionsRequest, GetExtensionsResponse, GetSessionExtensionsRequest, GetSessionExtensionsResponse, GetToolsRequest, GetToolsResponse, ImportSessionRequest, ImportSessionResponse, ImportSourcesRequest, ImportSourcesResponse, ListProvidersRequest, ListProvidersResponse, ListSourcesRequest, ListSourcesResponse, ProviderCatalogEntryDto, ProviderCatalogListRequest, ProviderCatalogListResponse, ProviderCatalogTemplateRequest, ProviderCatalogTemplateResponse, ProviderConfigChangeResponse, ProviderConfigDeleteRequest, ProviderConfigFieldUpdate, ProviderConfigFieldValueDto, ProviderConfigKey, ProviderConfigReadRequest, ProviderConfigReadResponse, ProviderConfigSaveRequest, ProviderConfigStatusDto, ProviderConfigStatusRequest, ProviderConfigStatusResponse, ProviderInventoryEntryDto, ProviderInventoryModelDto, ProviderTemplateCapabilitiesDto, ProviderTemplateDto, ProviderTemplateModelDto, ReadConfigRequest, ReadConfigResponse, ReadResourceRequest, ReadResourceResponse, RefreshProviderInventoryRequest, RefreshProviderInventoryResponse, RefreshProviderInventorySkipDto, RefreshProviderInventorySkipReasonDto, RemoveConfigExtensionRequest, RemoveConfigRequest, RemoveExtensionRequest, RemoveSecretRequest, RenameSessionRequest, SourceEntry, SourceType, ToggleConfigExtensionRequest, UnarchiveSessionRequest, UpdateSessionProjectRequest, UpdateSourceRequest, UpdateSourceResponse, UpdateWorkingDirRequest, UpsertConfigRequest, UpsertSecretRequest } from './types.gen.js';
|
||||
|
||||
export const GOOSE_EXT_METHODS = [
|
||||
{
|
||||
@@ -63,6 +63,36 @@ export const GOOSE_EXT_METHODS = [
|
||||
requestType: "ListProvidersRequest",
|
||||
responseType: "ListProvidersResponse",
|
||||
},
|
||||
{
|
||||
method: "_goose/providers/catalog/list",
|
||||
requestType: "ProviderCatalogListRequest",
|
||||
responseType: "ProviderCatalogListResponse",
|
||||
},
|
||||
{
|
||||
method: "_goose/providers/catalog/template",
|
||||
requestType: "ProviderCatalogTemplateRequest",
|
||||
responseType: "ProviderCatalogTemplateResponse",
|
||||
},
|
||||
{
|
||||
method: "_goose/providers/custom/create",
|
||||
requestType: "CustomProviderCreateRequest",
|
||||
responseType: "CustomProviderCreateResponse",
|
||||
},
|
||||
{
|
||||
method: "_goose/providers/custom/read",
|
||||
requestType: "CustomProviderReadRequest",
|
||||
responseType: "CustomProviderReadResponse",
|
||||
},
|
||||
{
|
||||
method: "_goose/providers/custom/update",
|
||||
requestType: "CustomProviderUpdateRequest",
|
||||
responseType: "CustomProviderUpdateResponse",
|
||||
},
|
||||
{
|
||||
method: "_goose/providers/custom/delete",
|
||||
requestType: "CustomProviderDeleteRequest",
|
||||
responseType: "CustomProviderDeleteResponse",
|
||||
},
|
||||
{
|
||||
method: "_goose/providers/inventory/refresh",
|
||||
requestType: "RefreshProviderInventoryRequest",
|
||||
|
||||
@@ -261,13 +261,90 @@ export type ProviderInventoryModelDto = {
|
||||
};
|
||||
|
||||
/**
|
||||
* Trigger a background refresh of provider inventories.
|
||||
* List custom-provider catalog entries. Omit `format` to list all formats.
|
||||
*/
|
||||
export type RefreshProviderInventoryRequest = {
|
||||
/**
|
||||
* Which providers to refresh. Empty means all known providers.
|
||||
*/
|
||||
providerIds?: Array<string>;
|
||||
export type ProviderCatalogListRequest = {
|
||||
format?: string | null;
|
||||
};
|
||||
|
||||
export type ProviderCatalogListResponse = {
|
||||
providers: Array<ProviderCatalogEntryDto>;
|
||||
};
|
||||
|
||||
export type ProviderCatalogEntryDto = {
|
||||
providerId: string;
|
||||
name: string;
|
||||
format: string;
|
||||
apiUrl: string;
|
||||
modelCount: number;
|
||||
docUrl: string;
|
||||
envVar: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* Return the editable template for one catalog provider.
|
||||
*/
|
||||
export type ProviderCatalogTemplateRequest = {
|
||||
providerId: string;
|
||||
};
|
||||
|
||||
export type ProviderCatalogTemplateResponse = {
|
||||
template: ProviderTemplateDto;
|
||||
};
|
||||
|
||||
export type ProviderTemplateDto = {
|
||||
providerId: string;
|
||||
name: string;
|
||||
format: string;
|
||||
apiUrl: string;
|
||||
models: Array<ProviderTemplateModelDto>;
|
||||
supportsStreaming: boolean;
|
||||
envVar: string;
|
||||
docUrl: string;
|
||||
};
|
||||
|
||||
export type ProviderTemplateModelDto = {
|
||||
id: string;
|
||||
name: string;
|
||||
contextLimit: number;
|
||||
capabilities: ProviderTemplateCapabilitiesDto;
|
||||
deprecated: boolean;
|
||||
};
|
||||
|
||||
export type ProviderTemplateCapabilitiesDto = {
|
||||
toolCall: boolean;
|
||||
reasoning: boolean;
|
||||
attachment: boolean;
|
||||
temperature: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Create a custom provider backed by Goose's declarative provider store.
|
||||
*/
|
||||
export type CustomProviderCreateRequest = {
|
||||
engine: string;
|
||||
displayName: string;
|
||||
apiUrl: string;
|
||||
apiKey?: string | null;
|
||||
models?: Array<string>;
|
||||
supportsStreaming?: boolean | null;
|
||||
headers?: {
|
||||
[key: string]: string;
|
||||
};
|
||||
requiresAuth: boolean;
|
||||
catalogProviderId?: string | null;
|
||||
basePath?: string | null;
|
||||
};
|
||||
|
||||
export type CustomProviderCreateResponse = {
|
||||
providerId: string;
|
||||
status: ProviderConfigStatusDto;
|
||||
refresh: RefreshProviderInventoryResponse;
|
||||
};
|
||||
|
||||
export type ProviderConfigStatusDto = {
|
||||
providerId: string;
|
||||
isConfigured: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -291,6 +368,83 @@ export type RefreshProviderInventorySkipDto = {
|
||||
|
||||
export type RefreshProviderInventorySkipReasonDto = 'unknown_provider' | 'not_configured' | 'does_not_support_refresh' | 'already_refreshing';
|
||||
|
||||
/**
|
||||
* Read a declarative provider config. Custom configs are editable; bundled configs are read-only.
|
||||
*/
|
||||
export type CustomProviderReadRequest = {
|
||||
providerId: string;
|
||||
};
|
||||
|
||||
export type CustomProviderReadResponse = {
|
||||
provider: CustomProviderConfigDto;
|
||||
editable: boolean;
|
||||
status: ProviderConfigStatusDto;
|
||||
};
|
||||
|
||||
export type CustomProviderConfigDto = {
|
||||
providerId: string;
|
||||
engine: string;
|
||||
displayName: string;
|
||||
apiUrl: string;
|
||||
models?: Array<string>;
|
||||
supportsStreaming?: boolean | null;
|
||||
headers?: {
|
||||
[key: string]: string;
|
||||
};
|
||||
requiresAuth: boolean;
|
||||
catalogProviderId?: string | null;
|
||||
basePath?: string | null;
|
||||
apiKeyEnv?: string | null;
|
||||
apiKeySet: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Update a custom provider backed by Goose's declarative provider store.
|
||||
*/
|
||||
export type CustomProviderUpdateRequest = {
|
||||
providerId: string;
|
||||
engine: string;
|
||||
displayName: string;
|
||||
apiUrl: string;
|
||||
apiKey?: string | null;
|
||||
models?: Array<string>;
|
||||
supportsStreaming?: boolean | null;
|
||||
headers?: {
|
||||
[key: string]: string;
|
||||
};
|
||||
requiresAuth: boolean;
|
||||
catalogProviderId?: string | null;
|
||||
basePath?: string | null;
|
||||
};
|
||||
|
||||
export type CustomProviderUpdateResponse = {
|
||||
providerId: string;
|
||||
status: ProviderConfigStatusDto;
|
||||
refresh: RefreshProviderInventoryResponse;
|
||||
};
|
||||
|
||||
/**
|
||||
* Delete a custom provider from Goose's declarative provider store.
|
||||
*/
|
||||
export type CustomProviderDeleteRequest = {
|
||||
providerId: string;
|
||||
};
|
||||
|
||||
export type CustomProviderDeleteResponse = {
|
||||
providerId: string;
|
||||
refresh: RefreshProviderInventoryResponse;
|
||||
};
|
||||
|
||||
/**
|
||||
* Trigger a background refresh of provider inventories.
|
||||
*/
|
||||
export type RefreshProviderInventoryRequest = {
|
||||
/**
|
||||
* Which providers to refresh. Empty means all known providers.
|
||||
*/
|
||||
providerIds?: Array<string>;
|
||||
};
|
||||
|
||||
/**
|
||||
* Read saved configuration field values for one provider.
|
||||
*/
|
||||
@@ -321,11 +475,6 @@ export type ProviderConfigStatusResponse = {
|
||||
statuses: Array<ProviderConfigStatusDto>;
|
||||
};
|
||||
|
||||
export type ProviderConfigStatusDto = {
|
||||
providerId: string;
|
||||
isConfigured: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Save provider configuration fields and start an inventory refresh when supported.
|
||||
*/
|
||||
@@ -727,14 +876,14 @@ export type DictationModelSelectRequest = {
|
||||
export type ExtRequest = {
|
||||
id: string;
|
||||
method: string;
|
||||
params?: AddExtensionRequest | RemoveExtensionRequest | GetToolsRequest | ReadResourceRequest | UpdateWorkingDirRequest | DeleteSessionRequest | GetExtensionsRequest | AddConfigExtensionRequest | RemoveConfigExtensionRequest | ToggleConfigExtensionRequest | GetSessionExtensionsRequest | ListProvidersRequest | RefreshProviderInventoryRequest | ProviderConfigReadRequest | ProviderConfigStatusRequest | ProviderConfigSaveRequest | ProviderConfigDeleteRequest | ReadConfigRequest | UpsertConfigRequest | RemoveConfigRequest | CheckSecretRequest | UpsertSecretRequest | RemoveSecretRequest | ExportSessionRequest | ImportSessionRequest | UpdateSessionProjectRequest | RenameSessionRequest | ArchiveSessionRequest | UnarchiveSessionRequest | CreateSourceRequest | ListSourcesRequest | UpdateSourceRequest | DeleteSourceRequest | ExportSourceRequest | ImportSourcesRequest | DictationTranscribeRequest | DictationConfigRequest | DictationModelsListRequest | DictationModelDownloadRequest | DictationModelDownloadProgressRequest | DictationModelCancelRequest | DictationModelDeleteRequest | DictationModelSelectRequest | {
|
||||
params?: AddExtensionRequest | RemoveExtensionRequest | GetToolsRequest | ReadResourceRequest | UpdateWorkingDirRequest | DeleteSessionRequest | GetExtensionsRequest | AddConfigExtensionRequest | RemoveConfigExtensionRequest | ToggleConfigExtensionRequest | GetSessionExtensionsRequest | ListProvidersRequest | ProviderCatalogListRequest | ProviderCatalogTemplateRequest | CustomProviderCreateRequest | CustomProviderReadRequest | CustomProviderUpdateRequest | CustomProviderDeleteRequest | RefreshProviderInventoryRequest | ProviderConfigReadRequest | ProviderConfigStatusRequest | ProviderConfigSaveRequest | ProviderConfigDeleteRequest | ReadConfigRequest | UpsertConfigRequest | RemoveConfigRequest | CheckSecretRequest | UpsertSecretRequest | RemoveSecretRequest | ExportSessionRequest | ImportSessionRequest | UpdateSessionProjectRequest | RenameSessionRequest | ArchiveSessionRequest | UnarchiveSessionRequest | CreateSourceRequest | ListSourcesRequest | UpdateSourceRequest | DeleteSourceRequest | ExportSourceRequest | ImportSourcesRequest | DictationTranscribeRequest | DictationConfigRequest | DictationModelsListRequest | DictationModelDownloadRequest | DictationModelDownloadProgressRequest | DictationModelCancelRequest | DictationModelDeleteRequest | DictationModelSelectRequest | {
|
||||
[key: string]: unknown;
|
||||
} | null;
|
||||
};
|
||||
|
||||
export type ExtResponse = {
|
||||
id: string;
|
||||
result?: EmptyResponse | GetToolsResponse | ReadResourceResponse | GetExtensionsResponse | GetSessionExtensionsResponse | ListProvidersResponse | RefreshProviderInventoryResponse | ProviderConfigReadResponse | ProviderConfigStatusResponse | ProviderConfigChangeResponse | ReadConfigResponse | CheckSecretResponse | ExportSessionResponse | ImportSessionResponse | CreateSourceResponse | ListSourcesResponse | UpdateSourceResponse | ExportSourceResponse | ImportSourcesResponse | DictationTranscribeResponse | DictationConfigResponse | DictationModelsListResponse | DictationModelDownloadProgressResponse | unknown;
|
||||
result?: EmptyResponse | GetToolsResponse | ReadResourceResponse | GetExtensionsResponse | GetSessionExtensionsResponse | ListProvidersResponse | ProviderCatalogListResponse | ProviderCatalogTemplateResponse | CustomProviderCreateResponse | CustomProviderReadResponse | CustomProviderUpdateResponse | CustomProviderDeleteResponse | RefreshProviderInventoryResponse | ProviderConfigReadResponse | ProviderConfigStatusResponse | ProviderConfigChangeResponse | ReadConfigResponse | CheckSecretResponse | ExportSessionResponse | ImportSessionResponse | CreateSourceResponse | ListSourcesResponse | UpdateSourceResponse | ExportSourceResponse | ImportSourcesResponse | DictationTranscribeResponse | DictationConfigResponse | DictationModelsListResponse | DictationModelDownloadProgressResponse | unknown;
|
||||
} | {
|
||||
error: {
|
||||
code: number;
|
||||
|
||||
@@ -196,10 +196,97 @@ export const zListProvidersResponse = z.object({
|
||||
});
|
||||
|
||||
/**
|
||||
* Trigger a background refresh of provider inventories.
|
||||
* List custom-provider catalog entries. Omit `format` to list all formats.
|
||||
*/
|
||||
export const zRefreshProviderInventoryRequest = z.object({
|
||||
providerIds: z.array(z.string()).optional().default([])
|
||||
export const zProviderCatalogListRequest = z.object({
|
||||
format: z.union([
|
||||
z.string(),
|
||||
z.null()
|
||||
]).optional()
|
||||
});
|
||||
|
||||
export const zProviderCatalogEntryDto = z.object({
|
||||
providerId: z.string(),
|
||||
name: z.string(),
|
||||
format: z.string(),
|
||||
apiUrl: z.string(),
|
||||
modelCount: z.number().int().gte(0),
|
||||
docUrl: z.string(),
|
||||
envVar: z.string()
|
||||
});
|
||||
|
||||
export const zProviderCatalogListResponse = z.object({
|
||||
providers: z.array(zProviderCatalogEntryDto)
|
||||
});
|
||||
|
||||
/**
|
||||
* Return the editable template for one catalog provider.
|
||||
*/
|
||||
export const zProviderCatalogTemplateRequest = z.object({
|
||||
providerId: z.string()
|
||||
});
|
||||
|
||||
export const zProviderTemplateCapabilitiesDto = z.object({
|
||||
toolCall: z.boolean(),
|
||||
reasoning: z.boolean(),
|
||||
attachment: z.boolean(),
|
||||
temperature: z.boolean()
|
||||
});
|
||||
|
||||
export const zProviderTemplateModelDto = z.object({
|
||||
id: z.string(),
|
||||
name: z.string(),
|
||||
contextLimit: z.number().int().gte(0),
|
||||
capabilities: zProviderTemplateCapabilitiesDto,
|
||||
deprecated: z.boolean()
|
||||
});
|
||||
|
||||
export const zProviderTemplateDto = z.object({
|
||||
providerId: z.string(),
|
||||
name: z.string(),
|
||||
format: z.string(),
|
||||
apiUrl: z.string(),
|
||||
models: z.array(zProviderTemplateModelDto),
|
||||
supportsStreaming: z.boolean(),
|
||||
envVar: z.string(),
|
||||
docUrl: z.string()
|
||||
});
|
||||
|
||||
export const zProviderCatalogTemplateResponse = z.object({
|
||||
template: zProviderTemplateDto
|
||||
});
|
||||
|
||||
/**
|
||||
* Create a custom provider backed by Goose's declarative provider store.
|
||||
*/
|
||||
export const zCustomProviderCreateRequest = z.object({
|
||||
engine: z.string(),
|
||||
displayName: z.string(),
|
||||
apiUrl: z.string(),
|
||||
apiKey: z.union([
|
||||
z.string(),
|
||||
z.null()
|
||||
]).optional(),
|
||||
models: z.array(z.string()).optional().default([]),
|
||||
supportsStreaming: z.union([
|
||||
z.boolean(),
|
||||
z.null()
|
||||
]).optional(),
|
||||
headers: z.record(z.string()).optional().default({}),
|
||||
requiresAuth: z.boolean(),
|
||||
catalogProviderId: z.union([
|
||||
z.string(),
|
||||
z.null()
|
||||
]).optional(),
|
||||
basePath: z.union([
|
||||
z.string(),
|
||||
z.null()
|
||||
]).optional()
|
||||
});
|
||||
|
||||
export const zProviderConfigStatusDto = z.object({
|
||||
providerId: z.string(),
|
||||
isConfigured: z.boolean()
|
||||
});
|
||||
|
||||
export const zRefreshProviderInventorySkipReasonDto = z.enum([
|
||||
@@ -222,6 +309,106 @@ export const zRefreshProviderInventoryResponse = z.object({
|
||||
skipped: z.array(zRefreshProviderInventorySkipDto).optional().default([])
|
||||
});
|
||||
|
||||
export const zCustomProviderCreateResponse = z.object({
|
||||
providerId: z.string(),
|
||||
status: zProviderConfigStatusDto,
|
||||
refresh: zRefreshProviderInventoryResponse
|
||||
});
|
||||
|
||||
/**
|
||||
* Read a declarative provider config. Custom configs are editable; bundled configs are read-only.
|
||||
*/
|
||||
export const zCustomProviderReadRequest = z.object({
|
||||
providerId: z.string()
|
||||
});
|
||||
|
||||
export const zCustomProviderConfigDto = z.object({
|
||||
providerId: z.string(),
|
||||
engine: z.string(),
|
||||
displayName: z.string(),
|
||||
apiUrl: z.string(),
|
||||
models: z.array(z.string()).optional().default([]),
|
||||
supportsStreaming: z.union([
|
||||
z.boolean(),
|
||||
z.null()
|
||||
]).optional(),
|
||||
headers: z.record(z.string()).optional().default({}),
|
||||
requiresAuth: z.boolean(),
|
||||
catalogProviderId: z.union([
|
||||
z.string(),
|
||||
z.null()
|
||||
]).optional(),
|
||||
basePath: z.union([
|
||||
z.string(),
|
||||
z.null()
|
||||
]).optional(),
|
||||
apiKeyEnv: z.union([
|
||||
z.string(),
|
||||
z.null()
|
||||
]).optional(),
|
||||
apiKeySet: z.boolean()
|
||||
});
|
||||
|
||||
export const zCustomProviderReadResponse = z.object({
|
||||
provider: zCustomProviderConfigDto,
|
||||
editable: z.boolean(),
|
||||
status: zProviderConfigStatusDto
|
||||
});
|
||||
|
||||
/**
|
||||
* Update a custom provider backed by Goose's declarative provider store.
|
||||
*/
|
||||
export const zCustomProviderUpdateRequest = z.object({
|
||||
providerId: z.string(),
|
||||
engine: z.string(),
|
||||
displayName: z.string(),
|
||||
apiUrl: z.string(),
|
||||
apiKey: z.union([
|
||||
z.string(),
|
||||
z.null()
|
||||
]).optional(),
|
||||
models: z.array(z.string()).optional().default([]),
|
||||
supportsStreaming: z.union([
|
||||
z.boolean(),
|
||||
z.null()
|
||||
]).optional(),
|
||||
headers: z.record(z.string()).optional().default({}),
|
||||
requiresAuth: z.boolean(),
|
||||
catalogProviderId: z.union([
|
||||
z.string(),
|
||||
z.null()
|
||||
]).optional(),
|
||||
basePath: z.union([
|
||||
z.string(),
|
||||
z.null()
|
||||
]).optional()
|
||||
});
|
||||
|
||||
export const zCustomProviderUpdateResponse = z.object({
|
||||
providerId: z.string(),
|
||||
status: zProviderConfigStatusDto,
|
||||
refresh: zRefreshProviderInventoryResponse
|
||||
});
|
||||
|
||||
/**
|
||||
* Delete a custom provider from Goose's declarative provider store.
|
||||
*/
|
||||
export const zCustomProviderDeleteRequest = z.object({
|
||||
providerId: z.string()
|
||||
});
|
||||
|
||||
export const zCustomProviderDeleteResponse = z.object({
|
||||
providerId: z.string(),
|
||||
refresh: zRefreshProviderInventoryResponse
|
||||
});
|
||||
|
||||
/**
|
||||
* Trigger a background refresh of provider inventories.
|
||||
*/
|
||||
export const zRefreshProviderInventoryRequest = z.object({
|
||||
providerIds: z.array(z.string()).optional().default([])
|
||||
});
|
||||
|
||||
/**
|
||||
* Read saved configuration field values for one provider.
|
||||
*/
|
||||
@@ -251,11 +438,6 @@ export const zProviderConfigStatusRequest = z.object({
|
||||
providerIds: z.array(z.string()).optional().default([])
|
||||
});
|
||||
|
||||
export const zProviderConfigStatusDto = z.object({
|
||||
providerId: z.string(),
|
||||
isConfigured: z.boolean()
|
||||
});
|
||||
|
||||
export const zProviderConfigStatusResponse = z.object({
|
||||
statuses: z.array(zProviderConfigStatusDto)
|
||||
});
|
||||
@@ -690,6 +872,12 @@ export const zExtRequest = z.object({
|
||||
zToggleConfigExtensionRequest,
|
||||
zGetSessionExtensionsRequest,
|
||||
zListProvidersRequest,
|
||||
zProviderCatalogListRequest,
|
||||
zProviderCatalogTemplateRequest,
|
||||
zCustomProviderCreateRequest,
|
||||
zCustomProviderReadRequest,
|
||||
zCustomProviderUpdateRequest,
|
||||
zCustomProviderDeleteRequest,
|
||||
zRefreshProviderInventoryRequest,
|
||||
zProviderConfigReadRequest,
|
||||
zProviderConfigStatusRequest,
|
||||
@@ -740,6 +928,12 @@ export const zExtResponse = z.union([
|
||||
zGetExtensionsResponse,
|
||||
zGetSessionExtensionsResponse,
|
||||
zListProvidersResponse,
|
||||
zProviderCatalogListResponse,
|
||||
zProviderCatalogTemplateResponse,
|
||||
zCustomProviderCreateResponse,
|
||||
zCustomProviderReadResponse,
|
||||
zCustomProviderUpdateResponse,
|
||||
zCustomProviderDeleteResponse,
|
||||
zRefreshProviderInventoryResponse,
|
||||
zProviderConfigReadResponse,
|
||||
zProviderConfigStatusResponse,
|
||||
|
||||
Reference in New Issue
Block a user