























@@ -127,6 +127,8 @@ vi.mock("../model-auth.js", () => ({
127127"minimax-portal": ["MINIMAX_OAUTH_TOKEN"],
128128moonshot: ["MOONSHOT_API_KEY"],
129129openai: ["OPENAI_API_KEY"],
130+opencode: ["OPENCODE_API_KEY", "OPENCODE_ZEN_API_KEY"],
131+"opencode-go": ["OPENCODE_API_KEY", "OPENCODE_ZEN_API_KEY"],
130132openrouter: ["OPENROUTER_API_KEY"],
131133zai: ["ZAI_API_KEY", "Z_AI_API_KEY"],
132134};
@@ -180,6 +182,8 @@ async function createOpenClawCodingToolsWithFreshModules(options?: CreateOpenCla
180182["minimax", "MiniMax-VL-01"],
181183["minimax-portal", "MiniMax-VL-01"],
182184["openai", "gpt-5.4-mini"],
185+["opencode", "gpt-5-nano"],
186+["opencode-go", "kimi-k2.5"],
183187["zai", "glm-4.6v"],
184188]);
185189__testing.setProviderDepsForTest({
@@ -479,6 +483,8 @@ function installImageUnderstandingProviderStubs(...providers: MediaUnderstanding
479483["minimax", "MiniMax-VL-01"],
480484["minimax-portal", "MiniMax-VL-01"],
481485["openai", "gpt-5.4-mini"],
486+["opencode", "gpt-5-nano"],
487+["opencode-go", "kimi-k2.5"],
482488["zai", "glm-4.6v"],
483489]);
484490__testing.setProviderDepsForTest({
@@ -691,6 +697,32 @@ describe("image tool implicit imageModel config", () => {
691697});
692698});
693699700+it("pairs opencode primary with the plugin-owned image model when auth exists", async () => {
701+await withTempAgentDir(async (agentDir) => {
702+vi.stubEnv("OPENCODE_API_KEY", "opencode-test");
703+const cfg: OpenClawConfig = {
704+agents: { defaults: { model: { primary: "opencode/minimax-m2.7" } } },
705+};
706+expect(resolveImageModelConfigForTool({ cfg, agentDir })).toEqual({
707+primary: "opencode/gpt-5-nano",
708+});
709+expect(createImageTool({ config: cfg, agentDir })).not.toBeNull();
710+});
711+});
712+713+it("pairs opencode-go primary with the Go plugin-owned image model when auth exists", async () => {
714+await withTempAgentDir(async (agentDir) => {
715+vi.stubEnv("OPENCODE_API_KEY", "opencode-test");
716+const cfg: OpenClawConfig = {
717+agents: { defaults: { model: { primary: "opencode-go/kimi-k2.6" } } },
718+};
719+expect(resolveImageModelConfigForTool({ cfg, agentDir })).toEqual({
720+primary: "opencode-go/kimi-k2.5",
721+});
722+expect(createImageTool({ config: cfg, agentDir })).not.toBeNull();
723+});
724+});
725+694726it("pairs zai primary with glm-4.6v (and fallbacks) when auth exists", async () => {
695727await withTempAgentDir(async (agentDir) => {
696728vi.stubEnv("ZAI_API_KEY", "zai-test");
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。