fix: adjust vision capability check to not block when no model resolved

- Only block when a resolved model is explicitly not vision-capable
- Set up vision cache in model passthrough test for proper isolation
This commit is contained in:
YeonGyu-Kim
2026-03-11 21:56:19 +09:00
parent 85151f7dfd
commit a668860b86
2 changed files with 7 additions and 4 deletions
+3
View File
@@ -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 = {
+4 -4
View File
@@ -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 } : {}),
},
})