Kit Langton
d6abb56f58
test(tool): pin every tool's parameters schema before migration
...
Pre-migration safety net for the upcoming tool-by-tool zod\u2192Schema
conversion. Every tool's parameters schema now has:
1. A JSON Schema snapshot (`z.toJSONSchema` with `io: "input"`) \u2014 this
captures exactly what the LLM sees at tool registration time, so any
drift caused by a future migration fails the snapshot.
2. Parse-accept/parse-reject assertions per tool pinning the
user-visible behavioural contract (required fields, refinement
bounds, enum membership, default values).
To make the snapshots possible without standing up each tool's full
Effect runtime, every tool file now exports its parameters schema as
`Parameters` at module scope:
- 9 tools already had a module-level const \u2014 just added `export`, and
standardised the name to `Parameters` (uppercase) where it was
previously `parameters`.
- 9 tools had their schema inline inside `Tool.define` \u2014 hoisted to
module scope under the same `Parameters` name and wired back through.
Zero behaviour change: Tool.define still sees the same schema, runtime
validation path is identical, SDK (types.gen.ts + openapi.json) is
byte-identical, and the full 2054-test suite passes.
18 JSON Schema snapshots and 43 explicit parse/reject assertions for the
18 built-in tools (apply_patch, bash, codesearch, edit, glob, grep,
invalid, lsp, multiedit, plan, question, read, skill, task, todo,
webfetch, websearch, write).
2026-04-18 00:01:50 -04:00
Aiden Cline
76a141090e
chore: delete filetime module ( #22999 )
2026-04-16 23:31:21 -05:00
Kit Langton
5011465c81
feat: unwrap tool namespaces to flat exports + barrel ( #22762 )
2026-04-16 03:56:54 +00:00
Kit Langton
702f741267
feat: enable oxlint suspicious category, fix 24 violations ( #22727 )
2026-04-16 02:53:10 +00:00
Dax
be9432a893
shared package ( #22626 )
2026-04-15 14:26:20 +00:00
Kit Langton
c5fb6281f0
refactor(tool): Tool.Def.execute returns Effect, rename defineEffect → define ( #21961 )
2026-04-10 22:36:02 -04:00
Kit Langton
8bdcc22541
refactor(effect): inline session processor interrupt cleanup ( #21593 )
2026-04-08 21:19:01 -04:00
Aiden Cline
3a0e00dd7f
tweak: add newline between <content> and first line of read tool output to prevent confusion ( #21070 )
2026-04-05 04:55:22 +00:00
Kit Langton
c796b9a19e
refactor(effect): move read tool onto defineEffect ( #21016 )
2026-04-04 19:06:00 -04:00
Kit Langton
0bae38c062
refactor(instruction): migrate to Effect service pattern ( #20542 )
2026-04-01 22:22:51 -04:00
Luke Parker
b234370080
feat(windows): add first-class pwsh/powershell support ( #16069 )
2026-03-30 13:10:01 +10:00
Kit Langton
2cbdf04ec9
refactor(file-time): effectify FileTimeService with Semaphore locks ( #17835 )
2026-03-16 18:23:13 +00:00
Dax
02a9495063
Remove use of Bun.file ( #14215 )
2026-02-19 11:32:32 -05:00
Dax Raad
568eccb4c6
Revert: all refactor commits migrating from Bun.file() to Filesystem module
2026-02-18 19:41:14 -05:00
Dax
14c0989411
refactor: migrate src/tool/read.ts from Bun.file() to Filesystem module ( #14118 )
2026-02-18 19:29:11 -05:00
Aiden Cline
3b97580621
tweak: ensure read tool uses fs/promises for all paths ( #14027 )
2026-02-17 16:05:22 -06:00
Aiden Cline
c1b03b728a
fix: make read tool more mem efficient ( #14009 )
2026-02-17 15:36:45 -06:00
Aiden Cline
a580fb47d2
tweak: drop ids from attachments in tools, assign them in prompt.ts instead ( #13890 )
2026-02-16 14:59:57 -06:00
Aiden Cline
006d673ed2
tweak: make read tool offset 1 indexed instead of 0 to avoid confusion that could be caused by line #s being 1 based ( #13198 )
2026-02-11 14:02:30 -06:00
Aiden Cline
6b4d617df0
feat: adjust read tool so that it can handle dirs too ( #13090 )
2026-02-11 13:23:00 -06:00
Aiden Cline
aa6b552c39
Revert pr that was mistakenly merged ( #11844 )
2026-02-02 15:28:02 -06:00
Aiden Cline
612b656d36
fix: adjust resolve parts so that when messages with multiple @ references occur, the tool calls are properly ordered
2026-02-01 19:26:23 -05:00
Aiden Cline
558590712d
fix: ensure parallel tool calls dont double load AGENTS.md
2026-01-28 01:38:10 -05:00
adamelmore
a8c18dba82
fix(core): expose Instance.directory to custom tools
2026-01-26 20:07:47 -06:00
Aiden Cline
6cf2c3e3db
fix: use Instance.directory instead of process.cwd() in read tool
2026-01-26 20:57:50 -05:00
Aiden Cline
39a73d4894
feat: dynamically resolve AGENTS.md files from subdirectories as agent explores them ( #10678 )
2026-01-26 10:49:41 -05:00
zerone0x
38c641a2fc
fix(tool): treat .fbs files as text instead of images ( #9276 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2026-01-18 13:17:49 -06:00
Dax Raad
f94ee5ce90
core: extract external directory validation to shared utility to reduce code duplication across tools
2026-01-10 18:49:42 -05:00
Aiden Cline
1b82511fbd
feat: write truncated tool outputs to files ( #7239 )
2026-01-07 17:25:00 -06:00
Aiden Cline
3611260405
core: remove hardcoded .env read block and use new permissions model instead
2026-01-04 01:49:49 -06:00
Dax
351ddeed91
Permission rework ( #6319 )
...
Co-authored-by: Github Action <action@github.com >
Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com >
2026-01-01 17:54:11 -05:00
Buck Evan
60db171b44
fix(read): narrow .env file blocking to not block .envrc ( #5654 )
...
Co-authored-by: Claude <noreply@anthropic.com >
2025-12-22 08:37:43 -06:00
Aiden Cline
84a0868e66
fix: read when file is svg
2025-12-09 14:24:30 -06:00
Aiden Cline
a3bb4a3c85
pdf support in read tool ( #5222 )
...
Co-authored-by: ammi1378 <ammi1378@users.noreply.github.com >
2025-12-07 21:54:00 -06:00
Aiden Cline
350a32274a
fix: model not being passed correctly to tool
2025-12-04 11:15:30 -06:00
Dax
6d3fc63658
core: refactor provider and model system ( #5033 )
...
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: thdxr <thdxr@users.noreply.github.com >
2025-12-03 21:09:03 -05:00
Aiden Cline
bbf4574476
fix: make external_directory permission wildcarding more sane
2025-11-19 12:55:02 -06:00
K Whiteside
47bfae52c0
fix: permission checks for external_directory and doom_loop ( #4433 )
...
Co-authored-by: Aiden Cline <aidenpcline@gmail.com >
Co-authored-by: AerionDyseti <AerionDyseti@users.noreply.github.com >
2025-11-18 17:18:23 -06:00
Aiden Cline
0a2fffa9b5
tweak: whitelist
2025-11-17 13:18:13 -06:00
Dax Raad
7ec32f834e
improve read tool end-of-file detection to prevent infinite loops
2025-11-13 21:41:06 -05:00
Aiden Cline
4c2e888709
no mr llm, you may not read that
2025-11-13 19:16:07 -06:00
Aiden Cline
4e549b1c05
fix: allow user to configure doom loop & external dir perms ( #4095 )
2025-11-09 20:21:38 -06:00
GitHub Action
34ff87d504
chore: format code
2025-11-08 01:59:02 +00:00
Dax Raad
1ea3a8eb9b
big format
2025-11-06 13:03:12 -05:00
Aiden Cline
d425723249
ask instead of throwing tool error if file is outside cwd
2025-11-05 16:09:47 -06:00
Jérôme Benoit
0eb899a950
chore: cleanup versioned zod imports ( #3460 )
...
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com >
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: rekram1-node <rekram1-node@users.noreply.github.com >
2025-10-26 14:50:41 -05:00
Aiden Cline
225adc46ba
feat: allow read tool to handle images ( #3052 )
2025-10-09 09:05:11 -05:00
Dax
c1b4e1f19d
Upgrade to Zod v4 ( #2605 )
...
Co-authored-by: GitHub Action <action@github.com >
2025-09-15 03:12:07 -04:00
Dax
f993541e0b
Refactor to support multiple instances inside single opencode process ( #2360 )
...
This release has a bunch of minor breaking changes if you are using opencode plugins or sdk
1. storage events have been removed (we might bring this back but had some issues)
2. concept of `app` is gone - there is a new concept called `project` and endpoints to list projects and get the current project
3. plugin receives `directory` which is cwd and `worktree` which is where the root of the project is if it's a git repo
4. the session.chat function has been renamed to session.prompt in sdk. it no longer requires model to be passed in (model is now an object)
5. every endpoint takes an optional `directory` parameter to operate as though opencode is running in that directory
2025-09-01 17:15:49 -04:00
Aiden Cline
ebd1b18b70
fix: better binary file detection ( #2025 )
2025-08-17 17:59:51 -05:00