consolidate provider ACP methods onto inventory (#8710)

Signed-off-by: Bradley Axen <baxen@squareup.com>
This commit is contained in:
Bradley Axen
2026-04-21 09:19:20 -07:00
committed by GitHub
parent 2067a564ce
commit dfc5b0b803
15 changed files with 275 additions and 573 deletions
@@ -10,7 +10,7 @@ export async function getProviderInventory(
): Promise<ProviderInventoryEntryDto[]> {
const client = await getClient();
const t0 = performance.now();
const response = await client.goose.GooseProvidersInventory({ providerIds });
const response = await client.goose.GooseProvidersList({ providerIds });
perfLog(
`[perf:inventory] getProviderInventory done in ${(performance.now() - t0).toFixed(1)}ms (n=${response.entries.length})`,
);
+16 -7
View File
@@ -20,16 +20,25 @@ export interface AcpSessionInfo {
}
const DEPRECATED_PROVIDER_IDS = new Set(["claude-code", "codex", "gemini-cli"]);
const DEFAULT_PROVIDER: AcpProvider = {
id: "goose",
label: "Goose (Default)",
};
export async function listProviders(): Promise<AcpProvider[]> {
const client = await getClient();
const result = await client.goose.GooseProvidersList({});
// biome-ignore lint/suspicious/noExplicitAny: ACP SDK types don't expose providers field
return (result as any).providers
.filter(
(p: { id: string; label: string }) => !DEPRECATED_PROVIDER_IDS.has(p.id),
)
.map((p: { id: string; label: string }) => ({ id: p.id, label: p.label }));
const result = await client.goose.GooseProvidersList({
providerIds: [],
});
const providers = result.entries
.filter((entry) => !DEPRECATED_PROVIDER_IDS.has(entry.providerId))
.map((entry) => ({
id: entry.providerId,
label: entry.providerName,
}));
return [DEFAULT_PROVIDER, ...providers];
}
export async function listSessions(): Promise<AcpSessionInfo[]> {
@@ -126,8 +126,6 @@ export function buildInitScript(options?: {
return jsonRpcResult(message.id, { stopReason: "end_turn" });
}
case "_goose/providers/list":
return jsonRpcResult(message.id, { providers: [] });
case "_goose/providers/inventory":
return jsonRpcResult(message.id, { entries: [] });
case "_goose/providers/inventory/refresh":
return jsonRpcResult(message.id, { started: [], skipped: [] });