mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-29 19:01:44 +00:00
fix: normalize model catalog provider lookup
This commit is contained in:
@@ -1,7 +1,11 @@
|
||||
import { describe, expect, it, vi } from "vitest";
|
||||
import type { OpenClawConfig } from "../config/config.js";
|
||||
import { resetLogger, setLoggerOverride } from "../logging/logger.js";
|
||||
import { __setModelCatalogImportForTest, loadModelCatalog } from "./model-catalog.js";
|
||||
import {
|
||||
__setModelCatalogImportForTest,
|
||||
findModelInCatalog,
|
||||
loadModelCatalog,
|
||||
} from "./model-catalog.js";
|
||||
import {
|
||||
installModelCatalogTestHooks,
|
||||
mockCatalogImportFailThenRecover,
|
||||
@@ -352,4 +356,18 @@ describe("loadModelCatalog", () => {
|
||||
expect(matches).toHaveLength(1);
|
||||
expect(matches[0]?.name).toBe("Kilo Auto");
|
||||
});
|
||||
|
||||
it("matches models across canonical provider aliases", () => {
|
||||
expect(
|
||||
findModelInCatalog(
|
||||
[{ provider: "z.ai", id: "glm-5", name: "GLM-5" }],
|
||||
"z-ai",
|
||||
"glm-5",
|
||||
),
|
||||
).toEqual({
|
||||
provider: "z.ai",
|
||||
id: "glm-5",
|
||||
name: "GLM-5",
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -3,6 +3,7 @@ import { createSubsystemLogger } from "../logging/subsystem.js";
|
||||
import { augmentModelCatalogWithProviderPlugins } from "../plugins/provider-runtime.runtime.js";
|
||||
import { resolveOpenClawAgentDir } from "./agent-paths.js";
|
||||
import { ensureOpenClawModelsJson } from "./models-config.js";
|
||||
import { normalizeProviderId } from "./provider-id.js";
|
||||
|
||||
const log = createSubsystemLogger("model-catalog");
|
||||
|
||||
@@ -295,11 +296,11 @@ export function findModelInCatalog(
|
||||
provider: string,
|
||||
modelId: string,
|
||||
): ModelCatalogEntry | undefined {
|
||||
const normalizedProvider = provider.toLowerCase().trim();
|
||||
const normalizedProvider = normalizeProviderId(provider);
|
||||
const normalizedModelId = modelId.toLowerCase().trim();
|
||||
return catalog.find(
|
||||
(entry) =>
|
||||
entry.provider.toLowerCase() === normalizedProvider &&
|
||||
normalizeProviderId(entry.provider) === normalizedProvider &&
|
||||
entry.id.toLowerCase() === normalizedModelId,
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user