diff --git a/src/tools/look-at/tools.test.ts b/src/tools/look-at/tools.test.ts index 3312fbbd2..45a35f9a3 100644 --- a/src/tools/look-at/tools.test.ts +++ b/src/tools/look-at/tools.test.ts @@ -1,5 +1,6 @@ import { describe, expect, test, mock } from "bun:test" import type { ToolContext } from "@opencode-ai/plugin/tool" +import { setVisionCapableModelsCache } from "../../shared/vision-capable-models-cache" import { normalizeArgs, validateArgs, createLookAt } from "./tools" describe("look-at tool", () => { @@ -255,6 +256,8 @@ describe("look-at tool", () => { // when LookAt tool executed // then model info should be passed to sync prompt test("passes multimodal-looker model to sync prompt when available", async () => { + setVisionCapableModelsCache(new Map([["google/gemini-3-flash", { providerID: "google", modelID: "gemini-3-flash" }]])) + let promptBody: any const mockClient = { diff --git a/src/tools/look-at/tools.ts b/src/tools/look-at/tools.ts index 3fe5e4e11..a5fdb6075 100644 --- a/src/tools/look-at/tools.ts +++ b/src/tools/look-at/tools.ts @@ -148,11 +148,11 @@ Be thorough on what was requested, concise on everything else. If the requested information is not found, clearly state what is missing.` const { agentModel, agentVariant } = await resolveMultimodalLookerAgentMetadata(ctx) - if (!agentModel || !isVisionCapableResolvedModel(agentModel)) { - log("[look_at] No vision-capable multimodal-looker model resolved", { + if (agentModel && !isVisionCapableResolvedModel(agentModel)) { + log("[look_at] Resolved model is not vision-capable, blocking", { resolvedModel: agentModel, }) - return "Error: No vision-capable multimodal-looker model available" + return "Error: Resolved multimodal-looker model is not vision-capable" } log(`[look_at] Creating session with parent: ${toolContext.sessionID}`) @@ -204,7 +204,7 @@ Original error: ${createResult.error}` { type: "text", text: prompt }, filePart, ], - model: { providerID: agentModel.providerID, modelID: agentModel.modelID }, + ...(agentModel ? { model: { providerID: agentModel.providerID, modelID: agentModel.modelID } } : {}), ...(agentVariant ? { variant: agentVariant } : {}), }, })