Commit graph

266 commits

Author SHA1 Message Date
Kit Langton
4c4860fb24
Replace Instance.disposeAll/load with fixture helper (#25418) 2026-05-02 10:56:15 -04:00
Zeke Sikelianos
51e310c9ce
fix(read): prevent unsupported image formats from being sending to provider (#21114)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2026-05-01 18:14:22 -05:00
Aiden Cline
6aa8e894b1
chore: rm broken codesearch tool (#24992) 2026-04-29 13:15:44 -05:00
Kit Langton
6015084fa2
Prepare Effect HttpApi backend parity (#24853) 2026-04-29 09:34:50 -04:00
Dax
f25f1485d5
refactor: remove module barrels (#24554) 2026-04-27 14:33:33 -04:00
Luke Parker
8718b98ee1
fix: pass workspace symbol query to experimental LSP tool (#24576) 2026-04-27 05:39:36 +00:00
Luke Parker
141f33d24b
feat: configurable shell selection + desktop settings UI (#20602) 2026-04-27 00:54:55 +00:00
Dax Raad
1e98167b0e core: move cross-spawn-spawner to root and remove unused types
The cross-spawn-spawner module has been moved from src/effect/ to src/
to simplify the core package structure. The src/types.d.ts file which
contained unused type declarations has also been removed. All imports
throughout the codebase have been updated to reflect the new location.

This change reduces the package's internal complexity by flattening the
module hierarchy and removing dead code, making future maintenance easier.
2026-04-25 14:30:16 -04:00
Dax Raad
3eee2f6afa core: move cross-spawn-spawner from opencode to core package
Moved the cross-spawn-spawner module from packages/opencode to packages/core
to enable code sharing across the monorepo. This consolidates the process
spawning infrastructure into the core package so other packages can use
cross-platform child process spawning without duplicating the implementation.

Updated all import statements across the codebase to reference the new
location (@opencode-ai/core/effect/cross-spawn-spawner). Removed the
local copy from the opencode package along with its tests.
2026-04-25 14:23:17 -04:00
Dax
62ef2a2207
refactor: rename shared package to core (#24309) 2026-04-25 10:59:17 -04:00
Simon Klee
9ff999cc2b
tool/lsp: include request details in permission metadata (#24139) 2026-04-25 14:21:35 +02:00
rahul
f8c6ddd4cb
feat(truncate): allow configuring tool output truncation limits (#23770)
Co-authored-by: rgs_ramp <rgs@ramp.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2026-04-23 17:43:33 -04:00
Kit Langton
3910a6e527
refactor(tool): migrate tool framework + all 18 built-in tools to Effect Schema (#23244) 2026-04-23 16:09:34 -04:00
opencode-agent[bot]
894e638914 chore: generate 2026-04-23 00:25:37 -04:00
Luke Parker
8113a4360e fix: preserve BOM in text tool round-trips (#23797) 2026-04-23 00:25:36 -04:00
opencode-agent[bot]
84e322b0fd chore: generate 2026-04-20 05:15:29 +00:00
Aiden Cline
8bc4f91fd9
fix: parallel edits sometimes would override each other (#23483) 2026-04-20 00:14:21 -05:00
Kit Langton
9918f389e7
fix: detect attachment mime from file contents (#23291) 2026-04-18 11:59:08 -04:00
Aiden Cline
9c16bd1e30
fix: make skills logic more token efficient (#23253) 2026-04-17 23:51:16 -05:00
Dax Raad
2f73e73e9d trace npm fully 2026-04-17 14:08:45 -04:00
Aiden Cline
76a141090e
chore: delete filetime module (#22999) 2026-04-16 23:31:21 -05:00
Dax
675a46e23e
CLI perf: reduce deps (#22652) 2026-04-16 02:03:03 -04:00
Kit Langton
5011465c81
feat: unwrap tool namespaces to flat exports + barrel (#22762) 2026-04-16 03:56:54 +00:00
Kit Langton
343a564183
feat: unwrap 11 util namespaces to flat exports + barrel (#22739) 2026-04-15 23:15:58 -04:00
Kit Langton
f7d4665e40
fix: resolve oxlint warnings — suppress false positives, remove unused imports (#22687) 2026-04-15 21:33:54 -04:00
Kit Langton
bbdbc107ae
feat: unwrap Config namespace to flat exports + barrel (#22689) 2026-04-15 21:26:24 -04:00
Aiden Cline
307251bf3c
fix: bash memory usage (#22660) 2026-04-15 20:09:06 -05:00
Dax
be9432a893
shared package (#22626) 2026-04-15 14:26:20 +00:00
Dax Raad
6ce5c01b1a ignore: v2 experiments 2026-04-14 14:25:38 -04:00
Kit Langton
68384613be
refactor(session): remove async facade exports (#22471) 2026-04-14 13:45:13 -04:00
Kit Langton
4f967d5bc0
improve bash timeout retry hint (#22390) 2026-04-14 12:55:03 -04:00
Shoubhit Dash
d6840868d4
refactor(ripgrep): use embedded wasm backend (#21703) 2026-04-14 11:56:23 +05:30
Kit Langton
a06f40297b
fix grep exact file path searches (#22356) 2026-04-13 19:26:50 -04:00
Kit Langton
c22e34853d
refactor(auth): remove async auth facade exports (#22306) 2026-04-13 12:31:43 -04:00
Kit Langton
9ae8dc2d01
refactor: remove ToolRegistry runtime facade (#22307) 2026-04-13 11:09:32 -04:00
Kit Langton
6fdb8ab90d
refactor(file): add ripgrep search service (#22295) 2026-04-13 10:04:32 -04:00
Kit Langton
321bf1f8e1
refactor: finish small effect service adoption cleanups (#22094) 2026-04-13 09:17:13 -04:00
opencode-agent[bot]
c1ddc0ea2d chore: generate 2026-04-12 01:21:17 +00:00
Kit Langton
319b7655b7
refactor(tool): destroy Truncate facade, effectify Tool.define (#22093) 2026-04-11 21:20:12 -04:00
Kit Langton
5ee7edaf9e
refactor(tool): make Tool.Info init effectful (#21989) 2026-04-11 12:33:17 -04:00
Kit Langton
3dd09147c2
refactor(tool): Tool.Context.metadata returns Effect (#21972) 2026-04-10 23:12:04 -04:00
Kit Langton
af8aff3788
refactor: make TaskPromptOps effectful (#21971) 2026-04-10 22:57:47 -04:00
opencode-agent[bot]
577139c626 chore: generate 2026-04-11 02:36:59 +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
5d6fe01465
convert skill tool to Tool.defineEffect (#21936) 2026-04-10 19:49:53 -04:00
Kit Langton
0556774097
refactor(tool): convert apply_patch to Tool.defineEffect (#21938) 2026-04-10 19:42:14 -04:00
Kit Langton
d9d5a0615e
refactor: break SessionPrompt/TaskTool cycle via ctx injection (#21948) 2026-04-10 19:36:13 -04:00
Kit Langton
d72ddd71fa
refactor(tool): convert grep tool to Tool.defineEffect (#21937) 2026-04-10 19:20:00 -04:00
opencode-agent[bot]
fb26308bc7 chore: generate 2026-04-10 21:12:22 +00:00
Kit Langton
b41fa8e318
refactor: convert edit tool to Tool.defineEffect (#21904) 2026-04-10 17:10:28 -04:00
Kit Langton
b139bc2ef3
refactor(tool): convert write tool to Tool.defineEffect (#21901) 2026-04-10 16:57:12 -04:00
opencode-agent[bot]
59d08683ea chore: generate 2026-04-10 17:27:31 +00:00
Kit Langton
f7514d9eca
refactor(tool): convert bash to defineEffect with ChildProcessSpawner (#21895) 2026-04-10 13:26:31 -04:00
Kit Langton
e83404367c
refactor(tool): convert webfetch tool internals to Effect (#21809) 2026-04-10 10:50:13 -04:00
Kit Langton
17bd16667c
refactor(effect): move tool descriptions into registry (#21795) 2026-04-09 22:20:27 -04:00
Kit Langton
38f8714c09
refactor(effect): build task tool from agent services (#21017) 2026-04-08 19:02:19 -04:00
Aiden Cline
cd87d4f9d3
test: update webfetch test (#21398)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2026-04-08 12:25:02 -05:00
Kit Langton
ae614d919f
fix(tui): simplify console org display (#21339)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2026-04-07 21:03:24 -04:00
Dax
b7fab49b64
refactor(snapshot): store unified patches in file diffs (#21244)
Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com>
2026-04-07 19:48:23 -04:00
Dax
463318486f
core: refactor tool system to remove agent context from initialization (#21052) 2026-04-07 19:48:12 -04:00
Aiden Cline
bc1840b196
fix(opencode): clear webfetch timeouts on failed fetches (#21378) 2026-04-07 20:46:02 +00:00
Kit Langton
c796b9a19e
refactor(effect): move read tool onto defineEffect (#21016) 2026-04-04 19:06:00 -04:00
Kit Langton
f2d4ced8ea
refactor(effect): build todowrite tool from Todo service (#20789)
Co-authored-by: Juan Pablo Carranza Hurtado <52012198+jpcarranza94@users.noreply.github.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-03 12:05:40 -04:00
Kit Langton
7994dce0f2
refactor(effect): resolve built tools through the registry (#20787) 2026-04-03 10:31:00 -04:00
opencode-agent[bot]
8daeacc989 chore: generate 2026-04-03 02:10:50 +00:00
Juan Pablo Carranza Hurtado
81d3ac3bf0
fix: prevent Tool.define() wrapper accumulation on object-defined tools (#16952)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-02 22:09:53 -04:00
Kit Langton
e4ff1ea778
refactor(bash): use Effect ChildProcess for bash tool execution (#20496) 2026-04-01 19:48:47 -04:00
Kit Langton
0c03a3ee10
test: migrate prompt tests to HTTP mock LLM server (#20304) 2026-03-31 19:14:32 -04:00
Aiden Cline
434d82bbe2
test: update model test fixture (#20182) 2026-03-31 16:20:01 +00:00
Luke Parker
b234370080
feat(windows): add first-class pwsh/powershell support (#16069) 2026-03-30 13:10:01 +10:00
Kit Langton
97c15a087d
effectify Bus service: migrate to Effect PubSub + InstanceState (#18579) 2026-03-25 20:19:24 -04:00
Kit Langton
38e0dc9ccd
Move service state into InstanceState, flatten service facades (#18483) 2026-03-21 04:51:35 +00:00
Vladimir Glafirov
05d3e65f76
feat: enable GitLab Agent Platform with workflow model discovery (#18014) 2026-03-20 12:55:22 -05:00
Kit Langton
e78944e9a4
effectify Installation service, drop Effect suffix from namespaces (#18266) 2026-03-20 12:10:33 -04:00
Luke Parker
7866dbcfcc
fix: avoid truncate permission import cycle (#18292) 2026-03-19 23:52:04 -04:00
jorge g
2dbcd79fd2
fix: stabilize agent and skill ordering in prompt descriptions (#18261)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2026-03-19 15:04:03 -05:00
Kit Langton
5dfe86dcb1
refactor(truncation): effectify TruncateService, delete Scheduler (#17957) 2026-03-17 21:59:54 -04:00
Luke Parker
cb69501098
test(opencode): deflake file and tool timing (#17859) 2026-03-17 00:49:04 +00:00
Kit Langton
f015154314
refactor(permission): effectify PermissionNext + fix InstanceState ALS bug (#17511) 2026-03-14 18:28:00 +00:00
Kit Langton
16a6d6feba
feat(id): brand WorkspaceID through Drizzle and Zod schemas (#16964) 2026-03-11 23:30:17 +00:00
Kit Langton
cb67465675
feat(id): brand SessionID through Drizzle and Zod schemas (#16953) 2026-03-11 23:16:56 +00:00
Aiden Cline
f96e2d4222
tweak: adjust skill presentation to be a little less token heavy (#17098) 2026-03-11 16:03:15 -05:00
Quan Ran
be9b4d1bcd
fix(opencode): preserve original line endings in 'edit' tool (#9443)
Co-authored-by: LukeParkerDev <10430890+Hona@users.noreply.github.com>
2026-03-07 07:42:54 +00:00
Luke Parker
3d379c20c4
fix(test): replace Unix-only assumptions with cross-platform alternatives (#14906) 2026-02-24 23:03:18 +10:00
Luke Parker
ee754c46f9
fix(win32): normalize paths at permission boundaries (#14738) 2026-02-23 12:05:21 +10:00
Erik Demaine
0042a07052
fix: Windows path support and canonicalization (#13671)
Co-authored-by: LukeParkerDev <10430890+Hona@users.noreply.github.com>
2026-02-23 10:10:27 +10:00
Dax
02a9495063
Remove use of Bun.file (#14215) 2026-02-19 11:32:32 -05:00
Dax
6b29896a35
feat: Add centralized filesystem module for Bun.file migration (#14117) 2026-02-18 15:30:52 +00: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
Ryan Vogel
ba54cee55e
feat(tool): return image attachments from webfetch (#13331) 2026-02-12 12:09:29 -05: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
Dax
556adad67b
fix: wait for dependencies before loading custom tools and plugins (#12227) 2026-02-05 03:25:43 +00:00
Aiden Cline
857b8a4b56
test: add test for new skill improvements (#11969) 2026-02-03 16:05:10 +00:00
Aiden Cline
188cc24bfc
chore: cleanup external_dir perm logic (#11845) 2026-02-02 16:43:55 -06:00
Dax Raad
6b972329fd sync 2026-01-31 01:58:20 -05:00
Patrick Schiel
e7ff7143b6
fix: handle redirected_statement treesitter node in bash permissions (#6737) 2026-01-30 16:11:45 -06: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
Aiden Cline
e2d0d85d93 test: fix 2026-01-24 23:42:12 -05:00
Aiden Cline
2917a2fa61 test: fix 2026-01-24 23:41:47 -05:00
Britt
f4cf3f4976
fix(web): construct apply_patch metadata before requesting permission (#10422) 2026-01-24 12:00:21 -06:00
Aiden Cline
9706aaf552 rm filetime assertions from patch tool 2026-01-20 00:32:29 -06: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
GitHub Action
d13c0ea915 chore: generate 2026-01-18 06:42:13 +00:00
Bowen Dwelle
3591372c45
feat(tool): increase question header and label limits (#9201) 2026-01-18 00:41:36 -06:00
Aiden Cline
b7ad6bd839
feat: apply_patch tool for openai models (#9127) 2026-01-18 00:35:09 -06:00
Aiden Cline
5c4345da4f test: fix read test 2026-01-12 15:49:31 -06:00
Aiden Cline
735f3d17bc
fix: ensure plurals are properly handled (#8070) 2026-01-12 15:21:01 -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
d5f0e3fccc test: add larger image test for read tool 2026-01-07 23:01:02 -06: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
Aiden Cline
76186d19f3 fix: ensure new permissions changes work for special case bash commands like rm, cd, etc 2026-01-01 17:27:23 -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
Aiden Cline
664e6bf2d0 test: add more tests to make sure that cwd is locked for read tool 2025-12-26 14:30:05 -06:00
lif
5af35117db
fix: handle Windows CRLF line endings in grep tool (#5948)
Co-authored-by: Claude <noreply@anthropic.com>
2025-12-22 22:26:15 -06: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
59fb3ae606 ignore: add bash tests 2025-12-10 15:07:40 -06:00
Aiden Cline
75a4dcbce8
tweak: make bash give agent more awareness of cwd, bump default timeout, drop max timeout (#5140) 2025-12-06 23:55:07 -06:00
Aiden Cline
618c654aa0 ignore: todo fix test case 2025-11-19 15:18:21 -06:00
Aiden Cline
a1dc4ebbe4 ignore: flaky test be a lil less flaky plz 2025-11-19 14:46:06 -06:00
Aiden Cline
e4e6096510 ignore: fix hanging test 2025-11-19 14:38:12 -06:00
Dax Raad
299bf1dca8 ci 2025-11-11 01:59:10 -05:00
GitHub Action
34ff87d504 chore: format code 2025-11-08 01:59:02 +00:00
Dax Raad
3c2803fd9a flaky test 2025-11-06 13:05:53 -05:00
Dax Raad
67f3c934fe fix tests 2025-11-06 11:42:46 -05:00
Aiden Cline
065f656fb0 chore: rm hanging test 2025-11-06 10:39:32 -06:00
Dax
96bdeb3c7b
OpenTUI is here (#2685) 2025-10-31 15:07:36 -04:00
Dax Raad
4cab66da6c test cleanup 2025-10-24 09:29:38 -04:00
Dax Raad
41ce56494b core: make patch tool more reliable and consistent with other editing tools
The patch tool now works seamlessly alongside other file editing tools with improved
error handling and a more intuitive permission system. Users will experience:

- More reliable patch application with better error messages
- Consistent permission prompts that match other editing tools
- Smoother integration when applying complex multi-file changes
- Better feedback on what changes are being made before applying patches

This refactoring leverages the robust patch parsing engine while making the tool
feel native to the opencode workflow, reducing friction when making bulk changes
to your codebase.
2025-10-01 06:45:43 -04:00
Dax Raad
4b94d98f89 ci: improve test coverage 2025-09-27 03:04:42 -04:00
Dax Raad
d0043a4a78 sync 2025-09-27 02:53:20 -04:00
Dax Raad
ae6154e1c3 ignore: rework bootstrap so server lazy starts it 2025-09-19 05:11:29 -04:00
Dax
3b6c0ec0b3
support custom tools (#2668) 2025-09-18 03:58:21 -04:00
Dax Raad
abd99aeb7d ignore: fix event type gen 2025-09-17 01:17:56 -04:00
Dax
c1b4e1f19d
Upgrade to Zod v4 (#2605)
Co-authored-by: GitHub Action <action@github.com>
2025-09-15 03:12:07 -04:00
Zack Jackson
ab3c22b77a
feat: add dynamic tool registration for plugins and external services (#2420) 2025-09-08 16:25:04 -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
Dax
10735f93ca
Add agent-level permissions with whitelist/blacklist support (#1862) 2025-08-12 11:39:39 -04:00
Dax Raad
061ba65d20 show combined output of bash tool progressively 2025-08-11 01:23:00 -04:00
Yordis Prieto
04a1ab3893
chore: enhance bash command tests with config mock and timeout adjustments (#1486)
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
2025-08-01 14:14:54 -04:00
adamdotdevin
1d682544b9
fix: test 2025-07-31 10:10:34 -05:00
adamdotdevin
ef633fe92e
fix: test 2025-07-31 10:07:58 -05:00
Dax
18888351e9
use treesitter to parse bash commands and catch commands that go outside of cwd (#1443) 2025-07-30 20:57:52 -04:00
Yordis Prieto
c38b091895
fix: update glob pattern and path in tool test (#1436) 2025-07-30 15:42:13 -05:00
Yordis Prieto
eecfd6d0ca
fix: unit test assertion (#1435)
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
2025-07-30 15:13:37 -05:00
Yordis Prieto
4c34b69ae6
chore: fix test to have deterministic testing (#1401) 2025-07-29 17:54:22 -05:00
Dax Raad
e97613ef9f allow temperature to be configured per mode 2025-07-25 13:29:44 -04:00
Dax Raad
8dcd39f5b7 real life totally configurabl ai subasians 2025-07-24 21:21:02 -04:00