summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authoradamdotdevin <[email protected]>2025-08-13 10:36:50 -0500
committeradamdotdevin <[email protected]>2025-08-13 10:36:50 -0500
commitf2021a85d61b2a1de2188af2da604102d16731b0 (patch)
tree9d83450411a798a2a0a6859f91e81d864f720ec8
parent7d54f893c97330ccbb9e68ab775d68be288f1017 (diff)
downloadopencode-f2021a85d61b2a1de2188af2da604102d16731b0.tar.gz
opencode-f2021a85d61b2a1de2188af2da604102d16731b0.zip
fix: allow attachments outside cwd, and support svg
-rw-r--r--packages/opencode/src/session/index.ts1
-rw-r--r--packages/opencode/src/tool/read.ts4
-rw-r--r--packages/opencode/src/tool/tool.ts1
3 files changed, 3 insertions, 3 deletions
diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts
index 85b067efc..c0ab7c7db 100644
--- a/packages/opencode/src/session/index.ts
+++ b/packages/opencode/src/session/index.ts
@@ -525,6 +525,7 @@ export namespace Session {
abort: new AbortController().signal,
agent: input.agent!,
messageID: userMsg.id,
+ extra: { bypassCwdCheck: true },
metadata: async () => {},
}),
)
diff --git a/packages/opencode/src/tool/read.ts b/packages/opencode/src/tool/read.ts
index 793579308..8b3cd97bd 100644
--- a/packages/opencode/src/tool/read.ts
+++ b/packages/opencode/src/tool/read.ts
@@ -24,7 +24,7 @@ export const ReadTool = Tool.define("read", {
filepath = path.join(process.cwd(), filepath)
}
const app = App.info()
- if (!Filesystem.contains(app.path.cwd, filepath)) {
+ if (!ctx.extra?.["bypassCwdCheck"] && !Filesystem.contains(app.path.cwd, filepath)) {
throw new Error(`File ${filepath} is not in the current working directory`)
}
@@ -98,8 +98,6 @@ function isImageFile(filePath: string): string | false {
return "GIF"
case ".bmp":
return "BMP"
- case ".svg":
- return "SVG"
case ".webp":
return "WebP"
default:
diff --git a/packages/opencode/src/tool/tool.ts b/packages/opencode/src/tool/tool.ts
index 8be3d0cde..871a10c81 100644
--- a/packages/opencode/src/tool/tool.ts
+++ b/packages/opencode/src/tool/tool.ts
@@ -10,6 +10,7 @@ export namespace Tool {
agent: string
callID?: string
abort: AbortSignal
+ extra?: { [key: string]: any }
metadata(input: { title?: string; metadata?: M }): void
}
export interface Info<Parameters extends StandardSchemaV1 = StandardSchemaV1, M extends Metadata = Metadata> {