Commit graph

339 commits

Author SHA1 Message Date
Valentin Vivaldi
733a3bd031
fix(core): prevent agent loop from stopping after tool calls with OpenAI-compatible providers (#14973)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2026-04-01 21:34:01 -05:00
Kit Langton
0bae38c062
refactor(instruction): migrate to Effect service pattern (#20542) 2026-04-01 22:22:51 -04:00
Kit Langton
26fb6b8788
refactor: add Effect-returning versions of MessageV2 functions (#20374) 2026-04-01 19:48:36 -04:00
Kit Langton
a9c85b7c27
refactor(shell): use Effect ChildProcess for shell command execution (#20494) 2026-04-01 12:07:57 -04:00
Kit Langton
5fd833aa18
refactor: standardize InstanceState variable name to state (#20267) 2026-04-01 10:39:43 -04:00
Kit Langton
181b5f6236 refactor(prompt): use Provider service in effect layers (#20167) 2026-04-01 00:44:15 +00:00
Kit Langton
0c03a3ee10
test: migrate prompt tests to HTTP mock LLM server (#20304) 2026-03-31 19:14:32 -04:00
Dax
befbedacdc
fix(session): subagents not being clickable (#20263) 2026-03-31 08:58:46 -04:00
Kit Langton
e6f6f7aff1
refactor: replace Filesystem util with AppFileSystem service (#20127) 2026-03-30 21:48:28 +00:00
Kit Langton
c5442d418d
refactor(session): effectify SessionPrompt service (#19483) 2026-03-30 20:06:51 +00:00
Luke Parker
b234370080
feat(windows): add first-class pwsh/powershell support (#16069) 2026-03-30 13:10:01 +10:00
Kit Langton
860531c275
refactor(session): effectify session processor (#19485) 2026-03-28 12:09:47 -04:00
Aiden Cline
c33d9996f0
feat: AI SDK v6 support (#18433) 2026-03-27 15:24:30 -05:00
Ryan Skidmore
814a515a8a
fix: improve plugin system robustness — agent/command resolution, async errors, hook timing, two-phase init (#18280)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2026-03-24 12:50:55 -05:00
Kit Langton
0e0e7a4a4b
effectify Command service (#18568) 2026-03-22 00:21:41 +00:00
Kit Langton
10a3d6c54e
effectify SessionStatus service (#18565) 2026-03-21 23:55:07 +00:00
Kit Langton
38e0dc9ccd
Move service state into InstanceState, flatten service facades (#18483) 2026-03-21 04:51:35 +00:00
Luke Parker
d460614cd7
fix: lots of desktop stability, better e2e error logging (#18300) 2026-03-20 00:12:06 -04:00
Dax
52a7a04ad8
refactor: replace Bun shell execution with portable Process utilities (#18318) 2026-03-19 21:17:06 -04:00
Kit Langton
5dfe86dcb1
refactor(truncation): effectify TruncateService, delete Scheduler (#17957) 2026-03-17 21:59:54 -04:00
Kit Langton
fee3c196c5
add prompt schema validation debug logs (#17812) 2026-03-17 19:18:16 -04:00
Kit Langton
2cbdf04ec9
refactor(file-time): effectify FileTimeService with Semaphore locks (#17835) 2026-03-16 18:23:13 +00:00
Jason Quense
c2ca1494e5
fix(opencode): preserve prompt tool enables with empty agent permissions (#17064)
Co-authored-by: jquense <jquense@ramp.com>
2026-03-15 23:01:46 -05:00
Adam
843f188aaa
fix(app): support text attachments (#17335) 2026-03-13 06:58:24 -05:00
Adam
9d3c42c8c4
fix(app): task error state 2026-03-12 16:25:49 -05:00
Kit Langton
1cb7df7159
refactor(provider): flow branded ProviderID/ModelID through internal signatures (#17182) 2026-03-12 14:48:17 +00:00
Kit Langton
c45467964c
feat(id): brand ProviderID and ModelID (#17110) 2026-03-12 09:27:52 -04:00
Kit Langton
090f636354
feat(id): brand PartID through Drizzle and Zod schemas (#16966) 2026-03-11 23:40:50 +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
0f6bc8ae71
tweak: adjust way skills are presented to agent to increase likelyhood of skill invocations. (#17053) 2026-03-11 10:24:55 -05:00
Luke Parker
4ab35d2c5c
fix(electron): hide Windows background consoles (#16842)
Co-authored-by: Brendan Allan <git@brendonovich.dev>
2026-03-11 13:33:06 +10:00
Dax Raad
831eb6881b refactor: change pathToFileURL imports from bun to url module 2026-03-09 14:52:25 -04:00
bentrd
be20f865ac
fix: recover from 413 Request Entity Too Large via auto-compaction (#14707)
Co-authored-by: Noam Bressler <noamzbr@gmail.com>
2026-03-02 13:10:55 +05:30
NatChung
d2d7a37bca fix: add missing id/sessionID/messageID to MCP tool attachments (#14345) 2026-02-19 18:37:56 -06:00
Dax
01d518708a remove unnecessary deep clones from session loop and LLM stream (#14354) 2026-02-19 18:37:55 -06: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
57b63ea83d
refactor: migrate src/session/prompt.ts from Bun.file() to Filesystem/stat modules (#14128) 2026-02-19 00:18:05 +00:00
opencode-agent[bot]
2d7c9c9692 chore: generate 2026-02-18 20:15:14 +00:00
Helge Tesdal
1aa18c6cd6
feat(plugin): pass sessionID and callID to shell.env hook input (#13662) 2026-02-18 14:14:18 -06:00
Aiden Cline
e35a4131d0
core: keep message part order stable when files resolve asynchronously (#13915) 2026-02-16 18:45:11 -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
Dax
6d95f0d14c
sqlite again (#10597)
Co-authored-by: Github Action <action@github.com>
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
Co-authored-by: Brendan Allan <git@brendonovich.dev>
2026-02-14 04:19:02 +00:00
Aiden Cline
98aeb60a7f
fix: ensure @-ing a dir uses the read tool instead of dead list tool (#13428) 2026-02-12 23:20:33 -06:00
Dax Raad
56ad2db020 core: expose tool arguments in shell hook for plugin visibility 2026-02-12 09:54:47 -05:00
Kyle Mistele
e269788a8f
feat: support claude agent SDK-style structured outputs in the OpenCode SDK (#8161)
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: Dax Raad <d@ironbay.co>
2026-02-12 04:54:05 +00: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
0fd6f365be
fix(core): ensure compaction is more reliable, add reserve token buffer to ensure that input window has enough room to compact (#12924)
Co-authored-by: James Lal <james@littlebearlabs.io>
2026-02-10 19:55:22 -06:00
Surma
832902c8e3
fix: publish session.error event for invalid model selection (#8451) 2026-02-09 16:27:48 -06:00
Aiden Cline
8ad4768ecd
tweak: adjust agent variant logic to not require exact match on model, and instead check if the variant is available for model (#12838) 2026-02-09 11:00:06 -06:00
Shantur Rathore
a486b74b14
feat(core): Set variant in assistant messages too (#12531)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2026-02-06 16:33:47 -06:00
Khang Ha (Kelvin)
fde0b39b7c
fix: properly encode file URLs with special characters (#12424) 2026-02-06 16:16:56 -06:00
opencode-agent[bot]
e767801db2 chore: generate 2026-02-06 22:14:34 +00:00
Goni Zahavy
def907ae4b
fix(opencode): SessionPrompt.shell() now triggers loop if messages are queued (#10987) 2026-02-06 16:13:11 -06:00
Dax
a45841396f
core: fix unhandled errors when aborting with queued messages (#12369) 2026-02-05 22:27:27 +00:00
Adam
1721c6efdf
fix(core): session errors when attachment file not found 2026-02-04 10:21:03 -06:00
Tyler Gannon
a30696f9bf
feat(plugin): add shell.env hook for manipulating environment in tools and shell (#12012) 2026-02-03 15:18:41 -06:00
Aiden Cline
b7b734f51f
fix: ensure mcp tools are sanitized (#11984) 2026-02-03 12:22:00 -06:00
Aiden Cline
aa6b552c39
Revert pr that was mistakenly merged (#11844) 2026-02-02 15:28:02 -06:00
Dax Raad
6c9b2c37a5 core: allow starting new sessions after errors by fixing stuck session status 2026-02-01 20:39:58 -05: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
neavo
f15755684f
fix(opencode): scope agent variant to model (#11410) 2026-02-01 14:12:30 -06:00
Aiden Cline
558590712d fix: ensure parallel tool calls dont double load AGENTS.md 2026-01-28 01:38:10 -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
Noam Bressler
6b83b172ae
fix: await SessionRevert.cleanup for shell (#10669) 2026-01-26 07:36:17 -05:00
Aiden Cline
88bcd04659 tweak: tell the model what model it is in environment section of prompt 2026-01-24 12:10:15 -05:00
Aiden Cline
c2844697f3 fix: ensure images are properly returned as tool results 2026-01-21 23:54:44 -06:00
luo jiyin
c3415b79fe
fix: correct spelling 'supercedes' to 'supersedes' (#9935)
Signed-off-by: luojiyin <luojiyin@hotmail.com>
2026-01-21 22:10:40 -06:00
Aiden Cline
9dc95c4c69 tweak: ensure synthetic user message following subtasks is only added when user manually invoked subtask 2026-01-20 22:51:54 -06:00
GitHub Action
dac73572e0 chore: generate 2026-01-21 02:39:31 +00:00
Ariane Emory
cbe20d22d3
fix: don't update session timestamp for metadata-only changes (resolves #9494) (#9495) 2026-01-20 20:38:54 -06:00
Aiden Cline
021e42c0bb core: fix issue when switching models (mainly between providers) where past reasoning/metadata would be sent to server and cause 400 errors since they came from another account/provider 2026-01-20 16:39:00 -06:00
Aiden Cline
0c4ffec857 chore: rename toModelMessage -> toModelMessages 2026-01-20 16:16:23 -06:00
Tommy D. Rossi
68e41a1ee7
fix: pass arguments to commands without explicit placeholders (#9606) 2026-01-20 11:12:43 -06:00
Aiden Cline
0d49df46ef fix: ensure truncation handling applies to mcp servers too 2026-01-19 23:19:24 -06:00
Spoon
bfd2f91d5b
feat(hook): command execute before hook (#9267) 2026-01-18 13:11:22 -06:00
Aiden Cline
b7ad6bd839
feat: apply_patch tool for openai models (#9127) 2026-01-18 00:35:09 -06:00
Aiden Cline
f5a6a4af7f Revert "fix: ensure that tool attachments arent sent as user messages (#8944)"
This reverts commit 8fd1b92e6e.
2026-01-16 15:50:24 -06:00
Aiden Cline
8fd1b92e6e
fix: ensure that tool attachments arent sent as user messages (#8944) 2026-01-16 12:47:43 -06:00
Aiden Cline
e0a854f035 Revert "fix: rm user message when dealing w/ image attachments, use proper tool attachment instead"
This reverts commit de2de099b4.
2026-01-16 09:33:54 -06:00
Aiden Cline
de2de099b4 fix: rm user message when dealing w/ image attachments, use proper tool attachment instead 2026-01-16 00:05:10 -06:00
Daniel Polito
8b08d340ac
fix: stop changing main model/agent from subtasks invocation (#7681)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2026-01-15 17:18:39 -06:00
Dax Raad
fcc561ebb7 fix plan mode when not in git worktree 2026-01-14 08:21:26 -05:00
Dax
0a3c72d678
feat: add plan mode with enter/exit tools (#8281) 2026-01-13 15:55:48 -05:00
Andrey Taranov
8b9a85b7e7
fix(mcp): support resource content type in MCP tool output (#7879) 2026-01-11 21:39:42 -06:00
M. Adel Alhashemi
34c9d106ee
refactor: simplify task tool subagent filtering (#7165)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2026-01-07 13:28:13 -06:00
Sewer.
fd7b7eacd3
Added: Ability to hide subagents from primary agents system prompt. (#4773)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2026-01-06 22:29:17 -06:00
Aiden Cline
625c9dae5c fix: ensure commands listing subagent work 2026-01-06 17:05:20 -06:00
Aiden Cline
5db78f20e9 core: fix title generation for subtask-only messages to extract actual user prompts instead of generic tool execution descriptions 2026-01-06 13:30:39 -06:00
M. Adel Alhashemi
485aadcbfa
fix: restore skill filtering by agent permissions (#7042) 2026-01-06 12:01:37 -06:00
Melih Mucuk
a38e1701ee
fix: pass image parts to custom commands (#6525)
Co-authored-by: Melih Mucuk <melih@monkeysteam.com>
2026-01-05 13:06:57 -06:00
Paolo Ricciuti
21dc3c24d9
feat: mcp resources (#6542) 2026-01-04 09:12:54 -06:00
Aiden Cline
5aa4fd0042 core: add variant to chat.message input 2026-01-04 00:28:52 -06:00
Aiden Cline
f991fbbde8
core: ephemerally wrap queued user messages with reminder to stay on track (#6725) 2026-01-02 22:42:56 -06:00
Dax Raad
dad9c917d2 tui: fix memory leaks in session management and improve permission error handling 2026-01-01 21:28:11 -05: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
Saatvik Arya
7a3ff5b98f
fix(session): check for context overflow mid-turn in finish-step (#6480) 2026-01-01 12:03:18 -06:00
Lekë Dobruna
3b03324578
fix: display error if invalid agent is used in a command (#6578) 2026-01-01 11:39:21 -06:00
Paolo Ricciuti
57a2b5f444
feat: mcp prompts as slash commands (alternative) (#5767)
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-12-31 00:51:25 -06:00
Aiden Cline
ed0c0d90be
feat: add variants toggle (#6325)
Co-authored-by: Github Action <action@github.com>
2025-12-29 21:43:50 -06:00
Dax Raad
ed06de5e30 core: add configurable compaction settings to allow users to disable auto-compaction and pruning via config instead of flags 2025-12-26 19:31:48 -05:00
Mohammad Alhashemi
3a54ab68d1
feat(skill): add per-agent filtering to skill tool description (#6000) 2025-12-22 20:14:33 -05:00
Mohammad Alhashemi
046e351140
feat: add native skill tool with permission system (#5930)
Co-authored-by: Dax Raad <d@ironbay.co>
2025-12-22 18:24:06 -05:00
Dax
8fe0715928
feat: add Agent Skills support (#5921) 2025-12-21 19:44:56 -05:00
Dax Raad
c333ffa38b core: fix LSP server binary installation and shell command execution
- Ensure proper file permissions are set for installed LSP binaries on non-Windows platforms
- Add error handling for shell command execution in prompt system to prevent crashes
2025-12-21 18:33:37 -05:00
Matt Silverlock
8f6c8844d7 feat: support configuring a default_agent across all API/user surfaces (#5843)
Co-authored-by: observerw <observerw@users.noreply.github.com>
2025-12-20 11:49:23 -06:00
Jeon Suyeol
4bf882ba81
fix(command): validate model before executing slash command (#5740) 2025-12-18 10:35:40 -06:00
Qio
1e4bfbcf6f
add OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX to override 32k default (#5679)
Co-authored-by: qio <handsomehust@gmail.com>
2025-12-17 10:35:43 -06:00
Spoon
b8a8fb0de6
plugin(hook): add task tool execution hooks and command context tracking (#5642) 2025-12-16 19:28:09 -06:00
Aiden Cline
5f57cee8e4
fix: user invoked subtasks causing tool_use or missing thinking signa… (#5650) 2025-12-16 15:42:21 -06:00
Fran Zekan
c2944024a8
fix: enable shell alias expansion in ! command (#5621) 2025-12-16 11:32:31 -06:00
Tommy D. Rossi
11b3927dc2
fix: use system prompt field from prompt input (#5633)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-12-16 10:52:22 -06:00
DS
b021b26e77
feat: restore experimental.chat.messages.transform and add experimental.chat.system.transform hooks (#5542) 2025-12-14 22:51:11 -06:00
Dax
fed4776451
LLM cleanup (#5462)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-12-14 21:11:30 -05:00
Aiden Cline
3d2ef28fa8 add topK function to transform, add temp defaults for glm and minimax 2025-12-13 23:27:11 -06:00
Aiden Cline
15caecdb45
shell tweaks, better handling for windows (#5455)
Co-authored-by: GitHub Action <action@github.com>
2025-12-12 16:11:07 -06:00
Dan Brown
6e9833acce
Shell: No -l in fallback, for max compatibility (#5452) 2025-12-12 15:43:35 -06:00
Dax Raad
0400024d02 core: fix missing Flag import in session prompt 2025-12-11 16:18:04 -05:00
Dax Raad
d4dc142cc2 core: add client identification to user agent and request headers for better tracking 2025-12-11 16:18:04 -05:00
Jorgen Henriksen
2a9269c347
add experimental.chat.messages.transform hook (#5207)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-11 14:38:45 -06:00
Christian Stewart
cbb591eb7d
fix: more descriptive tool or subtask execution failed error (#5337)
Signed-off-by: Christian Stewart <christian@aperture.us>
2025-12-10 17:12:49 -06:00
Aiden Cline
18d3c054a3
more interleaved thinking fixes (#5334) 2025-12-10 13:29:26 -06:00
GitHub Action
cc3b699823 chore: format code 2025-12-10 06:02:31 +00:00
spoj
301f1a191b
fix: add Windows support for shell mode (! command) (#5311) 2025-12-10 00:01:56 -06:00
Aiden Cline
df64612d54
better interleaved thinking support (#5298) 2025-12-09 16:32:12 -06:00
Ravi Kumar
8326640670
feat(telemetry): Add userId and sessionId metadata to experimental_telemetry (#5279) 2025-12-09 09:46:48 -06:00
Aiden Cline
f8bd4ff705 core: refactor providerOptions function to accept Provider.Model for cleaner API 2025-12-09 01:25:36 -06:00
Nathan Thomas
40eb8b93e1
feat: add max steps for supervisor and sub-agents (#4062)
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-12-05 12:26:44 -06:00
Noam Bressler
864c098701
add experimental.open_telemetry config option to enable OTEL spans (#4978)
Co-authored-by: noamzbr <noamzbr@users.noreply.github.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-12-05 10:48:22 -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
Frank
1f11d4fb1a zen: data dumper 2025-12-02 14:51:27 -05:00
Aiden Cline
a4eba2e6e9 tweak: plan prompt 2025-11-30 01:03:35 -06:00
Aiden Cline
0e280017e6 Revert "fix: title gen when first msg(s) are shell invocations (#4874)"
This reverts commit 17e8322c29.
2025-11-28 12:18:02 -06:00
Aiden Cline
17e8322c29
fix: title gen when first msg(s) are shell invocations (#4874)
Co-authored-by: GitHub Action <action@github.com>
2025-11-28 11:55:22 -06:00
Tommy D. Rossi
382758790c
fix(tui): dedupe file references in prompt (#4775) 2025-11-26 11:26:05 -06:00
Dmitry Halushka
ee946d8128
fix: transform MCP tool schemas for Google/Gemini compatibility (#4538)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
Co-authored-by: Github Action <action@github.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-11-26 00:58:20 -06:00
Shantur Rathore
69c2dd53ad
config: add setCacheKey in provider options (#4738)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-11-25 17:53:56 -06:00
Aiden Cline
020ee56f25 fix: dont auto continue if compaction was manual 2025-11-25 12:11:09 -06:00
Aiden Cline
16dbac6026 Revert "config: add setCacheKey in provider options (#4654)"
This reverts commit 9b6d03c497.
2025-11-24 22:30:56 -06:00
Shantur Rathore
9b6d03c497
config: add setCacheKey in provider options (#4654)
Co-authored-by: GitHub Action <action@github.com>
2025-11-24 22:20:52 -06:00
Adam
acf1dd8500
wip(share): more styling 2025-11-24 15:10:40 -06:00
Huang Qi
b4fd4bb257
fix: add explicit fallback model and prevent direct opencode provider calls (#4653)
Co-authored-by: Aiden Cline <aidenpcline@gmail.com>
2025-11-23 22:51:15 -06:00
Frank
bbc9142fc5 wip: zen 2025-11-23 15:21:47 -05:00
Aiden Cline
7413c2715c tweak: slight improvements to title gen 2025-11-23 14:04:39 -06:00
Aiden Cline
2509d03f42 tweak: fix bool 2025-11-23 11:43:09 -06:00
shuv
bdcf864678
proper fix for image attachments (#4562)
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Aiden Cline <63023139+rekram1-node@users.noreply.github.com>
2025-11-22 12:47:57 -06:00
Dax Raad
75c29d4d1c summary optimizaitons 2025-11-22 11:32:49 -05:00
Dax Raad
00f991162f if finish reason is unknown, continue 2025-11-21 16:51:32 -05:00