Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions packages/opencode/src/tool/read.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import { Instance } from "../project/instance"
import { assertExternalDirectoryEffect } from "./external-directory"
import { Instruction } from "../session/instruction"
import type { Provider } from "../provider/provider"

const DEFAULT_READ_LIMIT = 2000
const MAX_LINE_LENGTH = 2000
Expand Down Expand Up @@ -149,7 +150,15 @@
const isImage = mime.startsWith("image/") && mime !== "image/svg+xml" && mime !== "image/vnd.fastbidsheet"
const isPdf = mime === "application/pdf"
if (isImage || isPdf) {
const model = ctx.extra?.model as Provider.Model | undefined
const supportsVision = model?.capabilities.input.image ?? false
const supportsPdf = model?.capabilities.input.pdf ?? false
const msg = `${isImage ? "Image" : "PDF"} read successfully`

if ((isImage && !supportsVision) || (isPdf && !supportsPdf)) {
return yield* Effect.fail(new Error(`This model does not support ${isImage ? "image" : "pdf"} input, please try other tools`))

Check failure on line 159 in packages/opencode/src/tool/read.ts

View workflow job for this annotation

GitHub Actions / unit (linux)

error: This model does not support image input

at /home/runner/_work/opencode/opencode/packages/opencode/src/tool/read.ts:159:41 at ~effect/Effect/successCont (/home/runner/_work/opencode/opencode/node_modules/.bun/effect@4.0.0-beta.46/node_modules/effect/dist/internal/effect.js:913:22) at runLoop (/home/runner/_work/opencode/opencode/node_modules/.bun/effect@4.0.0-beta.46/node_modules/effect/dist/internal/effect.js:420:66) at evaluate (/home/runner/_work/opencode/opencode/node_modules/.bun/effect@4.0.0-beta.46/node_modules/effect/dist/internal/effect.js:380:14) at /home/runner/_work/opencode/opencode/node_modules/.bun/effect@4.0.0-beta.46/node_modules/effect/dist/internal/effect.js:732:11 at /home/runner/_work/opencode/opencode/node_modules/.bun/effect@4.0.0-beta.46/node_modules/effect/dist/Effect.js:7233:9 at processTicksAndRejections (native:7:39)

Check failure on line 159 in packages/opencode/src/tool/read.ts

View workflow job for this annotation

GitHub Actions / unit (linux)

error: This model does not support image input

at /home/runner/_work/opencode/opencode/packages/opencode/src/tool/read.ts:159:41 at ~effect/Effect/successCont (/home/runner/_work/opencode/opencode/node_modules/.bun/effect@4.0.0-beta.46/node_modules/effect/dist/internal/effect.js:913:22) at runLoop (/home/runner/_work/opencode/opencode/node_modules/.bun/effect@4.0.0-beta.46/node_modules/effect/dist/internal/effect.js:420:66) at evaluate (/home/runner/_work/opencode/opencode/node_modules/.bun/effect@4.0.0-beta.46/node_modules/effect/dist/internal/effect.js:380:14) at /home/runner/_work/opencode/opencode/node_modules/.bun/effect@4.0.0-beta.46/node_modules/effect/dist/internal/effect.js:732:11 at /home/runner/_work/opencode/opencode/node_modules/.bun/effect@4.0.0-beta.46/node_modules/effect/dist/Effect.js:7233:9 at processTicksAndRejections (native:7:39)
}

return {
title,
output: msg,
Expand Down
Loading