chore: improve prompt (#1502)

Kujtim Hoxha created

Change summary

internal/agent/templates/coder.md.tpl                                              | 83 
internal/agent/testdata/TestCoderAgent/anthropic-sonnet/bash_tool.yaml             | 25 
internal/agent/testdata/TestCoderAgent/anthropic-sonnet/download_tool.yaml         | 23 
internal/agent/testdata/TestCoderAgent/anthropic-sonnet/fetch_tool.yaml            | 27 
internal/agent/testdata/TestCoderAgent/anthropic-sonnet/glob_tool.yaml             | 25 
internal/agent/testdata/TestCoderAgent/anthropic-sonnet/grep_tool.yaml             | 23 
internal/agent/testdata/TestCoderAgent/anthropic-sonnet/ls_tool.yaml               | 22 
internal/agent/testdata/TestCoderAgent/anthropic-sonnet/multiedit_tool.yaml        | 22 
internal/agent/testdata/TestCoderAgent/anthropic-sonnet/parallel_tool_calls.yaml   | 26 
internal/agent/testdata/TestCoderAgent/anthropic-sonnet/read_a_file.yaml           | 20 
internal/agent/testdata/TestCoderAgent/anthropic-sonnet/simple_test.yaml           | 24 
internal/agent/testdata/TestCoderAgent/anthropic-sonnet/sourcegraph_tool.yaml      | 20 
internal/agent/testdata/TestCoderAgent/anthropic-sonnet/update_a_file.yaml         | 22 
internal/agent/testdata/TestCoderAgent/anthropic-sonnet/write_tool.yaml            | 23 
internal/agent/testdata/TestCoderAgent/openai-gpt-5/bash_tool.yaml                 | 28 
internal/agent/testdata/TestCoderAgent/openai-gpt-5/download_tool.yaml             | 24 
internal/agent/testdata/TestCoderAgent/openai-gpt-5/fetch_tool.yaml                | 30 
internal/agent/testdata/TestCoderAgent/openai-gpt-5/glob_tool.yaml                 | 28 
internal/agent/testdata/TestCoderAgent/openai-gpt-5/grep_tool.yaml                 | 32 
internal/agent/testdata/TestCoderAgent/openai-gpt-5/ls_tool.yaml                   | 28 
internal/agent/testdata/TestCoderAgent/openai-gpt-5/multiedit_tool.yaml            | 28 
internal/agent/testdata/TestCoderAgent/openai-gpt-5/parallel_tool_calls.yaml       | 24 
internal/agent/testdata/TestCoderAgent/openai-gpt-5/read_a_file.yaml               | 18 
internal/agent/testdata/TestCoderAgent/openai-gpt-5/simple_test.yaml               | 14 
internal/agent/testdata/TestCoderAgent/openai-gpt-5/sourcegraph_tool.yaml          | 34 
internal/agent/testdata/TestCoderAgent/openai-gpt-5/update_a_file.yaml             | 30 
internal/agent/testdata/TestCoderAgent/openai-gpt-5/write_tool.yaml                | 22 
internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/bash_tool.yaml           | 20 
internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/download_tool.yaml       | 26 
internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/fetch_tool.yaml          |  3 
internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/glob_tool.yaml           | 30 
internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/grep_tool.yaml           | 26 
internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/ls_tool.yaml             | 22 
internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/multiedit_tool.yaml      | 36 
internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/parallel_tool_calls.yaml | 26 
internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/read_a_file.yaml         | 14 
internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/simple_test.yaml         | 12 
internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/sourcegraph_tool.yaml    | 22 
internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/update_a_file.yaml       | 26 
internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/write_tool.yaml          | 20 
internal/agent/testdata/TestCoderAgent/zai-glm4.6/bash_tool.yaml                   | 18 
internal/agent/testdata/TestCoderAgent/zai-glm4.6/download_tool.yaml               | 16 
internal/agent/testdata/TestCoderAgent/zai-glm4.6/fetch_tool.yaml                  |  2 
internal/agent/testdata/TestCoderAgent/zai-glm4.6/glob_tool.yaml                   |  2 
internal/agent/testdata/TestCoderAgent/zai-glm4.6/grep_tool.yaml                   | 16 
internal/agent/testdata/TestCoderAgent/zai-glm4.6/ls_tool.yaml                     | 18 
internal/agent/testdata/TestCoderAgent/zai-glm4.6/multiedit_tool.yaml              |  2 
internal/agent/testdata/TestCoderAgent/zai-glm4.6/parallel_tool_calls.yaml         | 18 
internal/agent/testdata/TestCoderAgent/zai-glm4.6/read_a_file.yaml                 | 14 
internal/agent/testdata/TestCoderAgent/zai-glm4.6/simple_test.yaml                 | 12 
internal/agent/testdata/TestCoderAgent/zai-glm4.6/sourcegraph_tool.yaml            | 20 
internal/agent/testdata/TestCoderAgent/zai-glm4.6/update_a_file.yaml               | 24 
internal/agent/testdata/TestCoderAgent/zai-glm4.6/write_tool.yaml                  | 22 
53 files changed, 625 insertions(+), 567 deletions(-)

Detailed changes

internal/agent/templates/coder.md.tpl πŸ”—

@@ -3,30 +3,31 @@ You are Crush, a powerful AI Assistant that runs in the CLI.
 <critical_rules>
 These rules override everything else. Follow them strictly:
 
-1. **ALWAYS READ BEFORE EDITING**: Never edit a file you haven't read in this conversation (only read files if you did not read them before or they changed). When reading, pay close attention to exact formatting, indentation, and whitespace - these must match exactly in your edits.
-2. **BE AUTONOMOUS**: Don't ask questions - search, read, decide, act. Complete the ENTIRE task before stopping. Never stop mid-task. Never refuse work based on scope or complexity - break it down and do it.
-3. **TEST AFTER CHANGES**: Run tests immediately after each modification
-4. **BE CONCISE**: Under 4 lines unless user asks for detail
-5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks
-6. **NEVER COMMIT**: Unless user explicitly says "commit"
+1. **READ BEFORE EDITING**: Never edit a file you haven't already read in this conversation. Once read, you don't need to re-read unless it changed. Pay close attention to exact formatting, indentation, and whitespace - these must match exactly in your edits.
+2. **BE AUTONOMOUS**: Don't ask questions - search, read, think, decide, act. Break complex tasks into steps and complete them all. Systematically try alternative strategies (different commands, search terms, tools, refactors, or scopes) until either the task is complete or you hit a hard external limit (missing credentials, permissions, files, or network access you cannot change). Only stop for actual blocking errors, not perceived difficulty.
+3. **TEST AFTER CHANGES**: Run tests immediately after each modification.
+4. **BE CONCISE**: Keep output concise (default <4 lines), unless explaining complex changes or asked for detail. Conciseness applies to output only, not to thoroughness of work.
+5. **USE EXACT MATCHES**: When editing, match text exactly including whitespace, indentation, and line breaks.
+6. **NEVER COMMIT**: Unless user explicitly says "commit".
 7. **FOLLOW MEMORY FILE INSTRUCTIONS**: If memory files contain specific instructions, preferences, or commands, you MUST follow them.
-8. **NEVER ADD COMMENTS**: Only add comments if the user asked you to do so. When adding comments, focus on *why* not *what*. NEVER communicate with the user through code comments.
-9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously. Allow security analysis, detection rules, vulnerability explanations, defensive tools, and security documentation.
-10. **NO URL GUESSING**: Never generate or guess URLs unless you are confident they are for helping with programming. Only use URLs provided by the user or found in local files.
-11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked by the user.
+8. **NEVER ADD COMMENTS**: Only add comments if the user asked you to do so. Focus on *why* not *what*. NEVER communicate with the user through code comments.
+9. **SECURITY FIRST**: Only assist with defensive security tasks. Refuse to create, modify, or improve code that may be used maliciously.
+10. **NO URL GUESSING**: Only use URLs provided by the user or found in local files.
+11. **NEVER PUSH TO REMOTE**: Don't push changes to remote repositories unless explicitly asked.
 12. **DON'T REVERT CHANGES**: Don't revert changes unless they caused errors or the user explicitly asks.
-13. **COMPLETE THE TASK**: Never stop mid-task with "Next:" or "Will do:" statements. If you describe what needs to be done, DO IT immediately. Only stop when everything is finished.
-14. **NEVER REFUSE BASED ON SCOPE**: Never refuse tasks because they seem large or complex. Break them into steps and complete them. Only stop if you encounter actual blocking errors (missing dependencies, compile failures, etc.), not perceived difficulty.
 </critical_rules>
 
 <communication_style>
 Keep responses minimal:
 - Under 4 lines of text (tool use doesn't count)
+- Conciseness is about **text only**: always fully implement the requested feature, tests, and wiring even if that requires many tool calls.
 - No preamble ("Here's...", "I'll...")
 - No postamble ("Let me know...", "Hope this helps...")
 - One-word answers when possible
 - No emojis ever
 - No explanations unless user asks
+- Never send acknowledgement-only responses; after receiving new context or instructions, immediately continue the task or state the concrete next action you will take.
+- Use rich Markdown formatting (headings, bullet lists, tables, code fences) for any multi-sentence or explanatory answer; only use plain unformatted text if the user explicitly asks.
 
 Examples:
 user: what is 2+2?
@@ -77,6 +78,7 @@ For every task, follow this sequence internally (don't narrate it):
 **Before finishing**:
 - Verify ENTIRE query is resolved (not just first step)
 - All described next steps must be completed
+- Cross-check the original prompt and your own mental checklist; if any feasible part remains undone, continue working instead of responding.
 - Run lint/typecheck if in memory
 - Verify all changes work
 - Keep response under 4 lines
@@ -97,6 +99,7 @@ For every task, follow this sequence internally (don't narrate it):
 - Check similar code
 - Infer from context
 - Try most likely approach
+- When requirements are underspecified but not obviously dangerous, make the most reasonable assumptions based on project patterns and memory files, briefly state them if needed, and proceed instead of waiting for clarification.
 
 **Only stop/ask user if**:
 - Truly ambiguous business requirement
@@ -104,6 +107,14 @@ For every task, follow this sequence internally (don't narrate it):
 - Could cause data loss
 - Exhausted all attempts and hit actual blocking errors
 
+**When requesting information/access**:
+- Exhaust all available tools, searches, and reasonable assumptions first.
+- Never say "Need more info" without detail.
+- In the same message, list each missing item, why it is required, acceptable substitutes, and what you already attempted.
+- State exactly what you will do once the information arrives so the user knows the next step.
+
+When you must stop, first finish all unblocked parts of the request, then clearly report: (a) what you tried, (b) exactly why you are blocked, and (c) the minimal external action required. Don't stop just because one path failedβ€”exhaust multiple plausible approaches first.
+
 **Never stop for**:
 - Task seems too large (break it down)
 - Multiple files to change (change them)
@@ -118,23 +129,6 @@ Examples of autonomous decisions:
 - Naming β†’ follow existing names
 </decision_making>
 
-<task_scope>
-**No task is too large**:
-- Break complex tasks into logical steps
-- Complete each step fully before moving to next
-- If a task has 10 parts, do all 10 parts
-- Don't estimate effort or refuse based on scope
-- Only stop if you hit actual errors (compile failures, missing files, etc.)
-
-**For large refactors or implementations**:
-- Start with core functionality
-- Build incrementally
-- Test at each step
-- Keep going until fully complete
-
-There are no "session limits" - continue until the task is done or you hit a real blocker.
-</task_scope>
-
 <editing_files>
 Critical: ALWAYS read files before editing them in this conversation.
 
@@ -196,14 +190,38 @@ The Edit tool is extremely literal. "Close enough" will fail.
 - Never retry with guessed changes - get the exact text first
 </whitespace_and_exact_matching>
 
+<task_completion>
+Ensure every task is implemented completely, not partially or sketched.
+
+1. **Think before acting** (for non-trivial tasks)
+   - Identify all components that need changes (models, logic, routes, config, tests, docs)
+   - Consider edge cases and error paths upfront
+   - Form a mental checklist of requirements before making the first edit
+   - This planning happens internally - don't narrate it to the user
+
+2. **Implement end-to-end**
+   - Treat every request as complete work: if adding a feature, wire it fully
+   - Update all affected files (callers, configs, tests, docs)
+   - Don't leave TODOs or "you'll also need to..." - do it yourself
+   - No task is too large - break it down and complete all parts
+   - For multi-part prompts, treat each bullet/question as a checklist item and ensure every item is implemented or answered. Partial completion is not an acceptable final state.
+
+3. **Verify before finishing**
+   - Re-read the original request and verify each requirement is met
+   - Check for missing error handling, edge cases, or unwired code
+   - Run tests to confirm the implementation works
+   - Only say "Done" when truly done - never stop mid-task
+</task_completion>
+
 <error_handling>
 When errors occur:
 1. Read complete error message
-2. Understand root cause
+2. Understand root cause (isolate with debug logs or minimal reproduction if needed)
 3. Try different approach (don't repeat same action)
 4. Search for similar code that works
 5. Make targeted fix
 6. Test to verify
+7. For each error, attempt at least two or three distinct remediation strategies (search similar code, adjust commands, narrow or widen scope, change approach) before concluding the problem is externally blocked.
 
 Common errors:
 - Import/Module β†’ check paths, spelling, what exists
@@ -260,6 +278,7 @@ After significant changes:
 </testing>
 
 <tool_usage>
+- Default to using tools (ls, grep, view, agent, tests, web_fetch, etc.) rather than speculation whenever they can reduce uncertainty or unlock progress, even if it takes multiple tool calls.
 - Search before assuming
 - Read files before editing
 - Always use absolute paths for file operations (editing, reading, writing)
@@ -268,6 +287,7 @@ After significant changes:
 - When making multiple independent bash calls, send them in a single message with multiple tool calls for parallel execution
 - Summarize tool output for user (they don't see it)
 - Never use `curl` through the bash tool it is not allowed use the fetch tool instead.
+- Only use the tools you know exist.
 
 <bash_commands>
 When running non-trivial bash commands (especially those that modify the system):
@@ -284,6 +304,8 @@ When running non-trivial bash commands (especially those that modify the system)
 Balance autonomy with user intent:
 - When asked to do something β†’ do it fully (including ALL follow-ups and "next steps")
 - Never describe what you'll do next - just do it
+- When the user provides new information or clarification, incorporate it immediately and keep executing instead of stopping with an acknowledgement.
+- Responding with only a plan, outline, or TODO list (or any other purely verbal response) is failure; you must execute the plan via tools whenever execution is possible.
 - When asked how to approach β†’ explain first, don't auto-implement
 - After completing work β†’ stop, don't explain (unless asked)
 - Don't surprise user with unexpected actions
@@ -303,6 +325,7 @@ Adapt verbosity to match the work completed:
 - Tasks where understanding the approach is important
 - When mentioning unrelated bugs/issues found
 - Suggesting logical next steps user might want
+- Structure longer answers with Markdown sections and lists, and put all code, commands, and config in fenced code blocks.
 
 **What to include in verbose answers**:
 - Brief summary of what was done and why

internal/agent/testdata/TestCoderAgent/anthropic-sonnet/bash_tool.yaml πŸ”—

@@ -25,49 +25,52 @@ interactions:
     content_length: -1
     body: |+
       event: message_start
-      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01Q9dscSikE4wKde4Li2gBwH","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":152,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":3,"service_tier":"standard"}}    }
+      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01EVjRPtXckEg8o8Yvn7agqP","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":152,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":3,"service_tier":"standard"}}     }
 
       event: content_block_start
-      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}        }
+      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}         }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Bash File"}              }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Bash File"}   }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Creation"}  }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Creation"} }
 
       event: ping
       data: {"type": "ping"}
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Comman"}}
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" with"}              }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"d"}            }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Hello"}              }
+
+      event: content_block_delta
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Message"}     }
 
       event: content_block_stop
-      data: {"type":"content_block_stop","index":0   }
+      data: {"type":"content_block_stop","index":0       }
 
       event: message_delta
-      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":152,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":8}     }
+      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":152,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":10}       }
 
       event: message_stop
-      data: {"type":"message_stop"             }
+      data: {"type":"message_stop"}
 
     headers:
       Content-Type:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 649.141458ms
+    duration: 685.304458ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 48499
+    content_length: 51300
     host: ""

internal/agent/testdata/TestCoderAgent/anthropic-sonnet/download_tool.yaml πŸ”—

@@ -25,49 +25,52 @@ interactions:
     content_length: -1
     body: |+
       event: message_start
-      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_011BBMjWTNiVsUoGcaMCabtR","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":160,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"}}   }
+      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01Pic6S9YBCaoX3zxshFpwQy","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":160,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"}}}
 
       event: content_block_start
-      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}     }
+      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}
 
       event: content_block_delta
       data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Downloa"} }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"d File"}            }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"d Example"}}
 
       event: ping
       data: {"type": "ping"}
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" from"}       }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" File from"}       }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Example URL"}    }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Given"}   }
+
+      event: content_block_delta
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" URL"}    }
 
       event: content_block_stop
-      data: {"type":"content_block_stop","index":0         }
+      data: {"type":"content_block_stop","index":0       }
 
       event: message_delta
-      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":160,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":8}     }
+      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":160,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":9} }
 
       event: message_stop
-      data: {"type":"message_stop"  }
+      data: {"type":"message_stop"    }
 
     headers:
       Content-Type:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 1.132761291s
+    duration: 511.539167ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 48524
+    content_length: 51325
     host: ""

internal/agent/testdata/TestCoderAgent/anthropic-sonnet/fetch_tool.yaml πŸ”—

@@ -25,55 +25,58 @@ interactions:
     content_length: -1
     body: |+
       event: message_start
-      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_0182u7NoaqXjs73QApLGhQea","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":167,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"}}}
+      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01Ds8FsARNrw2dstATwh6ffe","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":167,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"}}}
 
       event: content_block_start
-      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}  }
+      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}    }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Web"}           }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Web"}     }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Content"}  }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Page"} }
 
       event: ping
       data: {"type": "ping"}
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Search"}    }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Search"}   }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" for"}               }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" for"}          }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" John"}               }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Name"}             }
+
+      event: content_block_delta
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" John"}   }
 
       event: content_block_delta
       data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Doe"}}
 
       event: content_block_stop
-      data: {"type":"content_block_stop","index":0         }
+      data: {"type":"content_block_stop","index":0      }
 
       event: message_delta
-      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":167,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":10}        }
+      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":167,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":11}        }
 
       event: message_stop
-      data: {"type":"message_stop"   }
+      data: {"type":"message_stop"    }
 
     headers:
       Content-Type:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 557.634834ms
+    duration: 551.193ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 48542
+    content_length: 51343
     host: ""

internal/agent/testdata/TestCoderAgent/anthropic-sonnet/glob_tool.yaml πŸ”—

@@ -25,49 +25,52 @@ interactions:
     content_length: -1
     body: |+
       event: message_start
-      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01VUjaaTY5YMVyC4o4S9hYzE","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":142,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"}}   }
+      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01MqD4XtY2L8ZLAktkRQxoJY","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":142,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"}}       }
 
       event: content_block_start
-      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}     }
+      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}        }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Fin"}    }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Fin"}        }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"d Go files with"}        }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"d Go"}  }
 
       event: ping
       data: {"type": "ping"}
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" glob"}    }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Files"}           }
+
+      event: content_block_delta
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" with"}             }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" pattern"}             }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Glob"}  }
 
       event: content_block_stop
-      data: {"type":"content_block_stop","index":0   }
+      data: {"type":"content_block_stop","index":0         }
 
       event: message_delta
-      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":142,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":9}   }
+      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":142,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":9}}
 
       event: message_stop
-      data: {"type":"message_stop" }
+      data: {"type":"message_stop"    }
 
     headers:
       Content-Type:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 1.197842875s
+    duration: 625.632958ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 48460
+    content_length: 51261
     host: ""

internal/agent/testdata/TestCoderAgent/anthropic-sonnet/grep_tool.yaml πŸ”—

@@ -25,34 +25,31 @@ interactions:
     content_length: -1
     body: |+
       event: message_start
-      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01EgibS2fAFz3UCbKFNbqmyz","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":144,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":3,"service_tier":"standard"}}           }
+      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_012d9z357hq8o7FexFbhvKSZ","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":144,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":4,"service_tier":"standard"}}}
 
       event: content_block_start
-      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}        }
+      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}         }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Searching "}   }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Searching for "}       }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"'package' in Go"}          }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"'package' in Go"}  }
 
       event: ping
       data: {"type": "ping"}
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Files"}           }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" files with"}}
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" with"}               }
-
-      event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Grep"}         }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" grep"}           }
 
       event: content_block_stop
-      data: {"type":"content_block_stop","index":0  }
+      data: {"type":"content_block_stop","index":0         }
 
       event: message_delta
-      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":144,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":15}     }
+      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":144,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":15}  }
 
       event: message_stop
       data: {"type":"message_stop" }
@@ -62,15 +59,15 @@ interactions:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 559.233125ms
+    duration: 524.120125ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 48458
+    content_length: 51259
     host: ""

internal/agent/testdata/TestCoderAgent/anthropic-sonnet/ls_tool.yaml πŸ”—

@@ -25,28 +25,22 @@ interactions:
     content_length: -1
     body: |+
       event: message_start
-      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01P8m2YD9BpcZF8ATFTP5UQa","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":140,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":3,"service_tier":"standard"}}  }
+      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01DVab3iiGDnPNnULDQhzY71","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":140,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":3,"service_tier":"standard"}}             }
 
       event: content_block_start
       data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}  }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Listing Files"}   }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Listing Files"}       }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" in"}       }
-
-      event: ping
-      data: {"type": "ping"}
-
-      event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Current Directory"}        }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" in Current Directory"}             }
 
       event: ping
       data: {"type": "ping"}
 
       event: content_block_stop
-      data: {"type":"content_block_stop","index":0              }
+      data: {"type":"content_block_stop","index":0               }
 
       event: ping
       data: {"type": "ping"}
@@ -55,25 +49,25 @@ interactions:
       data: {"type": "ping"}
 
       event: message_delta
-      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":140,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":9}        }
+      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":140,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":9}}
 
       event: message_stop
-      data: {"type":"message_stop"               }
+      data: {"type":"message_stop"}
 
     headers:
       Content-Type:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 975.215833ms
+    duration: 573.010667ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 48452
+    content_length: 51253
     host: ""

internal/agent/testdata/TestCoderAgent/anthropic-sonnet/multiedit_tool.yaml πŸ”—

@@ -25,49 +25,49 @@ interactions:
     content_length: -1
     body: |+
       event: message_start
-      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01YDEhnTbiQwTk2qsjPe6xWX","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":170,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"}}              }
+      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_019yUAeaWYLfDspRWMnKiGuE","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":170,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"}}}
 
       event: content_block_start
-      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}         }
+      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}   }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Edit"}   }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Edit"}       }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Go"}    }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Go"}          }
 
       event: ping
       data: {"type": "ping"}
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Code"}         }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Program"}         }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Greeting"}            }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Greeting"}        }
 
       event: content_block_stop
-      data: {"type":"content_block_stop","index":0      }
+      data: {"type":"content_block_stop","index":0       }
 
       event: message_delta
-      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":170,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":8}          }
+      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":170,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":8}              }
 
       event: message_stop
-      data: {"type":"message_stop"             }
+      data: {"type":"message_stop"            }
 
     headers:
       Content-Type:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 717.238667ms
+    duration: 484.884292ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 48538
+    content_length: 51339
     host: ""

internal/agent/testdata/TestCoderAgent/anthropic-sonnet/parallel_tool_calls.yaml πŸ”—

@@ -25,52 +25,46 @@ interactions:
     content_length: -1
     body: |+
       event: message_start
-      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01NjeYn4nRR6THSVmVnvXJFz","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":159,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":2,"service_tier":"standard"}}     }
+      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01H7snK8RBDfgYzyE21txgqF","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":159,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":2,"service_tier":"standard"}}         }
 
       event: content_block_start
-      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}              }
+      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}             }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Parallel"}           }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Parallel"}    }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Go File"}     }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Go file"}           }
 
       event: ping
       data: {"type": "ping"}
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Search"}          }
-
-      event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" and Directory"}      }
-
-      event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Listing"}        }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" and directory listing"}              }
 
       event: content_block_stop
-      data: {"type":"content_block_stop","index":0            }
+      data: {"type":"content_block_stop","index":0    }
 
       event: message_delta
-      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":159,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":12}    }
+      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":159,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":10}          }
 
       event: message_stop
-      data: {"type":"message_stop"}
+      data: {"type":"message_stop"               }
 
     headers:
       Content-Type:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 927.461292ms
+    duration: 630.2585ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 48549
+    content_length: 51350
     host: ""

internal/agent/testdata/TestCoderAgent/anthropic-sonnet/read_a_file.yaml πŸ”—

@@ -25,49 +25,49 @@ interactions:
     content_length: -1
     body: |+
       event: message_start
-      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_018k2WQ7ueajsP9D4wfhzsN6","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":134,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"}}       }
+      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01NFzWcYPQ8noTqfq5LotH3a","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":134,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"}}        }
 
       event: content_block_start
       data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}              }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Review"} }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Rea"}         }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Go"} }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"d Go"}       }
 
       event: ping
       data: {"type": "ping"}
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Module"}             }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Module"}        }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Configuration"}          }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Details"}  }
 
       event: content_block_stop
-      data: {"type":"content_block_stop","index":0            }
+      data: {"type":"content_block_stop","index":0 }
 
       event: message_delta
-      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":134,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":7}       }
+      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":134,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":7}               }
 
       event: message_stop
-      data: {"type":"message_stop"          }
+      data: {"type":"message_stop"             }
 
     headers:
       Content-Type:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 662.423375ms
+    duration: 574.917208ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 48422
+    content_length: 51223
     host: ""

internal/agent/testdata/TestCoderAgent/anthropic-sonnet/simple_test.yaml πŸ”—

@@ -25,28 +25,22 @@ interactions:
     content_length: -1
     body: |+
       event: message_start
-      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01782JU37x1h65gkxzPb4q2M","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":131,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":2,"service_tier":"standard"}}            }
+      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01FUVJPcax9JwJYovTpykB8W","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":131,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"}} }
 
       event: content_block_start
-      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}       }
+      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}   }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Greeting"} }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Quick"}}
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Initiate"}         }
-
-      event: ping
-      data: {"type": "ping"}
-
-      event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"d"}          }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Hello"}          }
 
       event: ping
       data: {"type": "ping"}
 
       event: content_block_stop
-      data: {"type":"content_block_stop","index":0     }
+      data: {"type":"content_block_stop","index":0  }
 
       event: ping
       data: {"type": "ping"}
@@ -55,25 +49,25 @@ interactions:
       data: {"type": "ping"}
 
       event: message_delta
-      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":131,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":7} }
+      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":131,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":5}          }
 
       event: message_stop
-      data: {"type":"message_stop"        }
+      data: {"type":"message_stop" }
 
     headers:
       Content-Type:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 1.209730625s
+    duration: 592.833625ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 48412
+    content_length: 51213
     host: ""

internal/agent/testdata/TestCoderAgent/anthropic-sonnet/sourcegraph_tool.yaml πŸ”—

@@ -25,46 +25,46 @@ interactions:
     content_length: -1
     body: |+
       event: message_start
-      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_018FLb5xaVnuEGuEXuTJj2MB","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":145,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":3,"service_tier":"standard"}}              }
+      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01TzNt7N2xCqujhq73UrL2TC","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":145,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":3,"service_tier":"standard"}}     }
 
       event: content_block_start
-      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}               }
+      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}        }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Searching Go"}       }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Searching Main"}             }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Repositories for main"}           }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Functions with"}   }
 
       event: ping
       data: {"type": "ping"}
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Functions"}    }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Sourcegraph"}      }
 
       event: content_block_stop
-      data: {"type":"content_block_stop","index":0             }
+      data: {"type":"content_block_stop","index":0   }
 
       event: message_delta
-      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":145,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":11}  }
+      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":145,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":12}      }
 
       event: message_stop
-      data: {"type":"message_stop"               }
+      data: {"type":"message_stop"            }
 
     headers:
       Content-Type:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 605.347625ms
+    duration: 655.598416ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 48472
+    content_length: 51273
     host: ""

internal/agent/testdata/TestCoderAgent/anthropic-sonnet/update_a_file.yaml πŸ”—

@@ -25,49 +25,49 @@ interactions:
     content_length: -1
     body: |+
       event: message_start
-      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01B6gHqtZy7HBaGQGB4VeEhq","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":145,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"}}          }
+      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01QvCQEZTwSzm6ArsDvybN6B","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":145,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"}}         }
 
       event: content_block_start
-      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}        }
+      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""} }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Update"}     }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Update"}   }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" main"}}
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" main"}     }
 
       event: ping
       data: {"type": "ping"}
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":".go Hello"}             }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":".go Hello"}            }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Greeting"}   }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" Message"}               }
 
       event: content_block_stop
-      data: {"type":"content_block_stop","index":0         }
+      data: {"type":"content_block_stop","index":0     }
 
       event: message_delta
-      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":145,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":10} }
+      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":145,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":9}         }
 
       event: message_stop
-      data: {"type":"message_stop"           }
+      data: {"type":"message_stop"        }
 
     headers:
       Content-Type:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 651.076375ms
+    duration: 638.412875ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 48478
+    content_length: 51279
     host: ""

internal/agent/testdata/TestCoderAgent/anthropic-sonnet/write_tool.yaml πŸ”—

@@ -25,46 +25,49 @@ interactions:
     content_length: -1
     body: |+
       event: message_start
-      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01NvPqt2YUw2WJwqS55hJMEW","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":161,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"}}          }
+      data: {"type":"message_start","message":{"model":"claude-3-5-haiku-20241022","id":"msg_01STFeYffS4q4ZsMUo3RRGro","type":"message","role":"assistant","content":[],"stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":161,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"cache_creation":{"ephemeral_5m_input_tokens":0,"ephemeral_1h_input_tokens":0},"output_tokens":1,"service_tier":"standard"}}     }
 
       event: content_block_start
-      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}       }
+      data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}        }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Creating"}      }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"Create"}          }
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" config"}      }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" config"}         }
 
       event: ping
       data: {"type": "ping"}
 
       event: content_block_delta
-      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":".json file"}             }
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":".json file with JSON"}           }
+
+      event: content_block_delta
+      data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":" content"}    }
 
       event: content_block_stop
-      data: {"type":"content_block_stop","index":0  }
+      data: {"type":"content_block_stop","index":0       }
 
       event: message_delta
-      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":161,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":8}         }
+      data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"input_tokens":161,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":11}            }
 
       event: message_stop
-      data: {"type":"message_stop"    }
+      data: {"type":"message_stop"   }
 
     headers:
       Content-Type:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 643.354917ms
+    duration: 647.593208ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 48515
+    content_length: 51316
     host: ""

internal/agent/testdata/TestCoderAgent/openai-gpt-5/bash_tool.yaml πŸ”—

@@ -24,23 +24,29 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"chatcmpl-CbUkKJYGuzDVpaD3ZHvlKMt23Dawc","object":"chat.completion.chunk","created":1763052360,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"vp9vN4wPzJiQm0"}
+      data: {"id":"chatcmpl-Cj534Wsmb0qdA9mWKjp4j4Rsa4YYs","object":"chat.completion.chunk","created":1764860202,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"TAZTeZWvVxFxoP"}
 
-      data: {"id":"chatcmpl-CbUkKJYGuzDVpaD3ZHvlKMt23Dawc","object":"chat.completion.chunk","created":1763052360,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"Create"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"AeUYOEW8Ft"}
+      data: {"id":"chatcmpl-Cj534Wsmb0qdA9mWKjp4j4Rsa4YYs","object":"chat.completion.chunk","created":1764860202,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":"B"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"hBXa3fagEUrE6jJ"}
 
-      data: {"id":"chatcmpl-CbUkKJYGuzDVpaD3ZHvlKMt23Dawc","object":"chat.completion.chunk","created":1763052360,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" File"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"0qdTPaws0uc"}
+      data: {"id":"chatcmpl-Cj534Wsmb0qdA9mWKjp4j4Rsa4YYs","object":"chat.completion.chunk","created":1764860202,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":"ash"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"CyeAiu8IZPzB0"}
 
-      data: {"id":"chatcmpl-CbUkKJYGuzDVpaD3ZHvlKMt23Dawc","object":"chat.completion.chunk","created":1763052360,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" with"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"zb56Y0oW0dl"}
+      data: {"id":"chatcmpl-Cj534Wsmb0qdA9mWKjp4j4Rsa4YYs","object":"chat.completion.chunk","created":1764860202,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Script"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"EmTjbMCg4"}
 
-      data: {"id":"chatcmpl-CbUkKJYGuzDVpaD3ZHvlKMt23Dawc","object":"chat.completion.chunk","created":1763052360,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Content"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"fDzTlp5H"}
+      data: {"id":"chatcmpl-Cj534Wsmb0qdA9mWKjp4j4Rsa4YYs","object":"chat.completion.chunk","created":1764860202,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" to"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Y4BDCQdK7Xopv"}
 
-      data: {"id":"chatcmpl-CbUkKJYGuzDVpaD3ZHvlKMt23Dawc","object":"chat.completion.chunk","created":1763052360,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Using"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Zhj73X8thj"}
+      data: {"id":"chatcmpl-Cj534Wsmb0qdA9mWKjp4j4Rsa4YYs","object":"chat.completion.chunk","created":1764860202,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Create"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"XOJ5bw0lw"}
 
-      data: {"id":"chatcmpl-CbUkKJYGuzDVpaD3ZHvlKMt23Dawc","object":"chat.completion.chunk","created":1763052360,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Bash"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Q5cojZq6cl9"}
+      data: {"id":"chatcmpl-Cj534Wsmb0qdA9mWKjp4j4Rsa4YYs","object":"chat.completion.chunk","created":1764860202,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" test"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"n01VQF4aJD8"}
 
-      data: {"id":"chatcmpl-CbUkKJYGuzDVpaD3ZHvlKMt23Dawc","object":"chat.completion.chunk","created":1763052360,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"1reReQTAAX"}
+      data: {"id":"chatcmpl-Cj534Wsmb0qdA9mWKjp4j4Rsa4YYs","object":"chat.completion.chunk","created":1764860202,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":".txt"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"22IrDPSm0Ers"}
 
-      data: {"id":"chatcmpl-CbUkKJYGuzDVpaD3ZHvlKMt23Dawc","object":"chat.completion.chunk","created":1763052360,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[],"usage":{"prompt_tokens":145,"completion_tokens":6,"total_tokens":151,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"etlTfn3EZP8MT2"}
+      data: {"id":"chatcmpl-Cj534Wsmb0qdA9mWKjp4j4Rsa4YYs","object":"chat.completion.chunk","created":1764860202,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Without"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Au1AtNtb"}
+
+      data: {"id":"chatcmpl-Cj534Wsmb0qdA9mWKjp4j4Rsa4YYs","object":"chat.completion.chunk","created":1764860202,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Timestamp"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"hh8A8H"}
+
+      data: {"id":"chatcmpl-Cj534Wsmb0qdA9mWKjp4j4Rsa4YYs","object":"chat.completion.chunk","created":1764860202,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"HywMesJLaN"}
+
+      data: {"id":"chatcmpl-Cj534Wsmb0qdA9mWKjp4j4Rsa4YYs","object":"chat.completion.chunk","created":1764860202,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[],"usage":{"prompt_tokens":145,"completion_tokens":9,"total_tokens":154,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"CQS50HbFC5kJkY"}
 
       data: [DONE]
 
@@ -49,15 +55,15 @@ interactions:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 1.298479333s
+    duration: 547.9735ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46899
+    content_length: 49695
     host: ""

internal/agent/testdata/TestCoderAgent/openai-gpt-5/download_tool.yaml πŸ”—

@@ -24,25 +24,25 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"chatcmpl-CbUkbu7jI2EzIMSnAGose7GG7z6Dy","object":"chat.completion.chunk","created":1763052377,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"EStgbdvZeBtZum"}
+      data: {"id":"chatcmpl-Cj53LQQE8myVYt6Og68Q2Tmvnq8Zq","object":"chat.completion.chunk","created":1764860219,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_37d212baff","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"4aWeZdas5ga0vS"}
 
-      data: {"id":"chatcmpl-CbUkbu7jI2EzIMSnAGose7GG7z6Dy","object":"chat.completion.chunk","created":1763052377,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":"Downloading"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"q8oyR"}
+      data: {"id":"chatcmpl-Cj53LQQE8myVYt6Og68Q2Tmvnq8Zq","object":"chat.completion.chunk","created":1764860219,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_37d212baff","choices":[{"index":0,"delta":{"content":"Download"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"wwN4WDqz"}
 
-      data: {"id":"chatcmpl-CbUkbu7jI2EzIMSnAGose7GG7z6Dy","object":"chat.completion.chunk","created":1763052377,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" and"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"2owvn8JFBE9w"}
+      data: {"id":"chatcmpl-Cj53LQQE8myVYt6Og68Q2Tmvnq8Zq","object":"chat.completion.chunk","created":1764860219,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_37d212baff","choices":[{"index":0,"delta":{"content":" and"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"0VDcB7AJsv3f"}
 
-      data: {"id":"chatcmpl-CbUkbu7jI2EzIMSnAGose7GG7z6Dy","object":"chat.completion.chunk","created":1763052377,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" Saving"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"A3w0rmCj2"}
+      data: {"id":"chatcmpl-Cj53LQQE8myVYt6Og68Q2Tmvnq8Zq","object":"chat.completion.chunk","created":1764860219,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_37d212baff","choices":[{"index":0,"delta":{"content":" Save"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"D5NVweYuVWX"}
 
-      data: {"id":"chatcmpl-CbUkbu7jI2EzIMSnAGose7GG7z6Dy","object":"chat.completion.chunk","created":1763052377,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" a"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"NNLouoRfcxUlf9"}
+      data: {"id":"chatcmpl-Cj53LQQE8myVYt6Og68Q2Tmvnq8Zq","object":"chat.completion.chunk","created":1764860219,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_37d212baff","choices":[{"index":0,"delta":{"content":" File"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"qpjVng08xNJ"}
 
-      data: {"id":"chatcmpl-CbUkbu7jI2EzIMSnAGose7GG7z6Dy","object":"chat.completion.chunk","created":1763052377,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" File"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"XaIPLdgeHiI"}
+      data: {"id":"chatcmpl-Cj53LQQE8myVYt6Og68Q2Tmvnq8Zq","object":"chat.completion.chunk","created":1764860219,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_37d212baff","choices":[{"index":0,"delta":{"content":" as"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"UcOYSptrSwzlx"}
 
-      data: {"id":"chatcmpl-CbUkbu7jI2EzIMSnAGose7GG7z6Dy","object":"chat.completion.chunk","created":1763052377,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" from"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"hx9xrsJiu6x"}
+      data: {"id":"chatcmpl-Cj53LQQE8myVYt6Og68Q2Tmvnq8Zq","object":"chat.completion.chunk","created":1764860219,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_37d212baff","choices":[{"index":0,"delta":{"content":" example"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"0QcVctY0"}
 
-      data: {"id":"chatcmpl-CbUkbu7jI2EzIMSnAGose7GG7z6Dy","object":"chat.completion.chunk","created":1763052377,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" URL"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"AH5Ug4eV9vAD"}
+      data: {"id":"chatcmpl-Cj53LQQE8myVYt6Og68Q2Tmvnq8Zq","object":"chat.completion.chunk","created":1764860219,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_37d212baff","choices":[{"index":0,"delta":{"content":".txt"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"gsMzdjWfyCqD"}
 
-      data: {"id":"chatcmpl-CbUkbu7jI2EzIMSnAGose7GG7z6Dy","object":"chat.completion.chunk","created":1763052377,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"aQ1TxrNv5B"}
+      data: {"id":"chatcmpl-Cj53LQQE8myVYt6Og68Q2Tmvnq8Zq","object":"chat.completion.chunk","created":1764860219,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_37d212baff","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"k3z2McnDZS"}
 
-      data: {"id":"chatcmpl-CbUkbu7jI2EzIMSnAGose7GG7z6Dy","object":"chat.completion.chunk","created":1763052377,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[],"usage":{"prompt_tokens":148,"completion_tokens":7,"total_tokens":155,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"fogROHPA9AQhgg"}
+      data: {"id":"chatcmpl-Cj53LQQE8myVYt6Og68Q2Tmvnq8Zq","object":"chat.completion.chunk","created":1764860219,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_37d212baff","choices":[],"usage":{"prompt_tokens":148,"completion_tokens":7,"total_tokens":155,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"QYATZ2rRRCxY4h"}
 
       data: [DONE]
 
@@ -51,15 +51,15 @@ interactions:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 2.314738042s
+    duration: 441.057958ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46924
+    content_length: 49720
     host: ""

internal/agent/testdata/TestCoderAgent/openai-gpt-5/fetch_tool.yaml πŸ”—

@@ -24,31 +24,31 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"chatcmpl-CbUkjR7GpjLIFNyNRNmiL40SSTxxH","object":"chat.completion.chunk","created":1763052385,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"NZCbEacyPz4pwr"}
+      data: {"id":"chatcmpl-Cj53ZjAPs86JEZ45lsxkFbsekRzmi","object":"chat.completion.chunk","created":1764860233,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"p3FAuIIvP40AGt"}
 
-      data: {"id":"chatcmpl-CbUkjR7GpjLIFNyNRNmiL40SSTxxH","object":"chat.completion.chunk","created":1763052385,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":"Check"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"kbBkMxwYVJB"}
+      data: {"id":"chatcmpl-Cj53ZjAPs86JEZ45lsxkFbsekRzmi","object":"chat.completion.chunk","created":1764860233,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"Check"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"2zQiK028cyC"}
 
-      data: {"id":"chatcmpl-CbUkjR7GpjLIFNyNRNmiL40SSTxxH","object":"chat.completion.chunk","created":1763052385,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" for"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"cwJeadkIQUKl"}
+      data: {"id":"chatcmpl-Cj53ZjAPs86JEZ45lsxkFbsekRzmi","object":"chat.completion.chunk","created":1764860233,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" for"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"t5Dbze6JVcMf"}
 
-      data: {"id":"chatcmpl-CbUkjR7GpjLIFNyNRNmiL40SSTxxH","object":"chat.completion.chunk","created":1763052385,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" '"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"7KS6CI22E2tPaK"}
+      data: {"id":"chatcmpl-Cj53ZjAPs86JEZ45lsxkFbsekRzmi","object":"chat.completion.chunk","created":1764860233,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" '"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"g2LVvR5jOQrSTB"}
 
-      data: {"id":"chatcmpl-CbUkjR7GpjLIFNyNRNmiL40SSTxxH","object":"chat.completion.chunk","created":1763052385,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":"John"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"AfZPoUI8y91v"}
+      data: {"id":"chatcmpl-Cj53ZjAPs86JEZ45lsxkFbsekRzmi","object":"chat.completion.chunk","created":1764860233,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"John"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"73pY8mr75Ipx"}
 
-      data: {"id":"chatcmpl-CbUkjR7GpjLIFNyNRNmiL40SSTxxH","object":"chat.completion.chunk","created":1763052385,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" Doe"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"LpbtDnUHQU9A"}
+      data: {"id":"chatcmpl-Cj53ZjAPs86JEZ45lsxkFbsekRzmi","object":"chat.completion.chunk","created":1764860233,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Doe"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Rh33jjTIQNbP"}
 
-      data: {"id":"chatcmpl-CbUkjR7GpjLIFNyNRNmiL40SSTxxH","object":"chat.completion.chunk","created":1763052385,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":"'"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"qiOyYT2y7EJdq6r"}
+      data: {"id":"chatcmpl-Cj53ZjAPs86JEZ45lsxkFbsekRzmi","object":"chat.completion.chunk","created":1764860233,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"'"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"yBuIcpDXjMRzZYt"}
 
-      data: {"id":"chatcmpl-CbUkjR7GpjLIFNyNRNmiL40SSTxxH","object":"chat.completion.chunk","created":1763052385,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" in"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"qD9sjQcHygh7R"}
+      data: {"id":"chatcmpl-Cj53ZjAPs86JEZ45lsxkFbsekRzmi","object":"chat.completion.chunk","created":1764860233,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" in"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"kbl7tT4umVvzN"}
 
-      data: {"id":"chatcmpl-CbUkjR7GpjLIFNyNRNmiL40SSTxxH","object":"chat.completion.chunk","created":1763052385,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" Example"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"xvzFm7Kl"}
+      data: {"id":"chatcmpl-Cj53ZjAPs86JEZ45lsxkFbsekRzmi","object":"chat.completion.chunk","created":1764860233,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Example"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"26Eisxv6"}
 
-      data: {"id":"chatcmpl-CbUkjR7GpjLIFNyNRNmiL40SSTxxH","object":"chat.completion.chunk","created":1763052385,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" HTML"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"nSTOMJdQbip"}
+      data: {"id":"chatcmpl-Cj53ZjAPs86JEZ45lsxkFbsekRzmi","object":"chat.completion.chunk","created":1764860233,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" HTML"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"O4w8wnvRwzz"}
 
-      data: {"id":"chatcmpl-CbUkjR7GpjLIFNyNRNmiL40SSTxxH","object":"chat.completion.chunk","created":1763052385,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" Content"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ez1TEH3o"}
+      data: {"id":"chatcmpl-Cj53ZjAPs86JEZ45lsxkFbsekRzmi","object":"chat.completion.chunk","created":1764860233,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" File"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"36EHMtRPOzO"}
 
-      data: {"id":"chatcmpl-CbUkjR7GpjLIFNyNRNmiL40SSTxxH","object":"chat.completion.chunk","created":1763052385,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"Kpu1VTQLvM"}
+      data: {"id":"chatcmpl-Cj53ZjAPs86JEZ45lsxkFbsekRzmi","object":"chat.completion.chunk","created":1764860233,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"7EQ3yGAlPi"}
 
-      data: {"id":"chatcmpl-CbUkjR7GpjLIFNyNRNmiL40SSTxxH","object":"chat.completion.chunk","created":1763052385,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[],"usage":{"prompt_tokens":153,"completion_tokens":10,"total_tokens":163,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"5gaF7n1tbADaH"}
+      data: {"id":"chatcmpl-Cj53ZjAPs86JEZ45lsxkFbsekRzmi","object":"chat.completion.chunk","created":1764860233,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[],"usage":{"prompt_tokens":153,"completion_tokens":10,"total_tokens":163,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"tHxxBcUGppg3r"}
 
       data: [DONE]
 
@@ -57,15 +57,15 @@ interactions:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 715.834959ms
+    duration: 473.407583ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46942
+    content_length: 49738
     host: ""

internal/agent/testdata/TestCoderAgent/openai-gpt-5/glob_tool.yaml πŸ”—

@@ -24,25 +24,29 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"chatcmpl-CbUkwKSNynPTu1uyNioPPtws6jh8X","object":"chat.completion.chunk","created":1763052398,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Mh4DoLcVO4xS0h"}
+      data: {"id":"chatcmpl-Cj53hbJEtQwnfdnCtZAQrC5jzHLJq","object":"chat.completion.chunk","created":1764860241,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ZXeRi6jk2tQYT7"}
 
-      data: {"id":"chatcmpl-CbUkwKSNynPTu1uyNioPPtws6jh8X","object":"chat.completion.chunk","created":1763052398,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"Finding"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"iwqeMF4Bp"}
+      data: {"id":"chatcmpl-Cj53hbJEtQwnfdnCtZAQrC5jzHLJq","object":"chat.completion.chunk","created":1764860241,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":"Finding"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"QMosZk0Hk"}
 
-      data: {"id":"chatcmpl-CbUkwKSNynPTu1uyNioPPtws6jh8X","object":"chat.completion.chunk","created":1763052398,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" `."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"srie2Bgwul6dv"}
+      data: {"id":"chatcmpl-Cj53hbJEtQwnfdnCtZAQrC5jzHLJq","object":"chat.completion.chunk","created":1764860241,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" ."},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"RbdLJD1Zj0loPl"}
 
-      data: {"id":"chatcmpl-CbUkwKSNynPTu1uyNioPPtws6jh8X","object":"chat.completion.chunk","created":1763052398,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"go"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"rrtxZ5zgqAV6fV"}
+      data: {"id":"chatcmpl-Cj53hbJEtQwnfdnCtZAQrC5jzHLJq","object":"chat.completion.chunk","created":1764860241,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":"go"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"hUuIQPuKdkJ2tT"}
 
-      data: {"id":"chatcmpl-CbUkwKSNynPTu1uyNioPPtws6jh8X","object":"chat.completion.chunk","created":1763052398,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"`"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"2ZshZ4RYBtdnQPO"}
+      data: {"id":"chatcmpl-Cj53hbJEtQwnfdnCtZAQrC5jzHLJq","object":"chat.completion.chunk","created":1764860241,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Files"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"jylp97Zx5U"}
 
-      data: {"id":"chatcmpl-CbUkwKSNynPTu1uyNioPPtws6jh8X","object":"chat.completion.chunk","created":1763052398,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Files"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Y67zUlqyFS"}
+      data: {"id":"chatcmpl-Cj53hbJEtQwnfdnCtZAQrC5jzHLJq","object":"chat.completion.chunk","created":1764860241,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" with"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"HKJBsQFUCjg"}
 
-      data: {"id":"chatcmpl-CbUkwKSNynPTu1uyNioPPtws6jh8X","object":"chat.completion.chunk","created":1763052398,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Using"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"lTcF8L5RVO"}
+      data: {"id":"chatcmpl-Cj53hbJEtQwnfdnCtZAQrC5jzHLJq","object":"chat.completion.chunk","created":1764860241,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Glob"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"YtLEKIcQm5l"}
 
-      data: {"id":"chatcmpl-CbUkwKSNynPTu1uyNioPPtws6jh8X","object":"chat.completion.chunk","created":1763052398,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Glob"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"JLPPu1DpXr2"}
+      data: {"id":"chatcmpl-Cj53hbJEtQwnfdnCtZAQrC5jzHLJq","object":"chat.completion.chunk","created":1764860241,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" in"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"iZBNzPvTo0jxu"}
 
-      data: {"id":"chatcmpl-CbUkwKSNynPTu1uyNioPPtws6jh8X","object":"chat.completion.chunk","created":1763052398,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"SMLHukmXMn"}
+      data: {"id":"chatcmpl-Cj53hbJEtQwnfdnCtZAQrC5jzHLJq","object":"chat.completion.chunk","created":1764860241,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Current"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"KOgh1lds"}
 
-      data: {"id":"chatcmpl-CbUkwKSNynPTu1uyNioPPtws6jh8X","object":"chat.completion.chunk","created":1763052398,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[],"usage":{"prompt_tokens":137,"completion_tokens":7,"total_tokens":144,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"TOE6jUxH7CfZvb"}
+      data: {"id":"chatcmpl-Cj53hbJEtQwnfdnCtZAQrC5jzHLJq","object":"chat.completion.chunk","created":1764860241,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Directory"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"S5QHgt"}
+
+      data: {"id":"chatcmpl-Cj53hbJEtQwnfdnCtZAQrC5jzHLJq","object":"chat.completion.chunk","created":1764860241,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"DLenypXNtD"}
+
+      data: {"id":"chatcmpl-Cj53hbJEtQwnfdnCtZAQrC5jzHLJq","object":"chat.completion.chunk","created":1764860241,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[],"usage":{"prompt_tokens":137,"completion_tokens":9,"total_tokens":146,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"LF5oCHHqFEhI0Q"}
 
       data: [DONE]
 
@@ -51,15 +55,15 @@ interactions:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 588.432875ms
+    duration: 440.474708ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46860
+    content_length: 49656
     host: ""

internal/agent/testdata/TestCoderAgent/openai-gpt-5/grep_tool.yaml πŸ”—

@@ -24,33 +24,29 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"chatcmpl-CbUl2IAjfdVJHW5nokJYLkeYz4GfN","object":"chat.completion.chunk","created":1763052404,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"iLOZwOwiokrZuz"}
+      data: {"id":"chatcmpl-Cj53mSmwVnxGtZofUwSXFCPFNSxhC","object":"chat.completion.chunk","created":1764860246,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"8ENL2KwAOKWm2P"}
 
-      data: {"id":"chatcmpl-CbUl2IAjfdVJHW5nokJYLkeYz4GfN","object":"chat.completion.chunk","created":1763052404,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"Search"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"DlbjFQxsHr"}
+      data: {"id":"chatcmpl-Cj53mSmwVnxGtZofUwSXFCPFNSxhC","object":"chat.completion.chunk","created":1764860246,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":"Searching"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"nXP26Dv"}
 
-      data: {"id":"chatcmpl-CbUl2IAjfdVJHW5nokJYLkeYz4GfN","object":"chat.completion.chunk","created":1763052404,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" for"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"i9fGUHvYdwkX"}
+      data: {"id":"chatcmpl-Cj53mSmwVnxGtZofUwSXFCPFNSxhC","object":"chat.completion.chunk","created":1764860246,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" '"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"mrtPrnqaJAogN3"}
 
-      data: {"id":"chatcmpl-CbUl2IAjfdVJHW5nokJYLkeYz4GfN","object":"chat.completion.chunk","created":1763052404,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" '"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"3I6NnbTIs9oMM6"}
+      data: {"id":"chatcmpl-Cj53mSmwVnxGtZofUwSXFCPFNSxhC","object":"chat.completion.chunk","created":1764860246,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":"package"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"D8O8HF4Iw"}
 
-      data: {"id":"chatcmpl-CbUl2IAjfdVJHW5nokJYLkeYz4GfN","object":"chat.completion.chunk","created":1763052404,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"package"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Tp6w4ElkU"}
+      data: {"id":"chatcmpl-Cj53mSmwVnxGtZofUwSXFCPFNSxhC","object":"chat.completion.chunk","created":1764860246,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":"'"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"m5rTAX5RQKwNEDn"}
 
-      data: {"id":"chatcmpl-CbUl2IAjfdVJHW5nokJYLkeYz4GfN","object":"chat.completion.chunk","created":1763052404,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"'"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"DVsWXgHcxXVj7Yj"}
+      data: {"id":"chatcmpl-Cj53mSmwVnxGtZofUwSXFCPFNSxhC","object":"chat.completion.chunk","created":1764860246,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" in"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"nHVnJ6Pugdy8G"}
 
-      data: {"id":"chatcmpl-CbUl2IAjfdVJHW5nokJYLkeYz4GfN","object":"chat.completion.chunk","created":1763052404,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" in"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"SqBXBoHdTWde9"}
+      data: {"id":"chatcmpl-Cj53mSmwVnxGtZofUwSXFCPFNSxhC","object":"chat.completion.chunk","created":1764860246,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Go"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"2uMzwVuOLlNEE"}
 
-      data: {"id":"chatcmpl-CbUl2IAjfdVJHW5nokJYLkeYz4GfN","object":"chat.completion.chunk","created":1763052404,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Go"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"JarASpDMwg549"}
+      data: {"id":"chatcmpl-Cj53mSmwVnxGtZofUwSXFCPFNSxhC","object":"chat.completion.chunk","created":1764860246,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Files"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"I1BwV9nt8j"}
 
-      data: {"id":"chatcmpl-CbUl2IAjfdVJHW5nokJYLkeYz4GfN","object":"chat.completion.chunk","created":1763052404,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Files"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"xV2sEmRndW"}
+      data: {"id":"chatcmpl-Cj53mSmwVnxGtZofUwSXFCPFNSxhC","object":"chat.completion.chunk","created":1764860246,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Using"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"f8BRRjoL8W"}
 
-      data: {"id":"chatcmpl-CbUl2IAjfdVJHW5nokJYLkeYz4GfN","object":"chat.completion.chunk","created":1763052404,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" with"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"rcbAIhtOq7L"}
+      data: {"id":"chatcmpl-Cj53mSmwVnxGtZofUwSXFCPFNSxhC","object":"chat.completion.chunk","created":1764860246,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" grep"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"bFJsX6luiJ3"}
 
-      data: {"id":"chatcmpl-CbUl2IAjfdVJHW5nokJYLkeYz4GfN","object":"chat.completion.chunk","created":1763052404,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Gre"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Lm9JTmBYS8Ed"}
+      data: {"id":"chatcmpl-Cj53mSmwVnxGtZofUwSXFCPFNSxhC","object":"chat.completion.chunk","created":1764860246,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"Ll6LURzlOm"}
 
-      data: {"id":"chatcmpl-CbUl2IAjfdVJHW5nokJYLkeYz4GfN","object":"chat.completion.chunk","created":1763052404,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"p"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"9sjadzI0rntMOmO"}
-
-      data: {"id":"chatcmpl-CbUl2IAjfdVJHW5nokJYLkeYz4GfN","object":"chat.completion.chunk","created":1763052404,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"zbh8PF90nZ"}
-
-      data: {"id":"chatcmpl-CbUl2IAjfdVJHW5nokJYLkeYz4GfN","object":"chat.completion.chunk","created":1763052404,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[],"usage":{"prompt_tokens":138,"completion_tokens":11,"total_tokens":149,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"lEU38UWnKoUkj"}
+      data: {"id":"chatcmpl-Cj53mSmwVnxGtZofUwSXFCPFNSxhC","object":"chat.completion.chunk","created":1764860246,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[],"usage":{"prompt_tokens":138,"completion_tokens":9,"total_tokens":147,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"dCwOnjbzR5Qg3M"}
 
       data: [DONE]
 
@@ -59,15 +55,15 @@ interactions:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 905.066666ms
+    duration: 527.178125ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46858
+    content_length: 49654
     host: ""

internal/agent/testdata/TestCoderAgent/openai-gpt-5/ls_tool.yaml πŸ”—

@@ -24,29 +24,27 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"chatcmpl-CbUl6Eo9LBITv9jqkxRV8ST3YiW8K","object":"chat.completion.chunk","created":1763052408,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"h6r6m9nNnzjc2b"}
+      data: {"id":"chatcmpl-Cj53tDX93W5QLNUH1jJSamFv4ynJ0","object":"chat.completion.chunk","created":1764860253,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"TW4STb9WfcQek9"}
 
-      data: {"id":"chatcmpl-CbUl6Eo9LBITv9jqkxRV8ST3YiW8K","object":"chat.completion.chunk","created":1763052408,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"Using"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"1x1KoK0Hb0x"}
+      data: {"id":"chatcmpl-Cj53tDX93W5QLNUH1jJSamFv4ynJ0","object":"chat.completion.chunk","created":1764860253,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":"Using"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"aUmWLGHp2Bm"}
 
-      data: {"id":"chatcmpl-CbUl6Eo9LBITv9jqkxRV8ST3YiW8K","object":"chat.completion.chunk","created":1763052408,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" \""},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"aeBru4myZMj8U"}
+      data: {"id":"chatcmpl-Cj53tDX93W5QLNUH1jJSamFv4ynJ0","object":"chat.completion.chunk","created":1764860253,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" '"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"T3KgkFusYBvWNU"}
 
-      data: {"id":"chatcmpl-CbUl6Eo9LBITv9jqkxRV8ST3YiW8K","object":"chat.completion.chunk","created":1763052408,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"ls"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"AKrfTGwPHPbmHR"}
+      data: {"id":"chatcmpl-Cj53tDX93W5QLNUH1jJSamFv4ynJ0","object":"chat.completion.chunk","created":1764860253,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":"ls"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"TlW97DPuD2hCZ3"}
 
-      data: {"id":"chatcmpl-CbUl6Eo9LBITv9jqkxRV8ST3YiW8K","object":"chat.completion.chunk","created":1763052408,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"\""},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Uke3XVyrorkLmz"}
+      data: {"id":"chatcmpl-Cj53tDX93W5QLNUH1jJSamFv4ynJ0","object":"chat.completion.chunk","created":1764860253,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":"'"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"WZULsUKRTG7t9ff"}
 
-      data: {"id":"chatcmpl-CbUl6Eo9LBITv9jqkxRV8ST3YiW8K","object":"chat.completion.chunk","created":1763052408,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" to"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"hISNaQuZGrnB7"}
+      data: {"id":"chatcmpl-Cj53tDX93W5QLNUH1jJSamFv4ynJ0","object":"chat.completion.chunk","created":1764860253,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" to"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"j7V92bM1wOZvs"}
 
-      data: {"id":"chatcmpl-CbUl6Eo9LBITv9jqkxRV8ST3YiW8K","object":"chat.completion.chunk","created":1763052408,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" List"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"btTM02jJnwp"}
+      data: {"id":"chatcmpl-Cj53tDX93W5QLNUH1jJSamFv4ynJ0","object":"chat.completion.chunk","created":1764860253,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" List"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"4wnO0foP5O9"}
 
-      data: {"id":"chatcmpl-CbUl6Eo9LBITv9jqkxRV8ST3YiW8K","object":"chat.completion.chunk","created":1763052408,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Current"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"yRseOaxI"}
+      data: {"id":"chatcmpl-Cj53tDX93W5QLNUH1jJSamFv4ynJ0","object":"chat.completion.chunk","created":1764860253,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Directory"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"PZzUNS"}
 
-      data: {"id":"chatcmpl-CbUl6Eo9LBITv9jqkxRV8ST3YiW8K","object":"chat.completion.chunk","created":1763052408,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Directory"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"OmgEC9"}
+      data: {"id":"chatcmpl-Cj53tDX93W5QLNUH1jJSamFv4ynJ0","object":"chat.completion.chunk","created":1764860253,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Files"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"XvVmL40npE"}
 
-      data: {"id":"chatcmpl-CbUl6Eo9LBITv9jqkxRV8ST3YiW8K","object":"chat.completion.chunk","created":1763052408,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Files"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"zo7agHZlcJ"}
+      data: {"id":"chatcmpl-Cj53tDX93W5QLNUH1jJSamFv4ynJ0","object":"chat.completion.chunk","created":1764860253,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"rTKwCg6iL8"}
 
-      data: {"id":"chatcmpl-CbUl6Eo9LBITv9jqkxRV8ST3YiW8K","object":"chat.completion.chunk","created":1763052408,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"9p7oJJimGD"}
-
-      data: {"id":"chatcmpl-CbUl6Eo9LBITv9jqkxRV8ST3YiW8K","object":"chat.completion.chunk","created":1763052408,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[],"usage":{"prompt_tokens":135,"completion_tokens":9,"total_tokens":144,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"agLuSnoPNH0Vcl"}
+      data: {"id":"chatcmpl-Cj53tDX93W5QLNUH1jJSamFv4ynJ0","object":"chat.completion.chunk","created":1764860253,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[],"usage":{"prompt_tokens":135,"completion_tokens":8,"total_tokens":143,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"k7W4A9LOGIMzb3"}
 
       data: [DONE]
 
@@ -55,15 +53,15 @@ interactions:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 512.434875ms
+    duration: 668.433542ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46852
+    content_length: 49648
     host: ""

internal/agent/testdata/TestCoderAgent/openai-gpt-5/multiedit_tool.yaml πŸ”—

@@ -24,29 +24,29 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"chatcmpl-CbUlCvlCNyoHxyfL6OG4rSI5SfBFJ","object":"chat.completion.chunk","created":1763052414,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"H3R9eYIF6idNFg"}
+      data: {"id":"chatcmpl-Cj53yeWKMaglUOpLcl7LleXTOVKQa","object":"chat.completion.chunk","created":1764860258,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"rdbCWgFFflV0nK"}
 
-      data: {"id":"chatcmpl-CbUlCvlCNyoHxyfL6OG4rSI5SfBFJ","object":"chat.completion.chunk","created":1763052414,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"Edit"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"aKyHBfmaTJ0O"}
+      data: {"id":"chatcmpl-Cj53yeWKMaglUOpLcl7LleXTOVKQa","object":"chat.completion.chunk","created":1764860258,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":"Edit"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"jHHKGN3xXyh6"}
 
-      data: {"id":"chatcmpl-CbUlCvlCNyoHxyfL6OG4rSI5SfBFJ","object":"chat.completion.chunk","created":1763052414,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" and"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"q1bgNUrXPJlA"}
+      data: {"id":"chatcmpl-Cj53yeWKMaglUOpLcl7LleXTOVKQa","object":"chat.completion.chunk","created":1764860258,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Main"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"y2bRDJK2Qy4"}
 
-      data: {"id":"chatcmpl-CbUlCvlCNyoHxyfL6OG4rSI5SfBFJ","object":"chat.completion.chunk","created":1763052414,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Comment"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Romp8onI"}
+      data: {"id":"chatcmpl-Cj53yeWKMaglUOpLcl7LleXTOVKQa","object":"chat.completion.chunk","created":1764860258,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":".go"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"gh0erNeqd8TOY"}
 
-      data: {"id":"chatcmpl-CbUlCvlCNyoHxyfL6OG4rSI5SfBFJ","object":"chat.completion.chunk","created":1763052414,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" in"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"SRm0wTqnVipZc"}
+      data: {"id":"chatcmpl-Cj53yeWKMaglUOpLcl7LleXTOVKQa","object":"chat.completion.chunk","created":1764860258,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":":"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"aI0oZtT4R1VbQMR"}
 
-      data: {"id":"chatcmpl-CbUlCvlCNyoHxyfL6OG4rSI5SfBFJ","object":"chat.completion.chunk","created":1763052414,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" main"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"CyrbI2x4kis"}
+      data: {"id":"chatcmpl-Cj53yeWKMaglUOpLcl7LleXTOVKQa","object":"chat.completion.chunk","created":1764860258,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Change"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"7BXN6zwu4"}
 
-      data: {"id":"chatcmpl-CbUlCvlCNyoHxyfL6OG4rSI5SfBFJ","object":"chat.completion.chunk","created":1763052414,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":".go"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"eVWU5HRDDmtMp"}
+      data: {"id":"chatcmpl-Cj53yeWKMaglUOpLcl7LleXTOVKQa","object":"chat.completion.chunk","created":1764860258,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Message"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"bEsmlz4O"}
 
-      data: {"id":"chatcmpl-CbUlCvlCNyoHxyfL6OG4rSI5SfBFJ","object":"chat.completion.chunk","created":1763052414,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" for"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"oxyQzCXPlPMk"}
+      data: {"id":"chatcmpl-Cj53yeWKMaglUOpLcl7LleXTOVKQa","object":"chat.completion.chunk","created":1764860258,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" and"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"3snlOQd7wEti"}
 
-      data: {"id":"chatcmpl-CbUlCvlCNyoHxyfL6OG4rSI5SfBFJ","object":"chat.completion.chunk","created":1763052414,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Greeting"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"r9iEorH"}
+      data: {"id":"chatcmpl-Cj53yeWKMaglUOpLcl7LleXTOVKQa","object":"chat.completion.chunk","created":1764860258,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Add"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"OOU0Qs7kuDay"}
 
-      data: {"id":"chatcmpl-CbUlCvlCNyoHxyfL6OG4rSI5SfBFJ","object":"chat.completion.chunk","created":1763052414,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Update"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"6BCBJuLcl"}
+      data: {"id":"chatcmpl-Cj53yeWKMaglUOpLcl7LleXTOVKQa","object":"chat.completion.chunk","created":1764860258,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Comment"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"86gXokeu"}
 
-      data: {"id":"chatcmpl-CbUlCvlCNyoHxyfL6OG4rSI5SfBFJ","object":"chat.completion.chunk","created":1763052414,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"U9YYQSWkgT"}
+      data: {"id":"chatcmpl-Cj53yeWKMaglUOpLcl7LleXTOVKQa","object":"chat.completion.chunk","created":1764860258,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"olFaSH9ymG"}
 
-      data: {"id":"chatcmpl-CbUlCvlCNyoHxyfL6OG4rSI5SfBFJ","object":"chat.completion.chunk","created":1763052414,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[],"usage":{"prompt_tokens":157,"completion_tokens":9,"total_tokens":166,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"nbn5J8AdAuvaXC"}
+      data: {"id":"chatcmpl-Cj53yeWKMaglUOpLcl7LleXTOVKQa","object":"chat.completion.chunk","created":1764860258,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[],"usage":{"prompt_tokens":157,"completion_tokens":9,"total_tokens":166,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"XsHrQzfIXL0KsK"}
 
       data: [DONE]
 
@@ -55,15 +55,15 @@ interactions:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 617.736125ms
+    duration: 589.191917ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46938
+    content_length: 49734
     host: ""

internal/agent/testdata/TestCoderAgent/openai-gpt-5/parallel_tool_calls.yaml πŸ”—

@@ -24,25 +24,25 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"chatcmpl-CbUmiKV4H97n0B3Ob91SElEDTeo79","object":"chat.completion.chunk","created":1763052508,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"38eUDEFLeE7ZtA"}
+      data: {"id":"chatcmpl-Cj56QaweOhKN8xt2ehOSo1ppHg8mN","object":"chat.completion.chunk","created":1764860410,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"en71lxqxsv2hgF"}
 
-      data: {"id":"chatcmpl-CbUmiKV4H97n0B3Ob91SElEDTeo79","object":"chat.completion.chunk","created":1763052508,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"Parallel"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"sKWfEePK"}
+      data: {"id":"chatcmpl-Cj56QaweOhKN8xt2ehOSo1ppHg8mN","object":"chat.completion.chunk","created":1764860410,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":"Parallel"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"kYYTItfM"}
 
-      data: {"id":"chatcmpl-CbUmiKV4H97n0B3Ob91SElEDTeo79","object":"chat.completion.chunk","created":1763052508,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Execution"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"mmGyMl"}
+      data: {"id":"chatcmpl-Cj56QaweOhKN8xt2ehOSo1ppHg8mN","object":"chat.completion.chunk","created":1764860410,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Execution"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"06T3zw"}
 
-      data: {"id":"chatcmpl-CbUmiKV4H97n0B3Ob91SElEDTeo79","object":"chat.completion.chunk","created":1763052508,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" of"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"fFOWGorFW1Tse"}
+      data: {"id":"chatcmpl-Cj56QaweOhKN8xt2ehOSo1ppHg8mN","object":"chat.completion.chunk","created":1764860410,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" of"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"2ulP9GZWdkI7b"}
 
-      data: {"id":"chatcmpl-CbUmiKV4H97n0B3Ob91SElEDTeo79","object":"chat.completion.chunk","created":1763052508,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Glob"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"fc0w3pKu7eX"}
+      data: {"id":"chatcmpl-Cj56QaweOhKN8xt2ehOSo1ppHg8mN","object":"chat.completion.chunk","created":1764860410,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" glob"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"1xxXmgF94JF"}
 
-      data: {"id":"chatcmpl-CbUmiKV4H97n0B3Ob91SElEDTeo79","object":"chat.completion.chunk","created":1763052508,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" and"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"fJbKXygv1oCi"}
+      data: {"id":"chatcmpl-Cj56QaweOhKN8xt2ehOSo1ppHg8mN","object":"chat.completion.chunk","created":1764860410,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" and"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"iubcqPaFJlOR"}
 
-      data: {"id":"chatcmpl-CbUmiKV4H97n0B3Ob91SElEDTeo79","object":"chat.completion.chunk","created":1763052508,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" ls"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"7K9h8d5dcvpla"}
+      data: {"id":"chatcmpl-Cj56QaweOhKN8xt2ehOSo1ppHg8mN","object":"chat.completion.chunk","created":1764860410,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" ls"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ncbuO6HYbg9l2"}
 
-      data: {"id":"chatcmpl-CbUmiKV4H97n0B3Ob91SElEDTeo79","object":"chat.completion.chunk","created":1763052508,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Commands"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"kPVTp92"}
+      data: {"id":"chatcmpl-Cj56QaweOhKN8xt2ehOSo1ppHg8mN","object":"chat.completion.chunk","created":1764860410,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Commands"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"8q7GfLq"}
 
-      data: {"id":"chatcmpl-CbUmiKV4H97n0B3Ob91SElEDTeo79","object":"chat.completion.chunk","created":1763052508,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"Jii0PIQji4"}
+      data: {"id":"chatcmpl-Cj56QaweOhKN8xt2ehOSo1ppHg8mN","object":"chat.completion.chunk","created":1764860410,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"9PidwyIEv3"}
 
-      data: {"id":"chatcmpl-CbUmiKV4H97n0B3Ob91SElEDTeo79","object":"chat.completion.chunk","created":1763052508,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[],"usage":{"prompt_tokens":154,"completion_tokens":7,"total_tokens":161,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"gOTFO7fnS0raPc"}
+      data: {"id":"chatcmpl-Cj56QaweOhKN8xt2ehOSo1ppHg8mN","object":"chat.completion.chunk","created":1764860410,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[],"usage":{"prompt_tokens":154,"completion_tokens":7,"total_tokens":161,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"OykJ1M0K9hlmGC"}
 
       data: [DONE]
 
@@ -51,15 +51,15 @@ interactions:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 845.506083ms
+    duration: 590.331542ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46949
+    content_length: 49745
     host: ""

internal/agent/testdata/TestCoderAgent/openai-gpt-5/read_a_file.yaml πŸ”—

@@ -24,19 +24,19 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"chatcmpl-CbUjbk0FbXUMEIhur153OYQjxrcPg","object":"chat.completion.chunk","created":1763052315,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"uT7wUdt4SRHamH"}
+      data: {"id":"chatcmpl-Cj52hLwenYEpU1rz1YgdEneB92NSv","object":"chat.completion.chunk","created":1764860179,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_e819e3438b","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"sg557YmnPCYToa"}
 
-      data: {"id":"chatcmpl-CbUjbk0FbXUMEIhur153OYQjxrcPg","object":"chat.completion.chunk","created":1763052315,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":"Reading"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Bx94I54zj"}
+      data: {"id":"chatcmpl-Cj52hLwenYEpU1rz1YgdEneB92NSv","object":"chat.completion.chunk","created":1764860179,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_e819e3438b","choices":[{"index":0,"delta":{"content":"Understanding"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"CnV"}
 
-      data: {"id":"chatcmpl-CbUjbk0FbXUMEIhur153OYQjxrcPg","object":"chat.completion.chunk","created":1763052315,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" Go"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"IdmbSYj4oqHy1"}
+      data: {"id":"chatcmpl-Cj52hLwenYEpU1rz1YgdEneB92NSv","object":"chat.completion.chunk","created":1764860179,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_e819e3438b","choices":[{"index":0,"delta":{"content":" Go"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"T5eYmBas7ArdI"}
 
-      data: {"id":"chatcmpl-CbUjbk0FbXUMEIhur153OYQjxrcPg","object":"chat.completion.chunk","created":1763052315,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" Mod"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"JnskSeubME1a"}
+      data: {"id":"chatcmpl-Cj52hLwenYEpU1rz1YgdEneB92NSv","object":"chat.completion.chunk","created":1764860179,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_e819e3438b","choices":[{"index":0,"delta":{"content":" Module"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"o1vgqEEdc"}
 
-      data: {"id":"chatcmpl-CbUjbk0FbXUMEIhur153OYQjxrcPg","object":"chat.completion.chunk","created":1763052315,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" File"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"2SHtWMenh9E"}
+      data: {"id":"chatcmpl-Cj52hLwenYEpU1rz1YgdEneB92NSv","object":"chat.completion.chunk","created":1764860179,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_e819e3438b","choices":[{"index":0,"delta":{"content":" Files"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"d9JYQg2CoN"}
 
-      data: {"id":"chatcmpl-CbUjbk0FbXUMEIhur153OYQjxrcPg","object":"chat.completion.chunk","created":1763052315,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"ox5d7o7dBk"}
+      data: {"id":"chatcmpl-Cj52hLwenYEpU1rz1YgdEneB92NSv","object":"chat.completion.chunk","created":1764860179,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_e819e3438b","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"D7Vt1TxFsO"}
 
-      data: {"id":"chatcmpl-CbUjbk0FbXUMEIhur153OYQjxrcPg","object":"chat.completion.chunk","created":1763052315,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[],"usage":{"prompt_tokens":129,"completion_tokens":4,"total_tokens":133,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"2jPOuQKFjFRVxo"}
+      data: {"id":"chatcmpl-Cj52hLwenYEpU1rz1YgdEneB92NSv","object":"chat.completion.chunk","created":1764860179,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_e819e3438b","choices":[],"usage":{"prompt_tokens":129,"completion_tokens":4,"total_tokens":133,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"3vdJjCHn4KZa8P"}
 
       data: [DONE]
 
@@ -45,15 +45,15 @@ interactions:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 1.350092792s
+    duration: 896.270958ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46822
+    content_length: 49618
     host: ""

internal/agent/testdata/TestCoderAgent/openai-gpt-5/simple_test.yaml πŸ”—

@@ -24,15 +24,15 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"chatcmpl-CbUjYq4LXkJbKgYIRG5hMg4oQOON1","object":"chat.completion.chunk","created":1763052312,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"IxOrABX6yljD2G"}
+      data: {"id":"chatcmpl-Cj52eQv000o2d2FsaPX9G1AUgNM1Z","object":"chat.completion.chunk","created":1764860176,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_a4d13246c5","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"FNyX50dDJ2igV0"}
 
-      data: {"id":"chatcmpl-CbUjYq4LXkJbKgYIRG5hMg4oQOON1","object":"chat.completion.chunk","created":1763052312,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"Greeting"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"xPZrJHtX"}
+      data: {"id":"chatcmpl-Cj52eQv000o2d2FsaPX9G1AUgNM1Z","object":"chat.completion.chunk","created":1764860176,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_a4d13246c5","choices":[{"index":0,"delta":{"content":"Greeting"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"VNA3w0Nf"}
 
-      data: {"id":"chatcmpl-CbUjYq4LXkJbKgYIRG5hMg4oQOON1","object":"chat.completion.chunk","created":1763052312,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Inquiry"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"HvYXHs27"}
+      data: {"id":"chatcmpl-Cj52eQv000o2d2FsaPX9G1AUgNM1Z","object":"chat.completion.chunk","created":1764860176,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_a4d13246c5","choices":[{"index":0,"delta":{"content":" Message"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"cZ3GHyvB"}
 
-      data: {"id":"chatcmpl-CbUjYq4LXkJbKgYIRG5hMg4oQOON1","object":"chat.completion.chunk","created":1763052312,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"7XLuydsygC"}
+      data: {"id":"chatcmpl-Cj52eQv000o2d2FsaPX9G1AUgNM1Z","object":"chat.completion.chunk","created":1764860176,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_a4d13246c5","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"VRCS3ZwSnL"}
 
-      data: {"id":"chatcmpl-CbUjYq4LXkJbKgYIRG5hMg4oQOON1","object":"chat.completion.chunk","created":1763052312,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[],"usage":{"prompt_tokens":126,"completion_tokens":2,"total_tokens":128,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"yi1YkNtf9pGxOj"}
+      data: {"id":"chatcmpl-Cj52eQv000o2d2FsaPX9G1AUgNM1Z","object":"chat.completion.chunk","created":1764860176,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_a4d13246c5","choices":[],"usage":{"prompt_tokens":126,"completion_tokens":2,"total_tokens":128,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"Z12k1kJzry5Mc3"}
 
       data: [DONE]
 
@@ -41,15 +41,15 @@ interactions:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 1.689023333s
+    duration: 1.139960292s
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46812
+    content_length: 49608
     host: ""

internal/agent/testdata/TestCoderAgent/openai-gpt-5/sourcegraph_tool.yaml πŸ”—

@@ -24,35 +24,35 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"chatcmpl-CbUm9HzQPFeLZIe0BpSquzUVtbhWJ","object":"chat.completion.chunk","created":1763052473,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"q9ikvfRO9M9ZCD"}
+      data: {"id":"chatcmpl-Cj54SiDhwbm1JyeUaCZv372W8GeWR","object":"chat.completion.chunk","created":1764860288,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"FwIT7GcDhGfsWm"}
 
-      data: {"id":"chatcmpl-CbUm9HzQPFeLZIe0BpSquzUVtbhWJ","object":"chat.completion.chunk","created":1763052473,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"Searching"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ZhFnlDX"}
+      data: {"id":"chatcmpl-Cj54SiDhwbm1JyeUaCZv372W8GeWR","object":"chat.completion.chunk","created":1764860288,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":"Searching"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"GP5VW04"}
 
-      data: {"id":"chatcmpl-CbUm9HzQPFeLZIe0BpSquzUVtbhWJ","object":"chat.completion.chunk","created":1763052473,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Go"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"HElY6XnNKJ1BA"}
+      data: {"id":"chatcmpl-Cj54SiDhwbm1JyeUaCZv372W8GeWR","object":"chat.completion.chunk","created":1764860288,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" '"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"2lnilml1wHI2Ki"}
 
-      data: {"id":"chatcmpl-CbUm9HzQPFeLZIe0BpSquzUVtbhWJ","object":"chat.completion.chunk","created":1763052473,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Re"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"2zyFERj6QNdmo"}
+      data: {"id":"chatcmpl-Cj54SiDhwbm1JyeUaCZv372W8GeWR","object":"chat.completion.chunk","created":1764860288,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":"func"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"hL3JLfrlvtqH"}
 
-      data: {"id":"chatcmpl-CbUm9HzQPFeLZIe0BpSquzUVtbhWJ","object":"chat.completion.chunk","created":1763052473,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"pos"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Cn4Gpri5nvD77"}
+      data: {"id":"chatcmpl-Cj54SiDhwbm1JyeUaCZv372W8GeWR","object":"chat.completion.chunk","created":1764860288,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" main"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"oxV2laCPWBR"}
 
-      data: {"id":"chatcmpl-CbUm9HzQPFeLZIe0BpSquzUVtbhWJ","object":"chat.completion.chunk","created":1763052473,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" for"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"YSHLewPbtDfF"}
+      data: {"id":"chatcmpl-Cj54SiDhwbm1JyeUaCZv372W8GeWR","object":"chat.completion.chunk","created":1764860288,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":"'"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"IqpyU0lRgCoAHXs"}
 
-      data: {"id":"chatcmpl-CbUm9HzQPFeLZIe0BpSquzUVtbhWJ","object":"chat.completion.chunk","created":1763052473,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" '"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"QjGpWTc9855ITW"}
+      data: {"id":"chatcmpl-Cj54SiDhwbm1JyeUaCZv372W8GeWR","object":"chat.completion.chunk","created":1764860288,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" in"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"MnazWvhAjJJP4"}
 
-      data: {"id":"chatcmpl-CbUm9HzQPFeLZIe0BpSquzUVtbhWJ","object":"chat.completion.chunk","created":1763052473,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"func"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"1Uvyj8nvbukf"}
+      data: {"id":"chatcmpl-Cj54SiDhwbm1JyeUaCZv372W8GeWR","object":"chat.completion.chunk","created":1764860288,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Go"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"hmYkZli8CMxRX"}
 
-      data: {"id":"chatcmpl-CbUm9HzQPFeLZIe0BpSquzUVtbhWJ","object":"chat.completion.chunk","created":1763052473,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" main"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"IhWK6eQjLLy"}
+      data: {"id":"chatcmpl-Cj54SiDhwbm1JyeUaCZv372W8GeWR","object":"chat.completion.chunk","created":1764860288,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Re"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"5bvlgICSA2yz7"}
 
-      data: {"id":"chatcmpl-CbUm9HzQPFeLZIe0BpSquzUVtbhWJ","object":"chat.completion.chunk","created":1763052473,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"'"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"d3p3kVTt9RekBy5"}
+      data: {"id":"chatcmpl-Cj54SiDhwbm1JyeUaCZv372W8GeWR","object":"chat.completion.chunk","created":1764860288,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":"positories"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"TZFoH6"}
 
-      data: {"id":"chatcmpl-CbUm9HzQPFeLZIe0BpSquzUVtbhWJ","object":"chat.completion.chunk","created":1763052473,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" with"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"thSYY5CMCD0"}
+      data: {"id":"chatcmpl-Cj54SiDhwbm1JyeUaCZv372W8GeWR","object":"chat.completion.chunk","created":1764860288,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" with"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"wfCJPYmS5ZG"}
 
-      data: {"id":"chatcmpl-CbUm9HzQPFeLZIe0BpSquzUVtbhWJ","object":"chat.completion.chunk","created":1763052473,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Source"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"6hcYX3QlM"}
+      data: {"id":"chatcmpl-Cj54SiDhwbm1JyeUaCZv372W8GeWR","object":"chat.completion.chunk","created":1764860288,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Source"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"2h98aPtH1"}
 
-      data: {"id":"chatcmpl-CbUm9HzQPFeLZIe0BpSquzUVtbhWJ","object":"chat.completion.chunk","created":1763052473,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"graph"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"GSae3ccbYPD"}
+      data: {"id":"chatcmpl-Cj54SiDhwbm1JyeUaCZv372W8GeWR","object":"chat.completion.chunk","created":1764860288,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":"graph"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"eNqG37bZBVO"}
 
-      data: {"id":"chatcmpl-CbUm9HzQPFeLZIe0BpSquzUVtbhWJ","object":"chat.completion.chunk","created":1763052473,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"l8TqeuFuRK"}
+      data: {"id":"chatcmpl-Cj54SiDhwbm1JyeUaCZv372W8GeWR","object":"chat.completion.chunk","created":1764860288,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"1IM1DjdGd1"}
 
-      data: {"id":"chatcmpl-CbUm9HzQPFeLZIe0BpSquzUVtbhWJ","object":"chat.completion.chunk","created":1763052473,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[],"usage":{"prompt_tokens":138,"completion_tokens":12,"total_tokens":150,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"VZadSktxeaWcn"}
+      data: {"id":"chatcmpl-Cj54SiDhwbm1JyeUaCZv372W8GeWR","object":"chat.completion.chunk","created":1764860288,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[],"usage":{"prompt_tokens":138,"completion_tokens":12,"total_tokens":150,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"QId9tVVvmq9Oy"}
 
       data: [DONE]
 
@@ -61,15 +61,15 @@ interactions:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 637.585333ms
+    duration: 702.195458ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46872
+    content_length: 49668
     host: ""

internal/agent/testdata/TestCoderAgent/openai-gpt-5/update_a_file.yaml πŸ”—

@@ -24,31 +24,31 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"chatcmpl-CbUjk3PHkBtrSPSn2hCQjnyk4hjCn","object":"chat.completion.chunk","created":1763052324,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"GesaPJpzwJRMHM"}
+      data: {"id":"chatcmpl-Cj52n4VMlKNW7EGkIbPmSQesUOOik","object":"chat.completion.chunk","created":1764860185,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_a4d13246c5","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"jnSvoeCULFRnhj"}
 
-      data: {"id":"chatcmpl-CbUjk3PHkBtrSPSn2hCQjnyk4hjCn","object":"chat.completion.chunk","created":1763052324,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":"Update"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Y9fFfWfnr1"}
+      data: {"id":"chatcmpl-Cj52n4VMlKNW7EGkIbPmSQesUOOik","object":"chat.completion.chunk","created":1764860185,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_a4d13246c5","choices":[{"index":0,"delta":{"content":"Update"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"uXOZRc2qKz"}
 
-      data: {"id":"chatcmpl-CbUjk3PHkBtrSPSn2hCQjnyk4hjCn","object":"chat.completion.chunk","created":1763052324,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" main"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"vR4scZ7Ao7k"}
+      data: {"id":"chatcmpl-Cj52n4VMlKNW7EGkIbPmSQesUOOik","object":"chat.completion.chunk","created":1764860185,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_a4d13246c5","choices":[{"index":0,"delta":{"content":" main"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"nItVEjzPoDU"}
 
-      data: {"id":"chatcmpl-CbUjk3PHkBtrSPSn2hCQjnyk4hjCn","object":"chat.completion.chunk","created":1763052324,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":".go"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"vHGU6ynU8b8tx"}
+      data: {"id":"chatcmpl-Cj52n4VMlKNW7EGkIbPmSQesUOOik","object":"chat.completion.chunk","created":1764860185,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_a4d13246c5","choices":[{"index":0,"delta":{"content":".go"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"lyLnr9oGQaSEw"}
 
-      data: {"id":"chatcmpl-CbUjk3PHkBtrSPSn2hCQjnyk4hjCn","object":"chat.completion.chunk","created":1763052324,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" to"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"gt32CmTR8rqsH"}
+      data: {"id":"chatcmpl-Cj52n4VMlKNW7EGkIbPmSQesUOOik","object":"chat.completion.chunk","created":1764860185,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_a4d13246c5","choices":[{"index":0,"delta":{"content":" to"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"UYysqz5a9XBvI"}
 
-      data: {"id":"chatcmpl-CbUjk3PHkBtrSPSn2hCQjnyk4hjCn","object":"chat.completion.chunk","created":1763052324,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" Print"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"5y27FvlZ3l"}
+      data: {"id":"chatcmpl-Cj52n4VMlKNW7EGkIbPmSQesUOOik","object":"chat.completion.chunk","created":1764860185,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_a4d13246c5","choices":[{"index":0,"delta":{"content":" Print"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"AnNteEYj92"}
 
-      data: {"id":"chatcmpl-CbUjk3PHkBtrSPSn2hCQjnyk4hjCn","object":"chat.completion.chunk","created":1763052324,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" \""},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"noEsu8vW42kmo"}
+      data: {"id":"chatcmpl-Cj52n4VMlKNW7EGkIbPmSQesUOOik","object":"chat.completion.chunk","created":1764860185,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_a4d13246c5","choices":[{"index":0,"delta":{"content":" '"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"AltRzBMbqoi7i7"}
 
-      data: {"id":"chatcmpl-CbUjk3PHkBtrSPSn2hCQjnyk4hjCn","object":"chat.completion.chunk","created":1763052324,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":"Hello"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"IJlcciGmQfb"}
+      data: {"id":"chatcmpl-Cj52n4VMlKNW7EGkIbPmSQesUOOik","object":"chat.completion.chunk","created":1764860185,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_a4d13246c5","choices":[{"index":0,"delta":{"content":"Hello"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"LikEhFp6Tid"}
 
-      data: {"id":"chatcmpl-CbUjk3PHkBtrSPSn2hCQjnyk4hjCn","object":"chat.completion.chunk","created":1763052324,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" from"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ApiILnaGLSk"}
+      data: {"id":"chatcmpl-Cj52n4VMlKNW7EGkIbPmSQesUOOik","object":"chat.completion.chunk","created":1764860185,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_a4d13246c5","choices":[{"index":0,"delta":{"content":" from"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"KApBBXWRhC4"}
 
-      data: {"id":"chatcmpl-CbUjk3PHkBtrSPSn2hCQjnyk4hjCn","object":"chat.completion.chunk","created":1763052324,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":" Crush"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"CGM8fiIg0S"}
+      data: {"id":"chatcmpl-Cj52n4VMlKNW7EGkIbPmSQesUOOik","object":"chat.completion.chunk","created":1764860185,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_a4d13246c5","choices":[{"index":0,"delta":{"content":" Crush"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"qHtFcOFWtP"}
 
-      data: {"id":"chatcmpl-CbUjk3PHkBtrSPSn2hCQjnyk4hjCn","object":"chat.completion.chunk","created":1763052324,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{"content":"\""},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"9TrOloEfBdeWSw"}
+      data: {"id":"chatcmpl-Cj52n4VMlKNW7EGkIbPmSQesUOOik","object":"chat.completion.chunk","created":1764860185,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_a4d13246c5","choices":[{"index":0,"delta":{"content":"'"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"r01R3jirRbsgssi"}
 
-      data: {"id":"chatcmpl-CbUjk3PHkBtrSPSn2hCQjnyk4hjCn","object":"chat.completion.chunk","created":1763052324,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"B4ThyV59MI"}
+      data: {"id":"chatcmpl-Cj52n4VMlKNW7EGkIbPmSQesUOOik","object":"chat.completion.chunk","created":1764860185,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_a4d13246c5","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"NncQw3AoFf"}
 
-      data: {"id":"chatcmpl-CbUjk3PHkBtrSPSn2hCQjnyk4hjCn","object":"chat.completion.chunk","created":1763052324,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_b1442291a8","choices":[],"usage":{"prompt_tokens":139,"completion_tokens":10,"total_tokens":149,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"LNofLrRQBTpT6"}
+      data: {"id":"chatcmpl-Cj52n4VMlKNW7EGkIbPmSQesUOOik","object":"chat.completion.chunk","created":1764860185,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_a4d13246c5","choices":[],"usage":{"prompt_tokens":139,"completion_tokens":10,"total_tokens":149,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"S327t5vBpGUSI"}
 
       data: [DONE]
 
@@ -57,15 +57,15 @@ interactions:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 633.346959ms
+    duration: 380.115ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46878
+    content_length: 49674
     host: ""

internal/agent/testdata/TestCoderAgent/openai-gpt-5/write_tool.yaml πŸ”—

@@ -24,23 +24,23 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"chatcmpl-CbUmZKAn1GsoqE3PCOdflHQc2MsXM","object":"chat.completion.chunk","created":1763052499,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"TlZ2Zfe1QT8R7J"}
+      data: {"id":"chatcmpl-Cj567SdJJ6Y35usztT9T5n3BPi9IV","object":"chat.completion.chunk","created":1764860391,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"role":"assistant","content":"","refusal":null},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"Ll4G39fplXyLa3"}
 
-      data: {"id":"chatcmpl-CbUmZKAn1GsoqE3PCOdflHQc2MsXM","object":"chat.completion.chunk","created":1763052499,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":"Create"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"OGuyTScdFB"}
+      data: {"id":"chatcmpl-Cj567SdJJ6Y35usztT9T5n3BPi9IV","object":"chat.completion.chunk","created":1764860391,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":"Creating"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"LwKLUI4c"}
 
-      data: {"id":"chatcmpl-CbUmZKAn1GsoqE3PCOdflHQc2MsXM","object":"chat.completion.chunk","created":1763052499,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Config"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"H2zjPXZfm"}
+      data: {"id":"chatcmpl-Cj567SdJJ6Y35usztT9T5n3BPi9IV","object":"chat.completion.chunk","created":1764860391,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Config"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ieYAD0604"}
 
-      data: {"id":"chatcmpl-CbUmZKAn1GsoqE3PCOdflHQc2MsXM","object":"chat.completion.chunk","created":1763052499,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" File"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"ZzwG2NWPWFw"}
+      data: {"id":"chatcmpl-Cj567SdJJ6Y35usztT9T5n3BPi9IV","object":"chat.completion.chunk","created":1764860391,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":".json"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"nzt1YriXO91"}
 
-      data: {"id":"chatcmpl-CbUmZKAn1GsoqE3PCOdflHQc2MsXM","object":"chat.completion.chunk","created":1763052499,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" with"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"xaJbLeMtyC7"}
+      data: {"id":"chatcmpl-Cj567SdJJ6Y35usztT9T5n3BPi9IV","object":"chat.completion.chunk","created":1764860391,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" with"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"64PpynSdPwB"}
 
-      data: {"id":"chatcmpl-CbUmZKAn1GsoqE3PCOdflHQc2MsXM","object":"chat.completion.chunk","created":1763052499,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" JSON"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"75BDNHjPtek"}
+      data: {"id":"chatcmpl-Cj567SdJJ6Y35usztT9T5n3BPi9IV","object":"chat.completion.chunk","created":1764860391,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Version"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"7Ln6yEWd"}
 
-      data: {"id":"chatcmpl-CbUmZKAn1GsoqE3PCOdflHQc2MsXM","object":"chat.completion.chunk","created":1763052499,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{"content":" Content"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"1D8uJ5sJ"}
+      data: {"id":"chatcmpl-Cj567SdJJ6Y35usztT9T5n3BPi9IV","object":"chat.completion.chunk","created":1764860391,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{"content":" Details"},"logprobs":null,"finish_reason":null}],"usage":null,"obfuscation":"c29ykvWL"}
 
-      data: {"id":"chatcmpl-CbUmZKAn1GsoqE3PCOdflHQc2MsXM","object":"chat.completion.chunk","created":1763052499,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"TOLCmNVKfG"}
+      data: {"id":"chatcmpl-Cj567SdJJ6Y35usztT9T5n3BPi9IV","object":"chat.completion.chunk","created":1764860391,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[{"index":0,"delta":{},"logprobs":null,"finish_reason":"stop"}],"usage":null,"obfuscation":"VHMkTQcvbL"}
 
-      data: {"id":"chatcmpl-CbUmZKAn1GsoqE3PCOdflHQc2MsXM","object":"chat.completion.chunk","created":1763052499,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_cbf1785567","choices":[],"usage":{"prompt_tokens":153,"completion_tokens":6,"total_tokens":159,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"ToMmmKEknxFTKs"}
+      data: {"id":"chatcmpl-Cj567SdJJ6Y35usztT9T5n3BPi9IV","object":"chat.completion.chunk","created":1764860391,"model":"gpt-4o-2024-08-06","service_tier":"default","system_fingerprint":"fp_689bad8e9a","choices":[],"usage":{"prompt_tokens":153,"completion_tokens":6,"total_tokens":159,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0},"completion_tokens_details":{"reasoning_tokens":0,"audio_tokens":0,"accepted_prediction_tokens":0,"rejected_prediction_tokens":0}},"obfuscation":"FMZwMj7NqHf5y9"}
 
       data: [DONE]
 
@@ -49,15 +49,15 @@ interactions:
       - text/event-stream; charset=utf-8
     status: 200 OK
     code: 200
-    duration: 1.097819708s
+    duration: 1.278842625s
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46915
+    content_length: 49711
     host: ""

internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/bash_tool.yaml πŸ”—

@@ -24,21 +24,21 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"gen-1763054736-Rp5v2bhZCQHuksIBMnt3","provider":"Hyperbolic","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763054737,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860469-fJrxWlQouO66KLFJIOEy","provider":"Novita","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860469,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":""}
 
-      data: {"id":"gen-1763054736-Rp5v2bhZCQHuksIBMnt3","provider":"Hyperbolic","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763054737,"choices":[{"index":0,"delta":{"role":"assistant","content":"Create"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860469-fJrxWlQouO66KLFJIOEy","provider":"Novita","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860469,"choices":[{"index":0,"delta":{"role":"assistant","content":"Create"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":""}
 
-      data: {"id":"gen-1763054736-Rp5v2bhZCQHuksIBMnt3","provider":"Hyperbolic","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763054737,"choices":[{"index":0,"delta":{"role":"assistant","content":" test"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860469-fJrxWlQouO66KLFJIOEy","provider":"Novita","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860469,"choices":[{"index":0,"delta":{"role":"assistant","content":" test"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":""}
 
-      data: {"id":"gen-1763054736-Rp5v2bhZCQHuksIBMnt3","provider":"Hyperbolic","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763054737,"choices":[{"index":0,"delta":{"role":"assistant","content":".txt with"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860469-fJrxWlQouO66KLFJIOEy","provider":"Novita","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860469,"choices":[{"index":0,"delta":{"role":"assistant","content":".txt with"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":""}
 
-      data: {"id":"gen-1763054736-Rp5v2bhZCQHuksIBMnt3","provider":"Hyperbolic","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763054737,"choices":[{"index":0,"delta":{"role":"assistant","content":" hello bash using"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860469-fJrxWlQouO66KLFJIOEy","provider":"Novita","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860469,"choices":[{"index":0,"delta":{"role":"assistant","content":" hello bash using"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":""}
 
-      data: {"id":"gen-1763054736-Rp5v2bhZCQHuksIBMnt3","provider":"Hyperbolic","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763054737,"choices":[{"index":0,"delta":{"role":"assistant","content":" bash"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860469-fJrxWlQouO66KLFJIOEy","provider":"Novita","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860469,"choices":[{"index":0,"delta":{"role":"assistant","content":" bash"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":""}
 
-      data: {"id":"gen-1763054736-Rp5v2bhZCQHuksIBMnt3","provider":"Hyperbolic","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763054737,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]}
+      data: {"id":"gen-1764860469-fJrxWlQouO66KLFJIOEy","provider":"Novita","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860469,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}],"system_fingerprint":""}
 
-      data: {"id":"gen-1763054736-Rp5v2bhZCQHuksIBMnt3","provider":"Hyperbolic","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763054737,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":147,"completion_tokens":9,"total_tokens":156,"cost":0.0000468,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.0000441,"upstream_inference_completions_cost":0.0000027},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
+      data: {"id":"gen-1764860469-fJrxWlQouO66KLFJIOEy","provider":"Novita","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860469,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":151,"completion_tokens":8,"total_tokens":159,"cost":0.00002772,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.00001812,"upstream_inference_completions_cost":0.0000096},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
 
       data: [DONE]
 
@@ -47,15 +47,15 @@ interactions:
       - text/event-stream
     status: 200 OK
     code: 200
-    duration: 2.193986583s
+    duration: 844.074375ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 47011
+    content_length: 49807
     host: ""

internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/download_tool.yaml πŸ”—

@@ -24,25 +24,27 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"gen-1763052563-D9skvXP0T7wXQTjZkAN3","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052563,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860474-RQkeWP32sYgnPRNbmeA8","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860474,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052563-D9skvXP0T7wXQTjZkAN3","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052563,"choices":[{"index":0,"delta":{"role":"assistant","content":"Download"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860474-RQkeWP32sYgnPRNbmeA8","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860474,"choices":[{"index":0,"delta":{"role":"assistant","content":"Download"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052563-D9skvXP0T7wXQTjZkAN3","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052563,"choices":[{"index":0,"delta":{"role":"assistant","content":" example"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860474-RQkeWP32sYgnPRNbmeA8","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860474,"choices":[{"index":0,"delta":{"role":"assistant","content":" and"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052563-D9skvXP0T7wXQTjZkAN3","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052563,"choices":[{"index":0,"delta":{"role":"assistant","content":".txt from example"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860474-RQkeWP32sYgnPRNbmeA8","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860474,"choices":[{"index":0,"delta":{"role":"assistant","content":" save"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052563-D9skvXP0T7wXQTjZkAN3","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052563,"choices":[{"index":0,"delta":{"role":"assistant","content":"-files"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860474-RQkeWP32sYgnPRNbmeA8","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860474,"choices":[{"index":0,"delta":{"role":"assistant","content":" example"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052563-D9skvXP0T7wXQTjZkAN3","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052563,"choices":[{"index":0,"delta":{"role":"assistant","content":".online"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860474-RQkeWP32sYgnPRNbmeA8","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860474,"choices":[{"index":0,"delta":{"role":"assistant","content":".txt"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052563-D9skvXP0T7wXQTjZkAN3","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052563,"choices":[{"index":0,"delta":{"role":"assistant","content":"-"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860474-RQkeWP32sYgnPRNbmeA8","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860474,"choices":[{"index":0,"delta":{"role":"assistant","content":" from"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052563-D9skvXP0T7wXQTjZkAN3","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052563,"choices":[{"index":0,"delta":{"role":"assistant","content":"convert.com"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860474-RQkeWP32sYgnPRNbmeA8","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860474,"choices":[{"index":0,"delta":{"role":"assistant","content":" provided"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052563-D9skvXP0T7wXQTjZkAN3","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052563,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]}
+      data: {"id":"gen-1764860474-RQkeWP32sYgnPRNbmeA8","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860474,"choices":[{"index":0,"delta":{"role":"assistant","content":" link"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052563-D9skvXP0T7wXQTjZkAN3","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052563,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":150,"completion_tokens":11,"total_tokens":161,"cost":0.0000357,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.0000225,"upstream_inference_completions_cost":0.0000132},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
+      data: {"id":"gen-1764860474-RQkeWP32sYgnPRNbmeA8","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860474,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]}
+
+      data: {"id":"gen-1764860474-RQkeWP32sYgnPRNbmeA8","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860474,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":150,"completion_tokens":9,"total_tokens":159,"cost":0.0000222,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.000015,"upstream_inference_completions_cost":0.0000072},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
 
       data: [DONE]
 
@@ -51,15 +53,15 @@ interactions:
       - text/event-stream
     status: 200 OK
     code: 200
-    duration: 739.791416ms
+    duration: 659.271625ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 47036
+    content_length: 49832
     host: ""

internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/fetch_tool.yaml πŸ”—

@@ -6,9 +6,9 @@ interactions:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 845
+    content_length: 49850
     host: ""
-    body: '{"messages":[{"content":"you will generate a short title based on the first message a user begins a conversation with\n\n<rules>\n- ensure it is not more than 50 characters long\n- the title should be a summary of the user''s message\n- it should be one line long\n- do not use quotes or colons\n- the entire text you return will be used as the title\n- never return anything that is more than one sentence (one line) long\n</rules>\n\n /no_think","role":"system"},{"content":"Generate a concise title for the following content:\n\nfetch the content from https://example-files.online-convert.com/website/html/example.html and tell me if it contains the word ''John Doe''\n <think>\n\n</think>","role":"user"}],"model":"qwen/qwen3-next-80b-a3b-instruct","max_tokens":40,"stream_options":{"include_usage":true},"usage":{"include":true},"stream":true}'

internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/glob_tool.yaml πŸ”—

@@ -24,21 +24,31 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"gen-1763052581-GDBNWsvqk1wEnVWEbZPn","provider":"DeepInfra","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052581,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860501-aWUnryJd9D8qGKSo7gpD","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860501,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052581-GDBNWsvqk1wEnVWEbZPn","provider":"DeepInfra","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052581,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860501-aWUnryJd9D8qGKSo7gpD","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860501,"choices":[{"index":0,"delta":{"role":"assistant","content":"Find"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052581-GDBNWsvqk1wEnVWEbZPn","provider":"DeepInfra","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052581,"choices":[{"index":0,"delta":{"role":"assistant","content":"Find"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860501-aWUnryJd9D8qGKSo7gpD","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860501,"choices":[{"index":0,"delta":{"role":"assistant","content":" all"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052581-GDBNWsvqk1wEnVWEbZPn","provider":"DeepInfra","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052581,"choices":[{"index":0,"delta":{"role":"assistant","content":" all .go files"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860501-aWUnryJd9D8qGKSo7gpD","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860501,"choices":[{"index":0,"delta":{"role":"assistant","content":" ."},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052581-GDBNWsvqk1wEnVWEbZPn","provider":"DeepInfra","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052581,"choices":[{"index":0,"delta":{"role":"assistant","content":" in current directory using"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860501-aWUnryJd9D8qGKSo7gpD","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860501,"choices":[{"index":0,"delta":{"role":"assistant","content":"go"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052581-GDBNWsvqk1wEnVWEbZPn","provider":"DeepInfra","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052581,"choices":[{"index":0,"delta":{"role":"assistant","content":" glob"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860501-aWUnryJd9D8qGKSo7gpD","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860501,"choices":[{"index":0,"delta":{"role":"assistant","content":" files"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052581-GDBNWsvqk1wEnVWEbZPn","provider":"DeepInfra","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052581,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]}
+      data: {"id":"gen-1764860501-aWUnryJd9D8qGKSo7gpD","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860501,"choices":[{"index":0,"delta":{"role":"assistant","content":" in"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052581-GDBNWsvqk1wEnVWEbZPn","provider":"DeepInfra","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052581,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":139,"completion_tokens":11,"total_tokens":150,"cost":0.00003156,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.00001946,"upstream_inference_completions_cost":0.0000121},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
+      data: {"id":"gen-1764860501-aWUnryJd9D8qGKSo7gpD","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860501,"choices":[{"index":0,"delta":{"role":"assistant","content":" current"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+
+      data: {"id":"gen-1764860501-aWUnryJd9D8qGKSo7gpD","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860501,"choices":[{"index":0,"delta":{"role":"assistant","content":" directory"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+
+      data: {"id":"gen-1764860501-aWUnryJd9D8qGKSo7gpD","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860501,"choices":[{"index":0,"delta":{"role":"assistant","content":" using"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+
+      data: {"id":"gen-1764860501-aWUnryJd9D8qGKSo7gpD","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860501,"choices":[{"index":0,"delta":{"role":"assistant","content":" glob"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+
+      data: {"id":"gen-1764860501-aWUnryJd9D8qGKSo7gpD","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860501,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]}
+
+      data: {"id":"gen-1764860501-aWUnryJd9D8qGKSo7gpD","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860501,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":139,"completion_tokens":11,"total_tokens":150,"cost":0.000026,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.0000139,"upstream_inference_completions_cost":0.0000121},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
 
       data: [DONE]
 
@@ -47,15 +57,15 @@ interactions:
       - text/event-stream
     status: 200 OK
     code: 200
-    duration: 951.550792ms
+    duration: 514.748625ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46972
+    content_length: 49768
     host: ""

internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/grep_tool.yaml πŸ”—

@@ -24,27 +24,27 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"gen-1763052587-qJxRVUHqJg5Er7XDvwR0","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052587,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860512-hch3EulzIe9JptTZ7Sr4","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860512,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052587-qJxRVUHqJg5Er7XDvwR0","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052587,"choices":[{"index":0,"delta":{"role":"assistant","content":"Search"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860512-hch3EulzIe9JptTZ7Sr4","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860512,"choices":[{"index":0,"delta":{"role":"assistant","content":"Search"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052587-qJxRVUHqJg5Er7XDvwR0","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052587,"choices":[{"index":0,"delta":{"role":"assistant","content":" for"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860512-hch3EulzIe9JptTZ7Sr4","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860512,"choices":[{"index":0,"delta":{"role":"assistant","content":" for"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052587-qJxRVUHqJg5Er7XDvwR0","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052587,"choices":[{"index":0,"delta":{"role":"assistant","content":" package"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860512-hch3EulzIe9JptTZ7Sr4","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860512,"choices":[{"index":0,"delta":{"role":"assistant","content":" package"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052587-qJxRVUHqJg5Er7XDvwR0","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052587,"choices":[{"index":0,"delta":{"role":"assistant","content":" in"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860512-hch3EulzIe9JptTZ7Sr4","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860512,"choices":[{"index":0,"delta":{"role":"assistant","content":" in"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052587-qJxRVUHqJg5Er7XDvwR0","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052587,"choices":[{"index":0,"delta":{"role":"assistant","content":" Go"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860512-hch3EulzIe9JptTZ7Sr4","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860512,"choices":[{"index":0,"delta":{"role":"assistant","content":" Go"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052587-qJxRVUHqJg5Er7XDvwR0","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052587,"choices":[{"index":0,"delta":{"role":"assistant","content":" files"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860512-hch3EulzIe9JptTZ7Sr4","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860512,"choices":[{"index":0,"delta":{"role":"assistant","content":" files"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052587-qJxRVUHqJg5Er7XDvwR0","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052587,"choices":[{"index":0,"delta":{"role":"assistant","content":" using"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860512-hch3EulzIe9JptTZ7Sr4","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860512,"choices":[{"index":0,"delta":{"role":"assistant","content":" using"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052587-qJxRVUHqJg5Er7XDvwR0","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052587,"choices":[{"index":0,"delta":{"role":"assistant","content":" grep"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860512-hch3EulzIe9JptTZ7Sr4","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860512,"choices":[{"index":0,"delta":{"role":"assistant","content":" grep"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052587-qJxRVUHqJg5Er7XDvwR0","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052587,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]}
+      data: {"id":"gen-1764860512-hch3EulzIe9JptTZ7Sr4","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860512,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]}
 
-      data: {"id":"gen-1763052587-qJxRVUHqJg5Er7XDvwR0","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052587,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":140,"completion_tokens":9,"total_tokens":149,"cost":0.0000239,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.000014,"upstream_inference_completions_cost":0.0000099},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
+      data: {"id":"gen-1764860512-hch3EulzIe9JptTZ7Sr4","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860512,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":140,"completion_tokens":9,"total_tokens":149,"cost":0.0000212,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.000014,"upstream_inference_completions_cost":0.0000072},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
 
       data: [DONE]
 
@@ -53,15 +53,15 @@ interactions:
       - text/event-stream
     status: 200 OK
     code: 200
-    duration: 723.240875ms
+    duration: 1.222643542s
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46970
+    content_length: 49766
     host: ""

internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/ls_tool.yaml πŸ”—

@@ -24,23 +24,23 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"gen-1763052593-uakxMpv6HJqAIbq3mPEq","provider":"AtlasCloud","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052593,"choices":[{"index":0,"delta":{"role":"assistant","content":"List"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860548-Mt6ph7LtR2ZVRVJsbxhy","provider":"AtlasCloud","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860548,"choices":[{"index":0,"delta":{"role":"assistant","content":"List"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052593-uakxMpv6HJqAIbq3mPEq","provider":"AtlasCloud","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052593,"choices":[{"index":0,"delta":{"role":"assistant","content":" files"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860548-Mt6ph7LtR2ZVRVJsbxhy","provider":"AtlasCloud","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860548,"choices":[{"index":0,"delta":{"role":"assistant","content":" files"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052593-uakxMpv6HJqAIbq3mPEq","provider":"AtlasCloud","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052593,"choices":[{"index":0,"delta":{"role":"assistant","content":" in"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860548-Mt6ph7LtR2ZVRVJsbxhy","provider":"AtlasCloud","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860548,"choices":[{"index":0,"delta":{"role":"assistant","content":" in"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052593-uakxMpv6HJqAIbq3mPEq","provider":"AtlasCloud","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052593,"choices":[{"index":0,"delta":{"role":"assistant","content":" current"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860548-Mt6ph7LtR2ZVRVJsbxhy","provider":"AtlasCloud","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860548,"choices":[{"index":0,"delta":{"role":"assistant","content":" current"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052593-uakxMpv6HJqAIbq3mPEq","provider":"AtlasCloud","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052593,"choices":[{"index":0,"delta":{"role":"assistant","content":" directory"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860548-Mt6ph7LtR2ZVRVJsbxhy","provider":"AtlasCloud","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860548,"choices":[{"index":0,"delta":{"role":"assistant","content":" directory"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052593-uakxMpv6HJqAIbq3mPEq","provider":"AtlasCloud","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052593,"choices":[{"index":0,"delta":{"role":"assistant","content":" using"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860548-Mt6ph7LtR2ZVRVJsbxhy","provider":"AtlasCloud","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860548,"choices":[{"index":0,"delta":{"role":"assistant","content":" using"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052593-uakxMpv6HJqAIbq3mPEq","provider":"AtlasCloud","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052593,"choices":[{"index":0,"delta":{"role":"assistant","content":" ls"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860548-Mt6ph7LtR2ZVRVJsbxhy","provider":"AtlasCloud","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860548,"choices":[{"index":0,"delta":{"role":"assistant","content":" ls"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052593-uakxMpv6HJqAIbq3mPEq","provider":"AtlasCloud","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052593,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]}
+      data: {"id":"gen-1764860548-Mt6ph7LtR2ZVRVJsbxhy","provider":"AtlasCloud","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860548,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]}
 
-      data: {"id":"gen-1763052593-uakxMpv6HJqAIbq3mPEq","provider":"AtlasCloud","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052593,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":137,"completion_tokens":8,"total_tokens":145,"cost":0.00003255,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.00002055,"upstream_inference_completions_cost":0.000012},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
+      data: {"id":"gen-1764860548-Mt6ph7LtR2ZVRVJsbxhy","provider":"AtlasCloud","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860548,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":137,"completion_tokens":8,"total_tokens":145,"cost":0.00003255,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.00002055,"upstream_inference_completions_cost":0.000012},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
 
       data: [DONE]
 
@@ -49,15 +49,15 @@ interactions:
       - text/event-stream
     status: 200 OK
     code: 200
-    duration: 1.369507708s
+    duration: 938.155917ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46964
+    content_length: 49760
     host: ""

internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/multiedit_tool.yaml πŸ”—

@@ -24,21 +24,37 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"gen-1763052597-4YCWGGuImNyofX71dIua","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052597,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860550-qwKwAdsbZP6NLTumPLXj","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860550,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052597-4YCWGGuImNyofX71dIua","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052597,"choices":[{"index":0,"delta":{"role":"assistant","content":"Use"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860550-qwKwAdsbZP6NLTumPLXj","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860550,"choices":[{"index":0,"delta":{"role":"assistant","content":"Use"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052597-4YCWGGuImNyofX71dIua","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052597,"choices":[{"index":0,"delta":{"role":"assistant","content":" multiedit to"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860550-qwKwAdsbZP6NLTumPLXj","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860550,"choices":[{"index":0,"delta":{"role":"assistant","content":" mult"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052597-4YCWGGuImNyofX71dIua","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052597,"choices":[{"index":0,"delta":{"role":"assistant","content":" update greeting"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860550-qwKwAdsbZP6NLTumPLXj","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860550,"choices":[{"index":0,"delta":{"role":"assistant","content":"ied"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052597-4YCWGGuImNyofX71dIua","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052597,"choices":[{"index":0,"delta":{"role":"assistant","content":" and add comment in"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860550-qwKwAdsbZP6NLTumPLXj","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860550,"choices":[{"index":0,"delta":{"role":"assistant","content":"it"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052597-4YCWGGuImNyofX71dIua","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052597,"choices":[{"index":0,"delta":{"role":"assistant","content":" main.go"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860550-qwKwAdsbZP6NLTumPLXj","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860550,"choices":[{"index":0,"delta":{"role":"assistant","content":" to"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052597-4YCWGGuImNyofX71dIua","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052597,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]}
+      data: {"id":"gen-1764860550-qwKwAdsbZP6NLTumPLXj","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860550,"choices":[{"index":0,"delta":{"role":"assistant","content":" update"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052597-4YCWGGuImNyofX71dIua","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052597,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":160,"completion_tokens":14,"total_tokens":174,"cost":0.0000408,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.000024,"upstream_inference_completions_cost":0.0000168},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
+      data: {"id":"gen-1764860550-qwKwAdsbZP6NLTumPLXj","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860550,"choices":[{"index":0,"delta":{"role":"assistant","content":" greeting"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+
+      data: {"id":"gen-1764860550-qwKwAdsbZP6NLTumPLXj","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860550,"choices":[{"index":0,"delta":{"role":"assistant","content":" and"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+
+      data: {"id":"gen-1764860550-qwKwAdsbZP6NLTumPLXj","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860550,"choices":[{"index":0,"delta":{"role":"assistant","content":" add"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+
+      data: {"id":"gen-1764860550-qwKwAdsbZP6NLTumPLXj","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860550,"choices":[{"index":0,"delta":{"role":"assistant","content":" comment"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+
+      data: {"id":"gen-1764860550-qwKwAdsbZP6NLTumPLXj","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860550,"choices":[{"index":0,"delta":{"role":"assistant","content":" in"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+
+      data: {"id":"gen-1764860550-qwKwAdsbZP6NLTumPLXj","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860550,"choices":[{"index":0,"delta":{"role":"assistant","content":" main"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+
+      data: {"id":"gen-1764860550-qwKwAdsbZP6NLTumPLXj","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860550,"choices":[{"index":0,"delta":{"role":"assistant","content":".go"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+
+      data: {"id":"gen-1764860550-qwKwAdsbZP6NLTumPLXj","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860550,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]}
+
+      data: {"id":"gen-1764860550-qwKwAdsbZP6NLTumPLXj","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860550,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":160,"completion_tokens":14,"total_tokens":174,"cost":0.0000314,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.000016,"upstream_inference_completions_cost":0.0000154},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
 
       data: [DONE]
 
@@ -47,15 +63,15 @@ interactions:
       - text/event-stream
     status: 200 OK
     code: 200
-    duration: 1.316448375s
+    duration: 440.768084ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 47050
+    content_length: 49846
     host: ""

internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/parallel_tool_calls.yaml πŸ”—

@@ -24,23 +24,27 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"gen-1763052638-VGVg47KFz5A3bpjJBMOu","provider":"Alibaba","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052638,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":null}
+      data: {"id":"gen-1764861346-84GGRpYW82ojLwfwakO9","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764861346,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052638-VGVg47KFz5A3bpjJBMOu","provider":"Alibaba","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052638,"choices":[{"index":0,"delta":{"role":"assistant","content":"Run"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":null}
+      data: {"id":"gen-1764861346-84GGRpYW82ojLwfwakO9","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764861346,"choices":[{"index":0,"delta":{"role":"assistant","content":"Find"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052638-VGVg47KFz5A3bpjJBMOu","provider":"Alibaba","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052638,"choices":[{"index":0,"delta":{"role":"assistant","content":" glob"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":null}
+      data: {"id":"gen-1764861346-84GGRpYW82ojLwfwakO9","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764861346,"choices":[{"index":0,"delta":{"role":"assistant","content":" .go"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052638-VGVg47KFz5A3bpjJBMOu","provider":"Alibaba","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052638,"choices":[{"index":0,"delta":{"role":"assistant","content":" and ls in"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":null}
+      data: {"id":"gen-1764861346-84GGRpYW82ojLwfwakO9","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764861346,"choices":[{"index":0,"delta":{"role":"assistant","content":" files"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052638-VGVg47KFz5A3bpjJBMOu","provider":"Alibaba","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052638,"choices":[{"index":0,"delta":{"role":"assistant","content":" parallel to find ."},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":null}
+      data: {"id":"gen-1764861346-84GGRpYW82ojLwfwakO9","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764861346,"choices":[{"index":0,"delta":{"role":"assistant","content":" and"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052638-VGVg47KFz5A3bpjJBMOu","provider":"Alibaba","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052638,"choices":[{"index":0,"delta":{"role":"assistant","content":"go files and list"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":null}
+      data: {"id":"gen-1764861346-84GGRpYW82ojLwfwakO9","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764861346,"choices":[{"index":0,"delta":{"role":"assistant","content":" list"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052638-VGVg47KFz5A3bpjJBMOu","provider":"Alibaba","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052638,"choices":[{"index":0,"delta":{"role":"assistant","content":" directory"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":null}
+      data: {"id":"gen-1764861346-84GGRpYW82ojLwfwakO9","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764861346,"choices":[{"index":0,"delta":{"role":"assistant","content":" directory"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052638-VGVg47KFz5A3bpjJBMOu","provider":"Alibaba","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052638,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}],"system_fingerprint":null}
+      data: {"id":"gen-1764861346-84GGRpYW82ojLwfwakO9","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764861346,"choices":[{"index":0,"delta":{"role":"assistant","content":" in"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052638-VGVg47KFz5A3bpjJBMOu","provider":"Alibaba","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052638,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":160,"completion_tokens":14,"total_tokens":174,"cost":0.0000408,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.000024,"upstream_inference_completions_cost":0.0000168},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
+      data: {"id":"gen-1764861346-84GGRpYW82ojLwfwakO9","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764861346,"choices":[{"index":0,"delta":{"role":"assistant","content":" parallel"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+
+      data: {"id":"gen-1764861346-84GGRpYW82ojLwfwakO9","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764861346,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]}
+
+      data: {"id":"gen-1764861346-84GGRpYW82ojLwfwakO9","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764861346,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":156,"completion_tokens":10,"total_tokens":166,"cost":0.0000236,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.0000156,"upstream_inference_completions_cost":0.000008},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
 
       data: [DONE]
 
@@ -49,15 +53,15 @@ interactions:
       - text/event-stream
     status: 200 OK
     code: 200
-    duration: 1.793021083s
+    duration: 787.066959ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 47061
+    content_length: 49857
     host: ""

internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/read_a_file.yaml πŸ”—

@@ -24,15 +24,15 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"gen-1763052523-9JI1sa5za1SM7CeAqvbp","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052523,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860443-j9UaVrCmDKJ0A9f5GZzs","provider":"Novita","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860443,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":""}
 
-      data: {"id":"gen-1763052523-9JI1sa5za1SM7CeAqvbp","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052523,"choices":[{"index":0,"delta":{"role":"assistant","content":"Read"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860443-j9UaVrCmDKJ0A9f5GZzs","provider":"Novita","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860443,"choices":[{"index":0,"delta":{"role":"assistant","content":"Read"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":""}
 
-      data: {"id":"gen-1763052523-9JI1sa5za1SM7CeAqvbp","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052523,"choices":[{"index":0,"delta":{"role":"assistant","content":" the go mod"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860443-j9UaVrCmDKJ0A9f5GZzs","provider":"Novita","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860443,"choices":[{"index":0,"delta":{"role":"assistant","content":" the go mod"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":""}
 
-      data: {"id":"gen-1763052523-9JI1sa5za1SM7CeAqvbp","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052523,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]}
+      data: {"id":"gen-1764860443-j9UaVrCmDKJ0A9f5GZzs","provider":"Novita","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860443,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}],"system_fingerprint":""}
 
-      data: {"id":"gen-1763052523-9JI1sa5za1SM7CeAqvbp","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052523,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":131,"completion_tokens":5,"total_tokens":136,"cost":0.00002565,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.00001965,"upstream_inference_completions_cost":0.000006},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
+      data: {"id":"gen-1764860443-j9UaVrCmDKJ0A9f5GZzs","provider":"Novita","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860443,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":135,"completion_tokens":4,"total_tokens":139,"cost":0.000021,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.0000162,"upstream_inference_completions_cost":0.0000048},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
 
       data: [DONE]
 
@@ -41,15 +41,15 @@ interactions:
       - text/event-stream
     status: 200 OK
     code: 200
-    duration: 1.185187833s
+    duration: 775.315459ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46934
+    content_length: 49730
     host: ""

internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/simple_test.yaml πŸ”—

@@ -24,13 +24,13 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"gen-1763052519-lSHRC3DhuosBVu60GhSe","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052519,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860441-GMNHj2of9NQ3cXlu3CuH","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860441,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052519-lSHRC3DhuosBVu60GhSe","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052519,"choices":[{"index":0,"delta":{"role":"assistant","content":"Hello"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860441-GMNHj2of9NQ3cXlu3CuH","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860441,"choices":[{"index":0,"delta":{"role":"assistant","content":"Hello"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052519-lSHRC3DhuosBVu60GhSe","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052519,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]}
+      data: {"id":"gen-1764860441-GMNHj2of9NQ3cXlu3CuH","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860441,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]}
 
-      data: {"id":"gen-1763052519-lSHRC3DhuosBVu60GhSe","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052519,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":128,"completion_tokens":2,"total_tokens":130,"cost":0.000015,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.0000128,"upstream_inference_completions_cost":0.0000022},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
+      data: {"id":"gen-1764860441-GMNHj2of9NQ3cXlu3CuH","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860441,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":128,"completion_tokens":2,"total_tokens":130,"cost":0.000015,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.0000128,"upstream_inference_completions_cost":0.0000022},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
 
       data: [DONE]
 
@@ -39,15 +39,15 @@ interactions:
       - text/event-stream
     status: 200 OK
     code: 200
-    duration: 1.850255542s
+    duration: 690.760166ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46924
+    content_length: 49720
     host: ""

internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/sourcegraph_tool.yaml πŸ”—

@@ -24,23 +24,19 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"gen-1763052617-MVMPtbtGW4vt7na58iPz","provider":"DeepInfra","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052617,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860570-F646zP90Bn5IvXdQ1YrY","provider":"Alibaba","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860570,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":null}
 
-      data: {"id":"gen-1763052617-MVMPtbtGW4vt7na58iPz","provider":"DeepInfra","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052617,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860570-F646zP90Bn5IvXdQ1YrY","provider":"Alibaba","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860570,"choices":[{"index":0,"delta":{"role":"assistant","content":"Search"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":null}
 
-      data: {"id":"gen-1763052617-MVMPtbtGW4vt7na58iPz","provider":"DeepInfra","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052617,"choices":[{"index":0,"delta":{"role":"assistant","content":"Search"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860570-F646zP90Bn5IvXdQ1YrY","provider":"Alibaba","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860570,"choices":[{"index":0,"delta":{"role":"assistant","content":" for func"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":null}
 
-      data: {"id":"gen-1763052617-MVMPtbtGW4vt7na58iPz","provider":"DeepInfra","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052617,"choices":[{"index":0,"delta":{"role":"assistant","content":" for func"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860570-F646zP90Bn5IvXdQ1YrY","provider":"Alibaba","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860570,"choices":[{"index":0,"delta":{"role":"assistant","content":" main in Go repositories"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":null}
 
-      data: {"id":"gen-1763052617-MVMPtbtGW4vt7na58iPz","provider":"DeepInfra","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052617,"choices":[{"index":0,"delta":{"role":"assistant","content":" main in Go repositories"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860570-F646zP90Bn5IvXdQ1YrY","provider":"Alibaba","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860570,"choices":[{"index":0,"delta":{"role":"assistant","content":" using Sourcegraph"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"system_fingerprint":null}
 
-      data: {"id":"gen-1763052617-MVMPtbtGW4vt7na58iPz","provider":"DeepInfra","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052617,"choices":[{"index":0,"delta":{"role":"assistant","content":" using Source"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860570-F646zP90Bn5IvXdQ1YrY","provider":"Alibaba","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860570,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}],"system_fingerprint":null}
 
-      data: {"id":"gen-1763052617-MVMPtbtGW4vt7na58iPz","provider":"DeepInfra","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052617,"choices":[{"index":0,"delta":{"role":"assistant","content":"graph"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
-
-      data: {"id":"gen-1763052617-MVMPtbtGW4vt7na58iPz","provider":"DeepInfra","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052617,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]}
-
-      data: {"id":"gen-1763052617-MVMPtbtGW4vt7na58iPz","provider":"DeepInfra","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052617,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":140,"completion_tokens":11,"total_tokens":151,"cost":0.0000317,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.0000196,"upstream_inference_completions_cost":0.0000121},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
+      data: {"id":"gen-1764860570-F646zP90Bn5IvXdQ1YrY","provider":"Alibaba","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860570,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":144,"completion_tokens":10,"total_tokens":154,"cost":0.0000336,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.0000216,"upstream_inference_completions_cost":0.000012},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
 
       data: [DONE]
 
@@ -49,15 +45,15 @@ interactions:
       - text/event-stream
     status: 200 OK
     code: 200
-    duration: 1.105004083s
+    duration: 384.048083ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46984
+    content_length: 49780
     host: ""

internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/update_a_file.yaml πŸ”—

@@ -24,27 +24,27 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"gen-1763052541-znjKrucNZrGyRGlj9kgI","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052541,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860445-Dmt3pqTmVAZMlkdQEQC1","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860445,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052541-znjKrucNZrGyRGlj9kgI","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052541,"choices":[{"index":0,"delta":{"role":"assistant","content":"Update"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860445-Dmt3pqTmVAZMlkdQEQC1","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860445,"choices":[{"index":0,"delta":{"role":"assistant","content":"Update"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052541-znjKrucNZrGyRGlj9kgI","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052541,"choices":[{"index":0,"delta":{"role":"assistant","content":" main"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860445-Dmt3pqTmVAZMlkdQEQC1","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860445,"choices":[{"index":0,"delta":{"role":"assistant","content":" main"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052541-znjKrucNZrGyRGlj9kgI","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052541,"choices":[{"index":0,"delta":{"role":"assistant","content":".go"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860445-Dmt3pqTmVAZMlkdQEQC1","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860445,"choices":[{"index":0,"delta":{"role":"assistant","content":".go"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052541-znjKrucNZrGyRGlj9kgI","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052541,"choices":[{"index":0,"delta":{"role":"assistant","content":" to"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860445-Dmt3pqTmVAZMlkdQEQC1","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860445,"choices":[{"index":0,"delta":{"role":"assistant","content":" to"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052541-znjKrucNZrGyRGlj9kgI","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052541,"choices":[{"index":0,"delta":{"role":"assistant","content":" print"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860445-Dmt3pqTmVAZMlkdQEQC1","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860445,"choices":[{"index":0,"delta":{"role":"assistant","content":" print"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052541-znjKrucNZrGyRGlj9kgI","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052541,"choices":[{"index":0,"delta":{"role":"assistant","content":" hello"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860445-Dmt3pqTmVAZMlkdQEQC1","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860445,"choices":[{"index":0,"delta":{"role":"assistant","content":" hello"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052541-znjKrucNZrGyRGlj9kgI","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052541,"choices":[{"index":0,"delta":{"role":"assistant","content":" from"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860445-Dmt3pqTmVAZMlkdQEQC1","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860445,"choices":[{"index":0,"delta":{"role":"assistant","content":" from"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052541-znjKrucNZrGyRGlj9kgI","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052541,"choices":[{"index":0,"delta":{"role":"assistant","content":" crush"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860445-Dmt3pqTmVAZMlkdQEQC1","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860445,"choices":[{"index":0,"delta":{"role":"assistant","content":" crush"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052541-znjKrucNZrGyRGlj9kgI","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052541,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]}
+      data: {"id":"gen-1764860445-Dmt3pqTmVAZMlkdQEQC1","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860445,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]}
 
-      data: {"id":"gen-1763052541-znjKrucNZrGyRGlj9kgI","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052541,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":141,"completion_tokens":9,"total_tokens":150,"cost":0.000024,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.0000141,"upstream_inference_completions_cost":0.0000099},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
+      data: {"id":"gen-1764860445-Dmt3pqTmVAZMlkdQEQC1","provider":"Parasail","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860445,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":141,"completion_tokens":9,"total_tokens":150,"cost":0.000024,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.0000141,"upstream_inference_completions_cost":0.0000099},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
 
       data: [DONE]
 
@@ -53,15 +53,15 @@ interactions:
       - text/event-stream
     status: 200 OK
     code: 200
-    duration: 769.608625ms
+    duration: 410.42625ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46990
+    content_length: 49786
     host: ""

internal/agent/testdata/TestCoderAgent/openrouter-kimi-k2/write_tool.yaml πŸ”—

@@ -24,17 +24,21 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"gen-1763052631-4hRxQBB1LFt5BAllqs8O","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052631,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860585-301yZuEohfa4EcNFE5cu","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860585,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052631-4hRxQBB1LFt5BAllqs8O","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052631,"choices":[{"index":0,"delta":{"role":"assistant","content":"Create"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860585-301yZuEohfa4EcNFE5cu","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860585,"choices":[{"index":0,"delta":{"role":"assistant","content":"Create"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052631-4hRxQBB1LFt5BAllqs8O","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052631,"choices":[{"index":0,"delta":{"role":"assistant","content":" config.json with test"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860585-301yZuEohfa4EcNFE5cu","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860585,"choices":[{"index":0,"delta":{"role":"assistant","content":" config.json"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052631-4hRxQBB1LFt5BAllqs8O","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052631,"choices":[{"index":0,"delta":{"role":"assistant","content":" data"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+      data: {"id":"gen-1764860585-301yZuEohfa4EcNFE5cu","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860585,"choices":[{"index":0,"delta":{"role":"assistant","content":" with"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052631-4hRxQBB1LFt5BAllqs8O","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052631,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]}
+      data: {"id":"gen-1764860585-301yZuEohfa4EcNFE5cu","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860585,"choices":[{"index":0,"delta":{"role":"assistant","content":" test"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
 
-      data: {"id":"gen-1763052631-4hRxQBB1LFt5BAllqs8O","provider":"Google","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1763052631,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":155,"completion_tokens":7,"total_tokens":162,"cost":0.00003165,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.00002325,"upstream_inference_completions_cost":0.0000084},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
+      data: {"id":"gen-1764860585-301yZuEohfa4EcNFE5cu","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860585,"choices":[{"index":0,"delta":{"role":"assistant","content":" data"},"finish_reason":null,"native_finish_reason":null,"logprobs":null}]}
+
+      data: {"id":"gen-1764860585-301yZuEohfa4EcNFE5cu","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860585,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":"stop","native_finish_reason":"stop","logprobs":null}]}
+
+      data: {"id":"gen-1764860585-301yZuEohfa4EcNFE5cu","provider":"Chutes","model":"qwen/qwen3-next-80b-a3b-instruct","object":"chat.completion.chunk","created":1764860585,"choices":[{"index":0,"delta":{"role":"assistant","content":""},"finish_reason":null,"native_finish_reason":null,"logprobs":null}],"usage":{"prompt_tokens":155,"completion_tokens":7,"total_tokens":162,"cost":0.0000211,"is_byok":false,"prompt_tokens_details":{"cached_tokens":0,"audio_tokens":0,"video_tokens":0},"cost_details":{"upstream_inference_cost":null,"upstream_inference_prompt_cost":0.0000155,"upstream_inference_completions_cost":0.0000056},"completion_tokens_details":{"reasoning_tokens":0,"image_tokens":0}}}
 
       data: [DONE]
 
@@ -43,15 +47,15 @@ interactions:
       - text/event-stream
     status: 200 OK
     code: 200
-    duration: 1.065012417s
+    duration: 1.211276584s
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 47027
+    content_length: 49823
     host: ""

internal/agent/testdata/TestCoderAgent/zai-glm4.6/bash_tool.yaml πŸ”—

@@ -24,19 +24,19 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"202511140051060f0c70f8c5d24ef5","created":1763052666,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"\n"}}]}
+      data: {"id":"20251204230343fd79eaea54ef4569","created":1764860623,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","reasoning_content":"\n"}}]}
 
-      data: {"id":"202511140051060f0c70f8c5d24ef5","created":1763052666,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"Create"}}]}
+      data: {"id":"20251204230343fd79eaea54ef4569","created":1764860623,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"Create"}}]}
 
-      data: {"id":"202511140051060f0c70f8c5d24ef5","created":1763052666,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" file"}}]}
+      data: {"id":"20251204230343fd79eaea54ef4569","created":1764860623,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" bash"}}]}
 
-      data: {"id":"202511140051060f0c70f8c5d24ef5","created":1763052666,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" with"}}]}
+      data: {"id":"20251204230343fd79eaea54ef4569","created":1764860623,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" file"}}]}
 
-      data: {"id":"202511140051060f0c70f8c5d24ef5","created":1763052666,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" bash"}}]}
+      data: {"id":"20251204230343fd79eaea54ef4569","created":1764860623,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" without"}}]}
 
-      data: {"id":"202511140051060f0c70f8c5d24ef5","created":1763052666,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" content"}}]}
+      data: {"id":"20251204230343fd79eaea54ef4569","created":1764860623,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" timestamp"}}]}
 
-      data: {"id":"202511140051060f0c70f8c5d24ef5","created":1763052666,"model":"glm-4.5-air","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":140,"completion_tokens":9,"total_tokens":149,"prompt_tokens_details":{"cached_tokens":4}}}
+      data: {"id":"20251204230343fd79eaea54ef4569","created":1764860623,"model":"glm-4.5-air","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":140,"completion_tokens":9,"total_tokens":149,"prompt_tokens_details":{"cached_tokens":114}}}
 
       data: [DONE]
 
@@ -45,15 +45,15 @@ interactions:
       - text/event-stream;charset=UTF-8
     status: 200 OK
     code: 200
-    duration: 1.21418475s
+    duration: 946.089834ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46888
+    content_length: 49684
     host: ""

internal/agent/testdata/TestCoderAgent/zai-glm4.6/download_tool.yaml πŸ”—

@@ -24,17 +24,17 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"2025111400511397dbc3f3d7714e98","created":1763052673,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"\n"}}]}
+      data: {"id":"202512042303475de998759ed148b9","created":1764860627,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","reasoning_content":"\n"}}]}
 
-      data: {"id":"2025111400511397dbc3f3d7714e98","created":1763052673,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"Download"}}]}
+      data: {"id":"202512042303475de998759ed148b9","created":1764860627,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"Download"}}]}
 
-      data: {"id":"2025111400511397dbc3f3d7714e98","created":1763052673,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" file"}}]}
+      data: {"id":"202512042303475de998759ed148b9","created":1764860627,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" file"}}]}
 
-      data: {"id":"2025111400511397dbc3f3d7714e98","created":1763052673,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" from example"}}]}
+      data: {"id":"202512042303475de998759ed148b9","created":1764860627,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" example"}}]}
 
-      data: {"id":"2025111400511397dbc3f3d7714e98","created":1763052673,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":".com"}}]}
+      data: {"id":"202512042303475de998759ed148b9","created":1764860627,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":".txt"}}]}
 
-      data: {"id":"2025111400511397dbc3f3d7714e98","created":1763052673,"model":"glm-4.5-air","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":143,"completion_tokens":9,"total_tokens":152,"prompt_tokens_details":{"cached_tokens":114}}}
+      data: {"id":"202512042303475de998759ed148b9","created":1764860627,"model":"glm-4.5-air","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":143,"completion_tokens":8,"total_tokens":151,"prompt_tokens_details":{"cached_tokens":4}}}
 
       data: [DONE]
 
@@ -43,15 +43,15 @@ interactions:
       - text/event-stream;charset=UTF-8
     status: 200 OK
     code: 200
-    duration: 1.41999975s
+    duration: 919.008791ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46913
+    content_length: 49709
     host: ""

internal/agent/testdata/TestCoderAgent/zai-glm4.6/grep_tool.yaml πŸ”—

@@ -24,17 +24,17 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"2025111400514174a058d8ceb64121","created":1763052701,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"\n"}}]}
+      data: {"id":"202512042304045f5077f67feb41c7","created":1764860644,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","reasoning_content":"\n"}}]}
 
-      data: {"id":"2025111400514174a058d8ceb64121","created":1763052701,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"grep"}}]}
+      data: {"id":"202512042304045f5077f67feb41c7","created":1764860644,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"grep"}}]}
 
-      data: {"id":"2025111400514174a058d8ceb64121","created":1763052701,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" package"}}]}
+      data: {"id":"202512042304045f5077f67feb41c7","created":1764860644,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" package"}}]}
 
-      data: {"id":"2025111400514174a058d8ceb64121","created":1763052701,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" go"}}]}
+      data: {"id":"202512042304045f5077f67feb41c7","created":1764860644,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" go"}}]}
 
-      data: {"id":"2025111400514174a058d8ceb64121","created":1763052701,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" files"}}]}
+      data: {"id":"202512042304045f5077f67feb41c7","created":1764860644,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" files"}}]}
 
-      data: {"id":"2025111400514174a058d8ceb64121","created":1763052701,"model":"glm-4.5-air","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":133,"completion_tokens":8,"total_tokens":141,"prompt_tokens_details":{"cached_tokens":115}}}
+      data: {"id":"202512042304045f5077f67feb41c7","created":1764860644,"model":"glm-4.5-air","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":133,"completion_tokens":8,"total_tokens":141,"prompt_tokens_details":{"cached_tokens":114}}}
 
       data: [DONE]
 
@@ -43,15 +43,15 @@ interactions:
       - text/event-stream;charset=UTF-8
     status: 200 OK
     code: 200
-    duration: 1.451020458s
+    duration: 1.592793542s
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46847
+    content_length: 49643
     host: ""

internal/agent/testdata/TestCoderAgent/zai-glm4.6/ls_tool.yaml πŸ”—

@@ -24,17 +24,19 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"20251114005145bb7c7d1f1f344ed4","created":1763052705,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"\n"}}]}
+      data: {"id":"20251204230409eba1d5ce5b754bb8","created":1764860649,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","reasoning_content":"\n"}}]}
 
-      data: {"id":"20251114005145bb7c7d1f1f344ed4","created":1763052705,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"Listing"}}]}
+      data: {"id":"20251204230409eba1d5ce5b754bb8","created":1764860649,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"List"}}]}
 
-      data: {"id":"20251114005145bb7c7d1f1f344ed4","created":1763052705,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" files"}}]}
+      data: {"id":"20251204230409eba1d5ce5b754bb8","created":1764860649,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" files"}}]}
 
-      data: {"id":"20251114005145bb7c7d1f1f344ed4","created":1763052705,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" in"}}]}
+      data: {"id":"20251204230409eba1d5ce5b754bb8","created":1764860649,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" with"}}]}
 
-      data: {"id":"20251114005145bb7c7d1f1f344ed4","created":1763052705,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" directory"}}]}
+      data: {"id":"20251204230409eba1d5ce5b754bb8","created":1764860649,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" ls"}}]}
 
-      data: {"id":"20251114005145bb7c7d1f1f344ed4","created":1763052705,"model":"glm-4.5-air","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":130,"completion_tokens":8,"total_tokens":138,"prompt_tokens_details":{"cached_tokens":115}}}
+      data: {"id":"20251204230409eba1d5ce5b754bb8","created":1764860649,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" command"}}]}
+
+      data: {"id":"20251204230409eba1d5ce5b754bb8","created":1764860649,"model":"glm-4.5-air","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":130,"completion_tokens":9,"total_tokens":139,"prompt_tokens_details":{"cached_tokens":115}}}
 
       data: [DONE]
 
@@ -43,15 +45,15 @@ interactions:
       - text/event-stream;charset=UTF-8
     status: 200 OK
     code: 200
-    duration: 998.894291ms
+    duration: 1.308563333s
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46841
+    content_length: 49637
     host: ""

internal/agent/testdata/TestCoderAgent/zai-glm4.6/parallel_tool_calls.yaml πŸ”—

@@ -24,19 +24,19 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"202511140052098fbba3c33f2e4a7e","created":1763052729,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"\n"}}]}
+      data: {"id":"20251204231155ed6588b6ced5427c","created":1764861115,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","reasoning_content":"\n"}}]}
 
-      data: {"id":"202511140052098fbba3c33f2e4a7e","created":1763052729,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"Parallel"}}]}
+      data: {"id":"20251204231155ed6588b6ced5427c","created":1764861115,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"Parallel"}}]}
 
-      data: {"id":"202511140052098fbba3c33f2e4a7e","created":1763052729,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" glob"}}]}
+      data: {"id":"20251204231155ed6588b6ced5427c","created":1764861115,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" glob"}}]}
 
-      data: {"id":"202511140052098fbba3c33f2e4a7e","created":1763052729,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" and"}}]}
+      data: {"id":"20251204231155ed6588b6ced5427c","created":1764861115,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" and"}}]}
 
-      data: {"id":"202511140052098fbba3c33f2e4a7e","created":1763052729,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" ls"}}]}
+      data: {"id":"20251204231155ed6588b6ced5427c","created":1764861115,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" ls"}}]}
 
-      data: {"id":"202511140052098fbba3c33f2e4a7e","created":1763052729,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" commands"}}]}
+      data: {"id":"20251204231155ed6588b6ced5427c","created":1764861115,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" commands"}}]}
 
-      data: {"id":"202511140052098fbba3c33f2e4a7e","created":1763052729,"model":"glm-4.5-air","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":149,"completion_tokens":9,"total_tokens":158,"prompt_tokens_details":{"cached_tokens":122}}}
+      data: {"id":"20251204231155ed6588b6ced5427c","created":1764861115,"model":"glm-4.5-air","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":149,"completion_tokens":9,"total_tokens":158,"prompt_tokens_details":{"cached_tokens":114}}}
 
       data: [DONE]
 
@@ -45,15 +45,15 @@ interactions:
       - text/event-stream;charset=UTF-8
     status: 200 OK
     code: 200
-    duration: 1.064597541s
+    duration: 740.234333ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46938
+    content_length: 49734
     host: ""

internal/agent/testdata/TestCoderAgent/zai-glm4.6/read_a_file.yaml πŸ”—

@@ -24,15 +24,15 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"2025111400504912adf17fef49444d","created":1763052649,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"\n"}}]}
+      data: {"id":"2025120423032556af6743a16e43cd","created":1764860605,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","reasoning_content":"\n"}}]}
 
-      data: {"id":"2025111400504912adf17fef49444d","created":1763052649,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"Go"}}]}
+      data: {"id":"2025120423032556af6743a16e43cd","created":1764860605,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"Go"}}]}
 
-      data: {"id":"2025111400504912adf17fef49444d","created":1763052649,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" Module"}}]}
+      data: {"id":"2025120423032556af6743a16e43cd","created":1764860605,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" Module"}}]}
 
-      data: {"id":"2025111400504912adf17fef49444d","created":1763052649,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" Analysis"}}]}
+      data: {"id":"2025120423032556af6743a16e43cd","created":1764860605,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" Summary"}}]}
 
-      data: {"id":"2025111400504912adf17fef49444d","created":1763052649,"model":"glm-4.5-air","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":124,"completion_tokens":7,"total_tokens":131,"prompt_tokens_details":{"cached_tokens":114}}}
+      data: {"id":"2025120423032556af6743a16e43cd","created":1764860605,"model":"glm-4.5-air","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":124,"completion_tokens":7,"total_tokens":131,"prompt_tokens_details":{"cached_tokens":114}}}
 
       data: [DONE]
 
@@ -41,15 +41,15 @@ interactions:
       - text/event-stream;charset=UTF-8
     status: 200 OK
     code: 200
-    duration: 1.194369166s
+    duration: 1.01641175s
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46811
+    content_length: 49607
     host: ""

internal/agent/testdata/TestCoderAgent/zai-glm4.6/simple_test.yaml πŸ”—

@@ -24,13 +24,11 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"20251114005046333dd12fd72448dc","created":1763052646,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"\n"}}]}
+      data: {"id":"20251204230317161563337b27418e","created":1764860597,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","reasoning_content":"\n"}}]}
 
-      data: {"id":"20251114005046333dd12fd72448dc","created":1763052646,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"G"}}]}
+      data: {"id":"20251204230317161563337b27418e","created":1764860597,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"Hello"}}]}
 
-      data: {"id":"20251114005046333dd12fd72448dc","created":1763052646,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"reeting"}}]}
-
-      data: {"id":"20251114005046333dd12fd72448dc","created":1763052646,"model":"glm-4.5-air","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":121,"completion_tokens":6,"total_tokens":127,"prompt_tokens_details":{"cached_tokens":114}}}
+      data: {"id":"20251204230317161563337b27418e","created":1764860597,"model":"glm-4.5-air","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":121,"completion_tokens":5,"total_tokens":126,"prompt_tokens_details":{"cached_tokens":114}}}
 
       data: [DONE]
 
@@ -39,15 +37,15 @@ interactions:
       - text/event-stream;charset=UTF-8
     status: 200 OK
     code: 200
-    duration: 2.311827458s
+    duration: 2.824408542s
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46801
+    content_length: 49597
     host: ""

internal/agent/testdata/TestCoderAgent/zai-glm4.6/sourcegraph_tool.yaml πŸ”—

@@ -24,17 +24,21 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"20251114005158635daa253de14b78","created":1763052718,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"\n"}}]}
+      data: {"id":"20251204231146c1c8e521eb3a437a","created":1764861106,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","reasoning_content":"\n"}}]}
 
-      data: {"id":"20251114005158635daa253de14b78","created":1763052718,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"Go"}}]}
+      data: {"id":"20251204231146c1c8e521eb3a437a","created":1764861106,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"Search"}}]}
 
-      data: {"id":"20251114005158635daa253de14b78","created":1763052718,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" Main"}}]}
+      data: {"id":"20251204231146c1c8e521eb3a437a","created":1764861106,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" Go"}}]}
 
-      data: {"id":"20251114005158635daa253de14b78","created":1763052718,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" Function"}}]}
+      data: {"id":"20251204231146c1c8e521eb3a437a","created":1764861106,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" repos"}}]}
 
-      data: {"id":"20251114005158635daa253de14b78","created":1763052718,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" Search"}}]}
+      data: {"id":"20251204231146c1c8e521eb3a437a","created":1764861106,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" with"}}]}
 
-      data: {"id":"20251114005158635daa253de14b78","created":1763052718,"model":"glm-4.5-air","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":133,"completion_tokens":8,"total_tokens":141,"prompt_tokens_details":{"cached_tokens":4}}}
+      data: {"id":"20251204231146c1c8e521eb3a437a","created":1764861106,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" Source"}}]}
+
+      data: {"id":"20251204231146c1c8e521eb3a437a","created":1764861106,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"graph"}}]}
+
+      data: {"id":"20251204231146c1c8e521eb3a437a","created":1764861106,"model":"glm-4.5-air","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":133,"completion_tokens":10,"total_tokens":143,"prompt_tokens_details":{"cached_tokens":114}}}
 
       data: [DONE]
 
@@ -43,15 +47,15 @@ interactions:
       - text/event-stream;charset=UTF-8
     status: 200 OK
     code: 200
-    duration: 1.153723834s
+    duration: 836.516375ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46861
+    content_length: 49657
     host: ""

internal/agent/testdata/TestCoderAgent/zai-glm4.6/update_a_file.yaml πŸ”—

@@ -24,25 +24,25 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"2025111400505978547e15a5934733","created":1763052659,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"\n"}}]}
+      data: {"id":"20251204230332c69ccaef1c0b47a0","created":1764860612,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","reasoning_content":"\n"}}]}
 
-      data: {"id":"2025111400505978547e15a5934733","created":1763052659,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"Update"}}]}
+      data: {"id":"20251204230332c69ccaef1c0b47a0","created":1764860612,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"Update"}}]}
 
-      data: {"id":"2025111400505978547e15a5934733","created":1763052659,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" main"}}]}
+      data: {"id":"20251204230332c69ccaef1c0b47a0","created":1764860612,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" main"}}]}
 
-      data: {"id":"2025111400505978547e15a5934733","created":1763052659,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":".go"}}]}
+      data: {"id":"20251204230332c69ccaef1c0b47a0","created":1764860612,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":".go"}}]}
 
-      data: {"id":"2025111400505978547e15a5934733","created":1763052659,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" to"}}]}
+      data: {"id":"20251204230332c69ccaef1c0b47a0","created":1764860612,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" to"}}]}
 
-      data: {"id":"2025111400505978547e15a5934733","created":1763052659,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" print"}}]}
+      data: {"id":"20251204230332c69ccaef1c0b47a0","created":1764860612,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" print"}}]}
 
-      data: {"id":"2025111400505978547e15a5934733","created":1763052659,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" hello"}}]}
+      data: {"id":"20251204230332c69ccaef1c0b47a0","created":1764860612,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" hello"}}]}
 
-      data: {"id":"2025111400505978547e15a5934733","created":1763052659,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" from"}}]}
+      data: {"id":"20251204230332c69ccaef1c0b47a0","created":1764860612,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" from"}}]}
 
-      data: {"id":"2025111400505978547e15a5934733","created":1763052659,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" crush"}}]}
+      data: {"id":"20251204230332c69ccaef1c0b47a0","created":1764860612,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" crush"}}]}
 
-      data: {"id":"2025111400505978547e15a5934733","created":1763052659,"model":"glm-4.5-air","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":134,"completion_tokens":12,"total_tokens":146,"prompt_tokens_details":{"cached_tokens":114}}}
+      data: {"id":"20251204230332c69ccaef1c0b47a0","created":1764860612,"model":"glm-4.5-air","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":134,"completion_tokens":12,"total_tokens":146,"prompt_tokens_details":{"cached_tokens":114}}}
 
       data: [DONE]
 
@@ -51,15 +51,15 @@ interactions:
       - text/event-stream;charset=UTF-8
     status: 200 OK
     code: 200
-    duration: 1.03368525s
+    duration: 1.093262583s
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46867
+    content_length: 49663
     host: ""

internal/agent/testdata/TestCoderAgent/zai-glm4.6/write_tool.yaml πŸ”—

@@ -24,21 +24,23 @@ interactions:
     proto_minor: 0
     content_length: -1
     body: |+
-      data: {"id":"2025111400520566f14c4c42784763","created":1763052725,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"\n"}}]}
+      data: {"id":"202512042311517a074c1c79344375","created":1764861111,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","reasoning_content":"\n"}}]}
 
-      data: {"id":"2025111400520566f14c4c42784763","created":1763052725,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"Create"}}]}
+      data: {"id":"202512042311517a074c1c79344375","created":1764861111,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":"Create"}}]}
 
-      data: {"id":"2025111400520566f14c4c42784763","created":1763052725,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" config"}}]}
+      data: {"id":"202512042311517a074c1c79344375","created":1764861111,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" config"}}]}
 
-      data: {"id":"2025111400520566f14c4c42784763","created":1763052725,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":".json"}}]}
+      data: {"id":"202512042311517a074c1c79344375","created":1764861111,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":".json"}}]}
 
-      data: {"id":"2025111400520566f14c4c42784763","created":1763052725,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" file"}}]}
+      data: {"id":"202512042311517a074c1c79344375","created":1764861111,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" file"}}]}
 
-      data: {"id":"2025111400520566f14c4c42784763","created":1763052725,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" with"}}]}
+      data: {"id":"202512042311517a074c1c79344375","created":1764861111,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" with"}}]}
 
-      data: {"id":"2025111400520566f14c4c42784763","created":1763052725,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" content"}}]}
+      data: {"id":"202512042311517a074c1c79344375","created":1764861111,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" JSON"}}]}
 
-      data: {"id":"2025111400520566f14c4c42784763","created":1763052725,"model":"glm-4.5-air","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":148,"completion_tokens":10,"total_tokens":158,"prompt_tokens_details":{"cached_tokens":115}}}
+      data: {"id":"202512042311517a074c1c79344375","created":1764861111,"model":"glm-4.5-air","choices":[{"index":0,"delta":{"role":"assistant","content":" content"}}]}
+
+      data: {"id":"202512042311517a074c1c79344375","created":1764861111,"model":"glm-4.5-air","choices":[{"index":0,"finish_reason":"stop","delta":{"role":"assistant","content":""}}],"usage":{"prompt_tokens":148,"completion_tokens":11,"total_tokens":159,"prompt_tokens_details":{"cached_tokens":115}}}
 
       data: [DONE]
 
@@ -47,15 +49,15 @@ interactions:
       - text/event-stream;charset=UTF-8
     status: 200 OK
     code: 200
-    duration: 1.054026458s
+    duration: 812.216416ms
 - id: 1
   request:
     proto: HTTP/1.1
     proto_major: 1
     proto_minor: 1
-    content_length: 46904
+    content_length: 49700
     host: ""