summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax <[email protected]>2026-02-18 19:18:05 -0500
committerGitHub <[email protected]>2026-02-19 00:18:05 +0000
commit57b63ea83d5926ee23f72185c6fb8894654e2981 (patch)
tree616fc159ccc975f97b84ca14c54765f170c015e3
parentc1620748887c9b963fe665b47519b264fe748044 (diff)
downloadopencode-57b63ea83d5926ee23f72185c6fb8894654e2981.tar.gz
opencode-57b63ea83d5926ee23f72185c6fb8894654e2981.zip
refactor: migrate src/session/prompt.ts from Bun.file() to Filesystem/stat modules (#14128)
-rw-r--r--packages/opencode/src/session/prompt.ts16
1 files changed, 7 insertions, 9 deletions
diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts
index d1f407258..6ca93979e 100644
--- a/packages/opencode/src/session/prompt.ts
+++ b/packages/opencode/src/session/prompt.ts
@@ -2,6 +2,7 @@ import path from "path"
import os from "os"
import fs from "fs/promises"
import z from "zod"
+import { Filesystem } from "../util/filesystem"
import { Identifier } from "../id/id"
import { MessageV2 } from "./message-v2"
import { Log } from "../util/log"
@@ -1082,11 +1083,9 @@ export namespace SessionPrompt {
// have to normalize, symbol search returns absolute paths
// Decode the pathname since URL constructor doesn't automatically decode it
const filepath = fileURLToPath(part.url)
- const stat = await Bun.file(filepath)
- .stat()
- .catch(() => undefined)
+ const s = Filesystem.stat(filepath)
- if (stat?.isDirectory()) {
+ if (s?.isDirectory()) {
part.mime = "application/x-directory"
}
@@ -1233,14 +1232,13 @@ export namespace SessionPrompt {
]
}
- const file = Bun.file(filepath)
FileTime.read(input.sessionID, filepath)
return [
{
messageID: info.id,
sessionID: input.sessionID,
type: "text",
- text: `Called the Read tool with the following input: {\"filePath\":\"${filepath}\"}`,
+ text: `Called the Read tool with the following input: {"filePath":"${filepath}"}`,
synthetic: true,
},
{
@@ -1248,7 +1246,7 @@ export namespace SessionPrompt {
messageID: info.id,
sessionID: input.sessionID,
type: "file",
- url: `data:${part.mime};base64,` + Buffer.from(await file.bytes()).toString("base64"),
+ url: `data:${part.mime};base64,` + (await Filesystem.readBytes(filepath)).toString("base64"),
mime: part.mime,
filename: part.filename!,
source: part.source,
@@ -1354,7 +1352,7 @@ export namespace SessionPrompt {
// Switching from plan mode to build mode
if (input.agent.name !== "plan" && assistantMessage?.info.agent === "plan") {
const plan = Session.plan(input.session)
- const exists = await Bun.file(plan).exists()
+ const exists = await Filesystem.exists(plan)
if (exists) {
const part = await Session.updatePart({
id: Identifier.ascending("part"),
@@ -1373,7 +1371,7 @@ export namespace SessionPrompt {
// Entering plan mode
if (input.agent.name === "plan" && assistantMessage?.info.agent !== "plan") {
const plan = Session.plan(input.session)
- const exists = await Bun.file(plan).exists()
+ const exists = await Filesystem.exists(plan)
if (!exists) await fs.mkdir(path.dirname(plan), { recursive: true })
const part = await Session.updatePart({
id: Identifier.ascending("part"),