refactor: update goose2 credential management behind provider-scoped ACP/core API (#8887)
Signed-off-by: morgmart <98432065+morgmart@users.noreply.github.com> Co-authored-by: morgmart <98432065+morgmart@users.noreply.github.com>
This commit is contained in:
@@ -47,6 +47,13 @@ import type {
|
||||
ListProvidersResponse,
|
||||
ListSourcesRequest,
|
||||
ListSourcesResponse,
|
||||
ProviderConfigChangeResponse,
|
||||
ProviderConfigDeleteRequest,
|
||||
ProviderConfigReadRequest,
|
||||
ProviderConfigReadResponse,
|
||||
ProviderConfigSaveRequest,
|
||||
ProviderConfigStatusRequest,
|
||||
ProviderConfigStatusResponse,
|
||||
ReadConfigRequest,
|
||||
ReadConfigResponse,
|
||||
ReadResourceRequest,
|
||||
@@ -83,6 +90,9 @@ import {
|
||||
zImportSourcesResponse,
|
||||
zListProvidersResponse,
|
||||
zListSourcesResponse,
|
||||
zProviderConfigChangeResponse,
|
||||
zProviderConfigReadResponse,
|
||||
zProviderConfigStatusResponse,
|
||||
zReadConfigResponse,
|
||||
zReadResourceResponse,
|
||||
zRefreshProviderInventoryResponse,
|
||||
@@ -173,6 +183,52 @@ export class GooseExtClient {
|
||||
) as RefreshProviderInventoryResponse;
|
||||
}
|
||||
|
||||
async GooseProvidersConfigRead(
|
||||
params: ProviderConfigReadRequest,
|
||||
): Promise<ProviderConfigReadResponse> {
|
||||
const raw = await this.conn.extMethod(
|
||||
"_goose/providers/config/read",
|
||||
params,
|
||||
);
|
||||
return zProviderConfigReadResponse.parse(raw) as ProviderConfigReadResponse;
|
||||
}
|
||||
|
||||
async GooseProvidersConfigStatus(
|
||||
params: ProviderConfigStatusRequest,
|
||||
): Promise<ProviderConfigStatusResponse> {
|
||||
const raw = await this.conn.extMethod(
|
||||
"_goose/providers/config/status",
|
||||
params,
|
||||
);
|
||||
return zProviderConfigStatusResponse.parse(
|
||||
raw,
|
||||
) as ProviderConfigStatusResponse;
|
||||
}
|
||||
|
||||
async GooseProvidersConfigSave(
|
||||
params: ProviderConfigSaveRequest,
|
||||
): Promise<ProviderConfigChangeResponse> {
|
||||
const raw = await this.conn.extMethod(
|
||||
"_goose/providers/config/save",
|
||||
params,
|
||||
);
|
||||
return zProviderConfigChangeResponse.parse(
|
||||
raw,
|
||||
) as ProviderConfigChangeResponse;
|
||||
}
|
||||
|
||||
async GooseProvidersConfigDelete(
|
||||
params: ProviderConfigDeleteRequest,
|
||||
): Promise<ProviderConfigChangeResponse> {
|
||||
const raw = await this.conn.extMethod(
|
||||
"_goose/providers/config/delete",
|
||||
params,
|
||||
);
|
||||
return zProviderConfigChangeResponse.parse(
|
||||
raw,
|
||||
) as ProviderConfigChangeResponse;
|
||||
}
|
||||
|
||||
async GooseConfigRead(
|
||||
params: ReadConfigRequest,
|
||||
): Promise<ReadConfigResponse> {
|
||||
|
||||
@@ -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, ProviderConfigKey, 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, 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 const GOOSE_EXT_METHODS = [
|
||||
{
|
||||
@@ -68,6 +68,26 @@ export const GOOSE_EXT_METHODS = [
|
||||
requestType: "RefreshProviderInventoryRequest",
|
||||
responseType: "RefreshProviderInventoryResponse",
|
||||
},
|
||||
{
|
||||
method: "_goose/providers/config/read",
|
||||
requestType: "ProviderConfigReadRequest",
|
||||
responseType: "ProviderConfigReadResponse",
|
||||
},
|
||||
{
|
||||
method: "_goose/providers/config/status",
|
||||
requestType: "ProviderConfigStatusRequest",
|
||||
responseType: "ProviderConfigStatusResponse",
|
||||
},
|
||||
{
|
||||
method: "_goose/providers/config/save",
|
||||
requestType: "ProviderConfigSaveRequest",
|
||||
responseType: "ProviderConfigChangeResponse",
|
||||
},
|
||||
{
|
||||
method: "_goose/providers/config/delete",
|
||||
requestType: "ProviderConfigDeleteRequest",
|
||||
responseType: "ProviderConfigChangeResponse",
|
||||
},
|
||||
{
|
||||
method: "_goose/config/read",
|
||||
requestType: "ReadConfigRequest",
|
||||
|
||||
@@ -291,6 +291,66 @@ export type RefreshProviderInventorySkipDto = {
|
||||
|
||||
export type RefreshProviderInventorySkipReasonDto = 'unknown_provider' | 'not_configured' | 'does_not_support_refresh' | 'already_refreshing';
|
||||
|
||||
/**
|
||||
* Read saved configuration field values for one provider.
|
||||
*/
|
||||
export type ProviderConfigReadRequest = {
|
||||
providerId: string;
|
||||
};
|
||||
|
||||
export type ProviderConfigReadResponse = {
|
||||
fields: Array<ProviderConfigFieldValueDto>;
|
||||
};
|
||||
|
||||
export type ProviderConfigFieldValueDto = {
|
||||
key: string;
|
||||
value?: string | null;
|
||||
isSet: boolean;
|
||||
isSecret: boolean;
|
||||
required: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Return provider configured statuses. Empty provider_ids means all providers.
|
||||
*/
|
||||
export type ProviderConfigStatusRequest = {
|
||||
providerIds?: Array<string>;
|
||||
};
|
||||
|
||||
export type ProviderConfigStatusResponse = {
|
||||
statuses: Array<ProviderConfigStatusDto>;
|
||||
};
|
||||
|
||||
export type ProviderConfigStatusDto = {
|
||||
providerId: string;
|
||||
isConfigured: boolean;
|
||||
};
|
||||
|
||||
/**
|
||||
* Save provider configuration fields and start an inventory refresh when supported.
|
||||
*/
|
||||
export type ProviderConfigSaveRequest = {
|
||||
providerId: string;
|
||||
fields: Array<ProviderConfigFieldUpdate>;
|
||||
};
|
||||
|
||||
export type ProviderConfigFieldUpdate = {
|
||||
key: string;
|
||||
value: string;
|
||||
};
|
||||
|
||||
export type ProviderConfigChangeResponse = {
|
||||
status: ProviderConfigStatusDto;
|
||||
refresh: RefreshProviderInventoryResponse;
|
||||
};
|
||||
|
||||
/**
|
||||
* Delete provider configuration fields and start an inventory refresh when supported.
|
||||
*/
|
||||
export type ProviderConfigDeleteRequest = {
|
||||
providerId: string;
|
||||
};
|
||||
|
||||
/**
|
||||
* Read a single non-secret config value.
|
||||
*/
|
||||
@@ -667,14 +727,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 | 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 | 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 | ReadConfigResponse | CheckSecretResponse | ExportSessionResponse | ImportSessionResponse | CreateSourceResponse | ListSourcesResponse | UpdateSourceResponse | ExportSourceResponse | ImportSourcesResponse | DictationTranscribeResponse | DictationConfigResponse | DictationModelsListResponse | DictationModelDownloadProgressResponse | unknown;
|
||||
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;
|
||||
} | {
|
||||
error: {
|
||||
code: number;
|
||||
|
||||
@@ -222,6 +222,69 @@ export const zRefreshProviderInventoryResponse = z.object({
|
||||
skipped: z.array(zRefreshProviderInventorySkipDto).optional().default([])
|
||||
});
|
||||
|
||||
/**
|
||||
* Read saved configuration field values for one provider.
|
||||
*/
|
||||
export const zProviderConfigReadRequest = z.object({
|
||||
providerId: z.string()
|
||||
});
|
||||
|
||||
export const zProviderConfigFieldValueDto = z.object({
|
||||
key: z.string(),
|
||||
value: z.union([
|
||||
z.string(),
|
||||
z.null()
|
||||
]).optional().default(null),
|
||||
isSet: z.boolean(),
|
||||
isSecret: z.boolean(),
|
||||
required: z.boolean()
|
||||
});
|
||||
|
||||
export const zProviderConfigReadResponse = z.object({
|
||||
fields: z.array(zProviderConfigFieldValueDto)
|
||||
});
|
||||
|
||||
/**
|
||||
* Return provider configured statuses. Empty provider_ids means all providers.
|
||||
*/
|
||||
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)
|
||||
});
|
||||
|
||||
export const zProviderConfigFieldUpdate = z.object({
|
||||
key: z.string(),
|
||||
value: z.string()
|
||||
});
|
||||
|
||||
/**
|
||||
* Save provider configuration fields and start an inventory refresh when supported.
|
||||
*/
|
||||
export const zProviderConfigSaveRequest = z.object({
|
||||
providerId: z.string(),
|
||||
fields: z.array(zProviderConfigFieldUpdate)
|
||||
});
|
||||
|
||||
export const zProviderConfigChangeResponse = z.object({
|
||||
status: zProviderConfigStatusDto,
|
||||
refresh: zRefreshProviderInventoryResponse
|
||||
});
|
||||
|
||||
/**
|
||||
* Delete provider configuration fields and start an inventory refresh when supported.
|
||||
*/
|
||||
export const zProviderConfigDeleteRequest = z.object({
|
||||
providerId: z.string()
|
||||
});
|
||||
|
||||
/**
|
||||
* Read a single non-secret config value.
|
||||
*/
|
||||
@@ -628,6 +691,10 @@ export const zExtRequest = z.object({
|
||||
zGetSessionExtensionsRequest,
|
||||
zListProvidersRequest,
|
||||
zRefreshProviderInventoryRequest,
|
||||
zProviderConfigReadRequest,
|
||||
zProviderConfigStatusRequest,
|
||||
zProviderConfigSaveRequest,
|
||||
zProviderConfigDeleteRequest,
|
||||
zReadConfigRequest,
|
||||
zUpsertConfigRequest,
|
||||
zRemoveConfigRequest,
|
||||
@@ -674,6 +741,9 @@ export const zExtResponse = z.union([
|
||||
zGetSessionExtensionsResponse,
|
||||
zListProvidersResponse,
|
||||
zRefreshProviderInventoryResponse,
|
||||
zProviderConfigReadResponse,
|
||||
zProviderConfigStatusResponse,
|
||||
zProviderConfigChangeResponse,
|
||||
zReadConfigResponse,
|
||||
zCheckSecretResponse,
|
||||
zExportSessionResponse,
|
||||
|
||||
Reference in New Issue
Block a user