mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-15 11:11:09 +00:00
fix: improve claude cli live discovery
This commit is contained in:
@@ -12,6 +12,8 @@ function makeProvider(params: {
|
||||
label?: string;
|
||||
order?: ProviderDiscoveryOrder;
|
||||
mode?: "catalog" | "discovery";
|
||||
aliases?: string[];
|
||||
hookAliases?: string[];
|
||||
}): ProviderPlugin {
|
||||
const hook = {
|
||||
...(params.order ? { order: params.order } : {}),
|
||||
@@ -21,6 +23,8 @@ function makeProvider(params: {
|
||||
id: params.id,
|
||||
label: params.label ?? params.id,
|
||||
auth: [],
|
||||
...(params.aliases ? { aliases: params.aliases } : {}),
|
||||
...(params.hookAliases ? { hookAliases: params.hookAliases } : {}),
|
||||
...(params.mode === "discovery" ? { discovery: hook } : { catalog: hook }),
|
||||
};
|
||||
}
|
||||
@@ -154,6 +158,37 @@ describe("normalizePluginDiscoveryResult", () => {
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "maps a single provider result to aliases and hook aliases",
|
||||
provider: makeProvider({
|
||||
id: "Anthropic",
|
||||
aliases: ["anthropic-api"],
|
||||
hookAliases: ["claude-cli"],
|
||||
}),
|
||||
result: {
|
||||
provider: makeModelProviderConfig({
|
||||
baseUrl: "https://api.anthropic.com",
|
||||
api: "anthropic-messages",
|
||||
}),
|
||||
},
|
||||
expected: {
|
||||
anthropic: {
|
||||
baseUrl: "https://api.anthropic.com",
|
||||
api: "anthropic-messages",
|
||||
models: [],
|
||||
},
|
||||
"anthropic-api": {
|
||||
baseUrl: "https://api.anthropic.com",
|
||||
api: "anthropic-messages",
|
||||
models: [],
|
||||
},
|
||||
"claude-cli": {
|
||||
baseUrl: "https://api.anthropic.com",
|
||||
api: "anthropic-messages",
|
||||
models: [],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "normalizes keys for multi-provider discovery results",
|
||||
provider: makeProvider({ id: "ignored" }),
|
||||
|
||||
@@ -62,7 +62,19 @@ export function normalizePluginDiscoveryResult(params: {
|
||||
}
|
||||
|
||||
if ("provider" in result) {
|
||||
return { [normalizeProviderId(params.provider.id)]: result.provider };
|
||||
const normalized: Record<string, ModelProviderConfig> = {};
|
||||
for (const providerId of [
|
||||
params.provider.id,
|
||||
...(params.provider.aliases ?? []),
|
||||
...(params.provider.hookAliases ?? []),
|
||||
]) {
|
||||
const normalizedKey = normalizeProviderId(providerId);
|
||||
if (!normalizedKey) {
|
||||
continue;
|
||||
}
|
||||
normalized[normalizedKey] = result.provider;
|
||||
}
|
||||
return normalized;
|
||||
}
|
||||
|
||||
const normalized: Record<string, ModelProviderConfig> = {};
|
||||
|
||||
Reference in New Issue
Block a user