mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-29 19:01:44 +00:00
fix: normalize image provider alias selection
This commit is contained in:
@@ -180,6 +180,44 @@ describe("createImageGenerateTool", () => {
|
||||
expect(createImageGenerateTool({ config: {} })).toBeNull();
|
||||
});
|
||||
|
||||
it("matches image-generation providers across canonical provider aliases", () => {
|
||||
vi.spyOn(imageGenerationRuntime, "listRuntimeImageGenerationProviders").mockReturnValue([
|
||||
{
|
||||
id: "z.ai",
|
||||
aliases: ["z-ai"],
|
||||
defaultModel: "glm-4.5-image",
|
||||
models: ["glm-4.5-image"],
|
||||
capabilities: {
|
||||
generate: {
|
||||
maxCount: 4,
|
||||
},
|
||||
edit: {
|
||||
enabled: false,
|
||||
maxInputImages: 0,
|
||||
},
|
||||
geometry: {},
|
||||
},
|
||||
generateImage: vi.fn(async () => {
|
||||
throw new Error("not used");
|
||||
}),
|
||||
},
|
||||
]);
|
||||
|
||||
expect(
|
||||
createImageGenerateTool({
|
||||
config: {
|
||||
agents: {
|
||||
defaults: {
|
||||
imageGenerationModel: {
|
||||
primary: "z-ai/glm-4.5-image",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}),
|
||||
).not.toBeNull();
|
||||
});
|
||||
|
||||
it("infers an OpenAI image-generation model from env-backed auth", () => {
|
||||
stubImageGenerationProviders();
|
||||
vi.stubEnv("OPENAI_API_KEY", "openai-test");
|
||||
|
||||
@@ -16,6 +16,7 @@ import { saveMediaBuffer } from "../../media/store.js";
|
||||
import { loadWebMedia } from "../../media/web-media.js";
|
||||
import { getProviderEnvVars } from "../../secrets/provider-env-vars.js";
|
||||
import { resolveUserPath } from "../../utils.js";
|
||||
import { normalizeProviderId } from "../provider-id.js";
|
||||
import { ToolInputError, readNumberParam, readStringParam } from "./common.js";
|
||||
import { decodeDataUrl } from "./image-tool.helpers.js";
|
||||
import {
|
||||
@@ -247,10 +248,11 @@ function resolveSelectedImageGenerationProvider(params: {
|
||||
if (!selectedRef) {
|
||||
return undefined;
|
||||
}
|
||||
const selectedProvider = normalizeProviderId(selectedRef.provider);
|
||||
return listRuntimeImageGenerationProviders({ config: params.config }).find(
|
||||
(provider) =>
|
||||
provider.id === selectedRef.provider ||
|
||||
(provider.aliases ?? []).includes(selectedRef.provider),
|
||||
normalizeProviderId(provider.id) === selectedProvider ||
|
||||
(provider.aliases ?? []).some((alias) => normalizeProviderId(alias) === selectedProvider),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user