diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts index af9a896c64..ebacc6be3f 100644 --- a/packages/opencode/src/tool/registry.ts +++ b/packages/opencode/src/tool/registry.ts @@ -69,7 +69,7 @@ export namespace ToolRegistry { return { title: "", output: out.truncated ? out.content : result, - metadata: { truncated: out.truncated }, + metadata: { truncated: out.truncated, outputPath: out.outputPath }, } }, }), diff --git a/packages/opencode/src/tool/tool.ts b/packages/opencode/src/tool/tool.ts index 113a7a3c07..5b6aa18a66 100644 --- a/packages/opencode/src/tool/tool.ts +++ b/packages/opencode/src/tool/tool.ts @@ -77,6 +77,7 @@ export namespace Tool { metadata: { ...result.metadata, truncated: truncated.truncated, + outputPath: truncated.outputPath, }, } } diff --git a/packages/opencode/test/tool/bash.test.ts b/packages/opencode/test/tool/bash.test.ts index b58858f11d..71c61572be 100644 --- a/packages/opencode/test/tool/bash.test.ts +++ b/packages/opencode/test/tool/bash.test.ts @@ -306,10 +306,9 @@ describe("tool.bash truncation", () => { ) expect((result.metadata as any).truncated).toBe(true) - const match = result.output.match(/Full output written to: (.+)/) - expect(match).toBeTruthy() + const filepath = (result.metadata as any).outputPath + expect(filepath).toBeTruthy() - const filepath = match![1].split("\n")[0] const saved = await Bun.file(filepath).text() const lines = saved.trim().split("\n") expect(lines.length).toBe(lineCount)